Download Hazte una radio en casa

Transcript
H AZ T E U N A R AD I O E N CAS A
Mi n i m an u al de i n s t r u cci on es
•
•
•
B as es Gen er ales - I ntr oducción s obr e el concepto de webr adio
S of t W ar e - B r eve enumer ación genér ica de s oftwar e utilizado par a r ealizar una
r adio vía web
I ceCas t - E l s er vidor
L AS B AS E S
Realizar una r adio on line no es una tar ea dificilís ima, per o tampoco es muy fácil.
E s neces ar io compr ender bás icamente algunos conceptos y la ins talación de algunos
pr ogr amas , y a continuación un poco de ex per imentación. Cas i como cualquier otr a cos a
tech ; ))
Podemos s implificar el es quema de una Radio On Line de es te modo:
Fuente de mús ica - > E ncoder - > S tr eamer - > S er vidor - > Cliente
F u en t e de mú s i ca
Cualquier fuente de mús ica. Par a hacer la más fácil, pens émos la como un mix er [ mezclador ]
al cual es tán conectadas algunas cos as , des de una lector a cd a un mini dis c, pas ando por el
micr ófono.
E n coder
E l s onido que llega des de la Fuente de mús ica, tiene que s er tr ans for mado en for mato
digital par a poder s er tr ans mitido en algo que " pueda ir en la r ed" . E l Encoder ,
s us tancialmente, hace es to.
El Encoder es una computador a a la cual es tá conectada el mezclador que citamos , y que
r ecoge el s onido de la tar j eta/placa de audio y lo tr ans for ma en un ar chivo mp3 (un
for mato digital compr imido par a el s onido).
Her r amientas de s oftwar e: Mu S e, dar kice, liveice, x mms , winamp
S t r eam er
Una vez que s e obtuvo el for mato digital que cor r es ponde al s onido de la Fuente (el mp3
que citábamos antes ), el s tr eamer s e encar ga de tr ans for mar lo en una s er ie de paquetes
de datos y pas ar lo al s er vidor .
S iendo digital, el s onido ahor a no es algo continuado, s ino algo más humilde, es decir ,
cons tituido por pequeñas par tes (bytes ) que pueden s er enviados " en r ed" , piez a por piez a,
y s er r econs tr uido en for ma s iempr e idéntica a s í mis mo.
Par a es to, el for mato mp3 (o el ogg.vor bis ) nos ayuda bas tante, dado que el for mato mp3
es pr ácticamente una s er ie de datos en br uto, s in encabezados ni cier r e, como s ucede con
otr os for matos de ar chivos . Por lo tanto, también s i s e r ecibe s olamente una par te de un
ar chivo, es a pieza aún r es ulta " audible" .
Y es es ta pr opiedad lo que per mite el s tr eam, es decir , la r epr oducción continua del mp3
que envían a la r ed.
E l encoder y el s tr eamer s on la computador a, que toma el s onido y lo tr ans for ma en algo
que puede s er enviado a la r ed.
Her r amientas de s oftwar e: Mu S e, dar kice, liveice, x mms plugin, winamp plugin
S er vi dor
Es te es el nodo de dis tr ibución de la s eñal de la r adio on line. E n la pr áctica, el s er vidor
r ecibe la s eñal de una fuente (la r adio des de el s tr eamer ) y lo r edis tr ibuye (s ir ve
pr ecis amente a los que s e lo demandan).
Obviamente es pos ible par a un s er vidor s er vir a difer entes s tr eams , es decir , dos r adios
pueden utiliz ar el mis mo s er vidor par a hacer s tr eaming, per o es to también limitar á la
banda a dis pos ición tanto par a uno como par a el otr o.
Más abaj o s e pueden ver las aclar aciones s obr e los for matos , s obr e la banda, s obr e la
calidad del s onido y otr as cues tiones más cualitativas que r elativas a la r ealización mater ial
de una r adio on line.
La mis ma computador a puede hacer encoding y s tr eaming, per o por lo gener al es otr a
computador a la que s e encar ga s olamente de dis tr ibuir la s eñal, pr efer entemente
conectada con banda ancha.
Her r amientas de s oftwar e: I ceCas t , s houtcas t
Cl ien t e
Finalmente alguien es cuchar á la r adio, ¿o no?
B ien, es to s er á el cliente, el oyente.
Her r amientas de s oftwar e: Xmms , mpg123, mp3blas ter , winamp
S OF T W AR E - I N F OR MACI ÓN GE N E R AL
Mu S e
Es un s oftwar e des ar r ollado por Jar omil y muchas otr as per s onas del gr upo de oper ador es
italianos y de otr os país es . Fue ideado s us tancialmente como un s of t w ar e m u lt i u s os par a
r ealiz ar u n a r adi o en una s ola computador a, apar te de un s er vidor . Per mite mezclar
piezas de s onido, voces y otr as entr adas de audio, guar dar en el dis co el mp3 que s e es tá
tr ans mitiendo, conectar s e a un s er vidor par a hacer s tr eam, y mucho más . E s tá todavía en
fas e de des ar r ollo y por lo cual, algunas veces tiene pr oblemas , per o s egur amente es el
más s impático e inter es ante s oftwar e par a hacer s tr eaming dis ponible.
h t t p: / / mu s e.dyn e.or g
D ar kice
E s un s oftwar e bas tante s imple par a hacer s tr eam. T oma el s onido que llega de la
tar j eta/placa de audio y lo tr ans mite a un s er vidor . Per mite hacer pocas cos as más , apar te
de la r egulación del volumen de la computador a par a aj us tar el volumen del s tr eam.
h t t p: / / dar kice.s ou r cef or ge.n et
L iveice
S oftwar e dis tr ibuido por el gr upo de icecas t y que tiene las mis mas funciones que dar kice.
Es un poco más difícil de configur ar .
h t t p: / / s t ar .ar m.ac.u k/ ~ s pm / s of t w ar e/ liv ei ce.h t m l
Xm m s
S oftwar e s imilar al Winamp per o par a Linux , que pr ácticamente todos conocen. Es un
pr ogr ama par a r epr oducir mús ica en diver s os for matos . E s pos ible agr egar un plugin que
per mite conectar lo dir ectamente con liveice par a hacer s tr eaming de la mús ica que s e es tá
es cuchando.
W i n amp
S oftwar e windows típico par a es cuchar piezas mus icales en diver s os for matos . E s pos ible
agr egar un plugin, con las adecuadas bús quedas on line, par a liveice o par a s houtcas t que
per mite hacer s tr eaming des de una computador a con windows .
m pg1 2 3 o mp3 bl as t er
Repr oductor de mp3 par a linux en cons ola.
I ceCas t
I cecas t es E L s er vidor par a hacer s tr eaming de audio. No hace nada más que tomar un
s tr eam y r etr ans mitir lo a todos los que lo demandan. La ver s ión 1 del s er vidor s opor ta
s olamente el s tr eam mp3, mientr as que la ver s ión 2 s opor ta también el s tr eam ogg- vor bis .
Es s imple par a configur ar y us ar .
h t t p: / / w w w .i cecas t .or g
S h ou t cas t
S houtcas t es un s er vidor pr opietar io par a hacer s tr eaming de audio. No lo conoz co bien, y
no piens o comenzar a conocer lo ahor a.
I CE CAS T
.oO I CECAS T Oo.
E s te pr ogr ama es un s er vidor , es decir , un pr ogr ama que una vez ej ecutado abr e dos
" puer tos vir tuales " que pone a la es per a (los pr edeter minados s on 8000/8001) par a
per mitir a las per s onas conectar s e y es cuchar nos . ; - )
Veamos cómo s e hace.
.oO I NS T ALEMOS I CECAS T Oo.
Des car gar el código fuente de icecas t, guar dar lo (como us uar io r oot) en /us r /s r c/ e
des compr ímanlo.
# mv icecas t* /us r /s r c/
# cd /us r /s r c/
# tar - x vzf icecas t- 1.3. 12.tar .gz
Es to cr ear á la car peta con el código fuente del pr ogr ama.
# cd icecas t- 1.3.12
# les s R EADME
# les s I NS T ALL
como es tá des cr ipto en los ar chivos RE ADME e I NS T ALL, colocamos en la línea de comando
# . /configur e
# make
# make ins tall
E n la documentación dice que s i pas amos la opción - - with- cr ypt a " ./configur e" podr emos
utilizar la pos ibilidad de una clave encr iptada par a gar antizar mayor s egur idad.
Otr a pos ibilidad ofr ecida par a us ar es - - with- libwr ap, par a us ar un tcp wr apper par a
s eleccionar a quienes tienen acces o al s er vidor . Otr o método (built in [ incor por ado] en es ta
ver s ión) es el us o de las acl (acces s lis t [ lis tados de acces o] ) del s er vidor . Por ahor a lo
dej amos de lado.
.oO CONFI GURE MOS LO Oo.
Una vez ins talado icecas t en /us r /local/icecas t, entr amos en la dir con los pr incipales
ar chivos de configur ación, la dir conf.
# cd /us r /local/icecas t/
# cd conf/
Renombr amos los ar chivos pr es entes en es te dir ector io quitando el .dis t qu es tá demás .
# mv icecas t. conf.dis t icecas t.conf
Editamos icecas t.conf, el ar chivo pr incipal par a nues tr o obj etivo.
# vi icecas t.conf
S i tienen pr oblemas con el inglés , s epan que las opciones pr incipales que hay que tener en
cuenta s on:
por t
s er ver _ name
Con es tas dos opciones s e decide s obr e cuál puer to funcionar á icecas t, y tendr án que
colocar como s er ver _ name el númer o del ip público o, s i lo tienen, un dominio r egis tr ado.
El ar chivo de configur ación es tá r ealmente bien ex plicado, no obs tante, s epan que es tos
dos par ámetr os s on los fundamentales par a s obr evivir .
Demos una oj eada más detallada al ar chivo de configur ación. ione.
location
r p_ email
s er ver _ ur l
E s tos par ámetr os s on infor maciones que icecas t br indar á a los diver s os clientes que s e
conectar án, elij an lo que quier an decir , a mí me gus ta Jus t wes t of Mar s [ el oes te de Mar te]
pr es cindiendo del lugar donde es té y, gener almente, los dej o tal como es tán, ya que s on
par ámetr os no fundamental par a el funcionamiento.
max _ clients , etc. , etc., per mite decidir cuántos pueden conectar s e al s er vidor en calidad de
clientes , fuentes y adminis tr ador es .
clients - - > quienes es cuchan
s our ces - - > quien/es pr opor cionan mús ica
admins - - > quien/es adminis tr an el s er vidor
Como pueden obs er var , puede haber muchos oyentes (obvio), var ias fuentes mus icales
(menos obvio) y var ios adminis tr ador es contempor áneamente.
S obr e los oyentes no agr ego nada más , s obr e las fuentes (MuS E, Multiple S tr eaming Engine
es un ej emplo), s e puede decir que es mej or tener dos , una pr incipal y otr a de s opor te.
Per o es to lo vamos a ver des pués , por ahor a nos confor mamos con un encoder .
Aquí s e decide cuántas conex iones y de qué tipo (client, s our ce, admin) es tán dis pues tos a
aceptar .
Dej emos de lado la s ección S tr eam Meta Data, que no es impor tante en par ticular .
La opción
mount_ fallback 1
es aquella que per mite, en el cas o de que tengan dos fuentes funcionando, hacer " s altar " a
los clientes conectados a la fuente 1 s obr e la fuente 2, en el cas o de que la fuente 1 s e
caiga impr evis tamente y vicever s a... dir ía muy útil, s iempr e por el dis cur s o de las caídas .
encoder _ pas s wor d < - - la clave que tendr á que pr opor cionar " MuS E" par a poder conectar s e
como fuente al s er vidor . Los pr ogr amas que envían mús ica al
icecas t s e llaman encoder s , por que s e encar gan de tomar los que es
r epr oducido en el es cr itor io, " codificar lo" y enviar lo a un s er vidor
icecas t que lo difundir á al mundo
admin_ pas s wor d
oper _ pas s wor d
< - - la clave par a adminis tr ar en un pr imer nivel icecas t dir ectamente
des de la cons ola (luego lo ex plicar é mej or )
< - - s egundo nivel de adminis tr ación del s er vidor des de la cons ola
La s ección Dir ector y s er ver s ofr ece la pos ibilidad de hacer apar ecer s obr e los s er vidor es
que es tán indicados allí, la pr es encia de nues tr o s er vidor icecas t par a dar le mayor
vis ibilidad.
Otr a opción impor tante a conocer es el alias .
alias petar do http: //malas ys tem.com: 8000
una línea como es ta en el ar chivo de configur ación s ignifica que en la dir ección
http: //mio.s er ver .taz: 8000/petar do s e puede es cuchar la mús ica que pr oviene de
http: //malas ys tem.com: 8000 dir ectamente des de nues tr o s er ver . E s to no s ignifica que s i
nadie es tá es cuchando en es e mount point s e cons umir á ancho de banda par a tener lo
activo, ya que s e activa s olamente baj o demanda de un cliente o for zándolo con el
comando r elay que ver emos des pués . ; )
Un detalle a tener en cuenta por que podr ía hacer nos per der tiempo: cuando intr oduzcamos
un nuevo alias en la línea que pas amos en cons ola no debemos poner la / delante del
nuevo mount point, s ino que s i quer emos tener éx ito al poner un alias tenemos que indicar
en /petar do nues tr o mount point... ahor a lo s abemos . : )
Otr a opción que hay que obs er var es
templatedir /us r /local/icecas t/templates /
Es te comando per mite a icecas t us ar plantillas html par a facilitar la adminis tr ación vía web
del s er vidor . el pr oblema es que CUALQUI E RA puede conectar s e vía web y cambiar las
opciones del s er vidor icecas t, vis to que no us amos (al menos por ahor a) ni acl, ni tcp
wr apper . Y es to dir ía que es tá mal.
Pongamos delante un s impático candado (# ) agr egando en el ar chivo también la var iable
http_ admin 0
< - - configur ada en uno (en default s in es tar en el ar chivo de
configur ación) es pos ible entr ar en icecas t vía web, configur ada en
cer o, no.
y ter minamos el j uego : )
¿Cómo hago par a cambiar las opciones " al vuelo" ?
.oO ¡Y AHORA US E MOS LO! Oo.
Cuando ej ecutamos icecas t s in ningún par ámetr o, queda en pr imer plano la ter minal con
una cons ola " admin" abier ta y lis ta par a us ar . S i s e lanza con la opción – b, la mis ma queda
en backgr ound [ fondo] y la única maner a par a tener una cons ola s obr e la cual oper ar es
hacer un telnet mi.s er vidor .taz 8000 (s i es e es nues tr o puer to con icecas t en es per a).
# telnet mio.s er ver .taz 8000
T r ying 0.0. 0.0
Connected to 0.0.0. 0
Es cape char acter is '^ ] '
ADMI N pas s wor d
ok
->
< - - el s impático output [ s alida] del telnet
< - - ¡lo mis mo!
< - - ctr l + ] abr e la cons ola de telnet.. : )
< - - AQUÍ ES CRI B I MOS NUES T RA CLAVE ADMI N y puls amos Enter
< - - s e envía dos veces
< - - le ha gus tado la clave
< - - cons ola I CECAS T !! : )
demos inmediatamente un bonito comando:
- > help
T RAMM! todos los comandos de cons ola lis tos par a s er apr endidos .
por cada uno, s e ofr ece una pequeña des cr ipción, par a cada uno hay una pos ibilidad de
aclar aciones digitando:
- > help nombr e_ comando_ que_ quier o_ apr ender
apenas logueados echamos un vis tazo veloz a la s ituación:
- > lis t
Nadie es tá conectado todavía, ni fuentes , ni clientes , s olamente hay un admin: nos otr os .
Poniendo la clave de oper podemos acceder a los comandos alias , s et y otr os .
¡Convir támonos en oper !
> oper pas s wor d
You ar e now an icecas t oper ator
¿Con qué configur ación funciona icecas t?
> s et
Cur r ent s ettings
encoder _ pas s wor d:
hackme
client_ pas s wor d:
hackme
admin_ pas s wor d:
hackme
oper _ pas s wor d:
hackme
touch_ fr eq: 5
client_ timeout:
30
max _ clients :
90
max _ clients _ per _ s our ce: 90
max _ s our ces :
5
max _ admins :
3
r ever s e: 1
location: Jus t wes t of Mar s
r p_ email: kir k@ enter pr is e.s pace
tr ans par ent_ pr ox y:
0
s tats _ log: s tats .log
s tats html_ log:
s tats .html
s tats _ time: 60
acl_ policy: 1
thr ottle: 10.000000
kick_ r elays : 10
kick_ clients : 0
s tatus _ time:
120
logfiledebuglevel:
0
cons oledebuglevel:
0
s er ver _ ur l: http: //r mi.homeip.net
us e_ meta_ data:
0
s tr eamur llock:
0
s tr eamur l: http: //r mi.homeip.net
s tr eamtitletemplate:
%s
nametemplate:
%s
des ctemplate:
%s
logfile:
icecas t.log
acces s file: acces s .log
us agefile: us age.log
s taticdir : /us r /s har e/icecas t/s tatic/pr ova.mp3
default_ s our ce_ options :
is tphecyocdr lumnagbUMDRWCT
mount_ fallback:
1
for ce_ s er ver name:
0
r es olv_ type:
1
http_ admin:
1
r elay_ r econnect_ max :
-1
r elay_ r econnect_ time:
90
s leep_ r atio: 0.100000
End of s ettings
S i ya hay un encoder ins talado (en br eve una s ección I NS T ALEMOS MuS E), ej ecútenlo
br indando las infor maciones par a conectar s e.
intr oducimos el comando s our ces en cons ola:
[ I d: 1] [ S ock: 12] [ T ime of connect: 17/Apr /2002: 12: 03: 09] [ I P: 192.168.x .x ] [ Hos t:
vega.mala.taz]
[ S tate: 1] [ T ype: encoder ] [ Pr oto: x - audiocas t] [Clients : 0] [ Dumpfile/fd: (null)/- 1]
[ Pr ior ity: 0]
[ S ong T itle: ] [ S ong URL: http: //www.s paziopetar do.it] [ S tr eam Mes s age: (null)] [S ong
Length:
- 1 bytes ] [ S tr eam Name: r adiomoz zar ellainter national] [ S tr eam Genr e: icecas t]
[ S tr eam B itr ate: 24000] [ S tr eam URL: http: //mus e.dyne.or g] [ Mountpoint: /petar do]
[ Des cr iption: s tr eaming with MuS E ] [ MB ytes r ead: 0] [ MB ytes wr itten: 0] [ Client
connections : 0]
[ Connected for : 4 minutes and 20 s econds ]
E nd of s our ce lis ting (1 lis ted)
Fundamentales los campos :
[ I d: num]
con el númer o indicato en es te campo, identificamos la
fuente (funciona del mis mo modo par a los clientes , los
admins y los oper ator s )
[ T ype: encoder ,pulled r elay ..]
el tipo de fuente conectada. puede s er un encoder u
otr o s er vidor icecas t peticionado con el comando
r elay, por ej emplo.
[ Clients : num]
¿cuantos oyentes hay en es te momento?
[ S tr eam B itr ate: num]
¿a cuánto es tá haciendo s tr eaming la fuente? acons ej o
aj us tar el s tr eam a 24 Kbit/s par a per mitir una mayor
acces ibilidad a quienes tengan conex iones lentas par a
es cuchar : )
[ Mountpoint: name]
el mount point s obr e el cual es ta fuente es tá
funcionando. cuantas más fuentes , más mount points ,
en modo que podamos tener más pos ibilidades de
es cuchar par a ofr ecer o s implemente habilitando la
opción mount_ fallback par a evitar el r ies go que
cuando s e caiga una fuente, s e caigan también todos
nues tr os oyentes , los cuales en es ta for ma s altan al
s egundo, o bien per mitir nos el luj o de des plaz ar nos de
una fuente a otr a a nues tr os clientes s egún la
neces idad (" y ahor a, línea al es tudio en R oma." : )
ahor a ver emos cuando llega un cliente par a es cuchar nos :
- > lis tener s
Lis ting lis tener s
[ Hos t: 213.140.9. 154] [ Mountpoint /petar do] [ I d: 488] [ Connected for : 1 hour s , 13
minutes and 43 s econds ] [ S our ce I d: 491] [ B ytes wr itten: 13162855] [ E r r or s : 0] [ Us er
agent: icecas t/1.3. 12] [ T ype: client]
E nd of lis tener lis ting (1 lis ted)
los campos pr incipales :
[ HOS T : I P or NAME ]
quien s ea, ¿o el mítico pr imer oyente?
[ Mountpoint name]
¿qué es tás es cuchando?
[ S our ce I d: num]
¿quién y qué fuente es tá as ociada a es e mount point?
[ T ype: client,puller ]
es un s imple cliente o un s er vidor que me es tá
" r elayando" , es decir , que me ha tomado como s u
fuente?
Res umiendo:
- > lis t
Lis ting connections :
[ I d: 490] [ Hos t: localhos t] [ T ype: admin] [ Connected for : 36 minutes ]
[ I d: 491] [ Hos t: vega. mala.taz] [ T ype: s our ce] [ Connected for : 1 hour s , 17 minutes and
55 s econds ]
[ I d: 488] [ Hos t: 213.140.9.154] [ T ype: client] [ Connected for : 34 minutes and 27
s econds ]
E nd of lis t lis ting (3 lis ted)
en es te momento hay un admin en cons ola. S i ej ecutamos icecas t s in la opción - b y luego
telneteamos el s er vidor tenemos como r es ultado dos , per o no es un intr us o ; ), es
s olamente la cons ola que queda abier ta cuando ej ecutamos icecas t y nos agr egamos con
telnet.
Como ver án los [ I D: num] identifican todas las tipologías de " pr es encias " en el s er vidor .
Cada tanto, el s er vidor por s í s olo ofr ece un r es umen veloz de la s ituación:
- > [ 17/Apr /2002: 13: 27: 46] [ B andwidth: 0.016667MB /s ] [S our ces : 1] [ Clients : 3]
[ Admins : 1] [ Uptime: 2 hour s , 10 minutes ]
Juguemos un poco con nues tr o s er vidor . : )
ahor a tenemos una fuente (la nues tr a), ¿y s i quis iér amos tener otr a? ya des de la
configur ación de lanzamiento podr emos tener var ios alias pr econfigur ados , s in embar go
es tos no es tar án en us o has ta que no s ean peticionados (no cons umen banda : ), un modo
par a activar los es que un cliente los demande (poniendo el mount point del alias en la
dir ección del s er vidor ), otr o modo es demandar el s er vidor que quer r amos volver a ej ecutar
con el comando " r elay" . O bien que otr o encoder s e conecte s obr e otr o mount point.
- > r elay r mi.homeip.net: 30000
r elay added
dentr o de un r ato tendr emos dos fuentes .
con las dos fuentes pueden des plaz ar des de una a otr a a todos los clientes
- > s elect - a I d s our ce1 I d s our ce2
y des plazamos a todos los oyentes des de la pr imer a fuente hacia la s egunda.
o bien
- > s elect I d client I d s our ce2
y des plazo a un s olo oyente a una nueva fuente.
Hey!, y en es te punto entr a tu cur ios idad yganas de j ugar , ¿o no?
Los comandos neces ar ios par a s obr evivir s on:
lis t
s our ces
lis tener s
s elect { - a|idC idS }
< -< -< -< --
alias { lis t|add|del}
< --
r elay { pus h|pull} i
< --
oper { pas s wor d}
< --
s et
< --
s ituación gener al (cuántos admin, s our ces , lis tener s )
quien es tá haciendo s tr eaming (el encoder )
quién y qué es tá es cuchando
des plaz a a todos los clientes de la fuente 1 a la fuente 2, o bien
des plaza el cliente [ idC] des de la fuente 1 a la fuente 2 [ idS ]
agr ega una fuente (no un encoder , s ino otr o s er vidor icecas t que
quer r amos s os tener )
abr e o cier r a la conex ión con un s er vidor con el que quer r amos
tener un alias
par a un cier to gr upo de comandos es neces ar io br indar una
s egunda clave
¿con qué configur ación es toy haciendo las cos as ?