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 ?