Está en la página 1de 8

Streaming en Linux, cmo montar un servidor de radio?

Sergio Valero Orea, svalero_orea@yahoo.com, UTIM, Izcar de Matamoros, Puebla.

Resumen

Se le proporciona al lector y asistente, las herramientas necesarias para que sea capaz de
montar un servidor de streaming para poder transmitir audio por Internet utilizando
herramientas gratuitas y open source. Esto se realiza, analizando las 3 partes
necesarias para poder alcanzar el objetivo: por un lado se necesita el servidor que
transmitir los datos a travs de la red, el source, es decir, quien enva la transmisin al
servidor, y obviamente, los radio-escuchas. Una vez analizados los conceptos tericos,
se pasa a la parte de la configuracin de los paquetes y por ltimo se demuestra el
funcionamiento del servidor.

Introduccin
Poco a poco, Internet se consolida como un importante medio de comunicacin; y es en
este punto donde las emisoras de radio ven la necesidad de volcarse sobre este medio.
Existen numerosas estaciones de radio transmitiendo por Internet, por mencionar
algunas:
Las estaciones asociadas a Grupo Radio Centro
o Radio Red
o Alfa Radio
o Universal Stereo
o Stereo Joya
o 97.7
o La Z
o Radio Centro
o Radio Red
o El fongrafo

La pregunta es, por qu no tener la nuestra? Bueno, para poder hacer eso, necesitamos
ir desarrollando algunos conceptos tericos.

Teora
Streaming es el hecho de emitir en tiempo real, algn tipo de medio multimedia
(audio/video) a travs de un medio informtico. Para hacer esto, necesitamos 3 cosas:
a) un servidor
b) los sources
c) los clientes

Para la primera parte, dentro de nuestro mundo libre, existen diferentes alternativas para
elegir, siendo estas ShoutCast de NullSoft, y IceCast. Optamos por el segundo, ya que el
primero es open source pero no es software libre haciendo dependiente su desarrollo
de la mencionada empresa.

Icecast es un servidor para la transmisin de contenidos multimedia (video y audio), que


actualmente soporta MP3 y Vorbis Ogg. Se puede utilizar para crear una estacin de
radio por Internet o para reproducir una lista de archivos de audio y muchas cosas ms
entre eso. Es distribuida bajo la licencia GNU GPL.

La segunda parte que necesitamos es el source, es decir, el origen de los datos que
enviar la informacin al servidor. En esta categora tenemos bastantes opciones y
dependiendo nuestros objetivos y necesidades ser la opcin elegida. Algunos de ellos
son:
Ices
Muse
DarkIce
IceGenerator
Freej

Nos inclinamos por la primera, ya que, en este trabajo, solo pretendemos demostrar
reproducir nuestra lista de MP3s, adems de que trabaja conjuntamente bajo el mismo
proyecto que IceCast.

Por ltimo, los clientes, o nuestros radio-internet-escuchas, que nos sintonizarn para
escuchar nuestros MP3s. Aqu, no hay mayor problema, si se encuentran en la
plataforma Windows, podrn escucharnos con el Windows Media Player, WinAmp,
MPlayer, etc. En el caso de estar bajo algn Unix, lo podrn hacer con XMMS, Zinf,
MPlayer, Xine, VLC, etc. Ya que solo interpretarn una lista de reproduccin.

Una vez aclarado los conceptos, manos a la obra.


Desarrollo

Instalacin y configuracin del IceCast


Si se va a instalar desde los archivos fuente, es necesario tener instaladas las libreras de
desarrollo libxml, libxslt, libogg, y libvorbis. Tras la descarga y descompresin de los
archivos fuente, se instala Icecast mediante el siguiente proceso de tres pasos:

./configure
make
make install

Por defecto, Icecast se instala en el directorio /usr/local. El archivo de configuracin por


defecto, icecast.xml, se ubica en /usr/local/etc. Cuando se edita este archivo hay que
prestar atencin a que todos los elementos xml estn cerrados, que las etiquetas estn
bien escritas y que solamente se pongan aquellas que sean vlidas y que todos los
elementos que estn anidados se encuentre cerrados de forma correcta.

Los valores ms importantes que hay que establecer del archivo icecast.xml, se
encuentran en la seccin Authentication. Es preciso asegurarse de establecer unas
contraseas nuevas para los sources y la administracin, as como el usuario admin,
que se emplea para las funciones administrativas a travs de HTTP. Icecast permite
administrarse por medio de pginas Web, lo que es mucho ms sencillo que la sintaxis
de administracin. Para comenzar a trabajar, solamente cambiaremos los valores de esta
seccin. El resto de los valores se puede dejar con sus valores por defecto, pero se
recomienda personalizar con los valores adecuados para cada situacin.

Una vez que el archivo de configuracin es modificado, debe de ser capaz de iniciar el
servidor, NO como root, con el siguiente comando:

icecast -c /usr/local/etc/icecast.xml

Si todo sali bien, podemos verificar la ejecucin del servidor visitando la URL
http://nuestra.IP:puerto/admin/stats.xml En el caso de mi ejemplo, ejecuto
http://radio.utim.edu.mx:8000/admin/stats.xml e inmediatamente, deber solicitar
nombre de usuario y contrasea para acceder al servidor, esta contrasea se encuentra
en la etiqueta <admin-password> del archivo de configuracin del Icecast. Despus de
entrar, debemos poder ver una pequea descripcin de nuestro servidor, como se
muestra en la figura 1.
Fig 1. Ventana de administracin del Icecast

Tambin podemos verificar nuestro servidor, copiando un archivo MP3 al directorio


/usr/local/share/icecast/web y escucharlo directamente mediante un reproductor
multimedia mencionado anteriormente en cualquier radio-escucha. Por ejemplo, usando
WinAmp, elegimos del men File, la opcin Play URL como se muestra en la
figura 2.

Ahora que el servidor esta configurado, es necesario instalar y configurar nuestro


source.

Instalacin y configuracin de Ices


Ices, es un source para un servidor de streaming. Su propsito es proveer el audio al
servidor para que los radio-escuchas puedan acceder al audio. Ices no es una aplicacin
grfica, y requiere de los siguientes paquetes para su correcto funcionamiento:
libogg
libvorbis
libxml2
libshout

Los siguientes, son tipos de entradas soportadas por Ices:


OSS Open Sound System
ALSA Advanced Linux Sound Architecture
Listas de reproduccin
sun

Para la instalacin de Ices, se sigue el mismo proceso que el Icecast. Tras la descarga y
descompresin de los archivos fuente, tecleamos la secuencia de los 3 comandos para
instalar Ices

./configure
make
make install

Por defecto, Ices se instala bajo /usr/local. El archivo de configuracin ices.conf.dist se


ubica en /usr/local/etc. De la misma manera como sucedi con Icecast, este archivo de
configuracin es de contenido XML y debemos tener cuidado al momento de editarlo.
La nica etiqueta que debemos modificar es <File> que es la ruta donde tenemos
predefinida nuestra lista MP3, en mi caso /home/svalero/playlist.txt que es un archivo de
texto, que contiene la ruta de mis archivos MP3 de cada cancin.
Una vez definidos los datos del archivo de configuracin y creada la lista de
reproduccin podemos iniciar el source de la forma siguiente:

ices -c /usr/local/etc/ices.conf.dist

A estas alturas, y si no nos ha ocurrido ningn error, podemos hacer una conexin a la
pgina Web. Por ejemplo http://radio.utim.edu.mx:8000/ y mandarnos una pgina como
la siguiente:
Fig 3. Pgina principal del servidor

Dentro la pgina anterior, existe una liga click to listen haz clic para escuchar y
dando clic sobre ella, podremos escuchar mediante un reproductor multimedia a travs
de Internet nuestra lista de reproduccin establecida previamente.

Resultados y conclusiones

Como se podr constatar, instalar y configurar un Servidor de Streaming y hacer nuestra


propia estacin de radio no es una tarea complicada. A travs de este trabajo, se instal,
configur y se puso en marcha un Servidor de Streaming utilizando herramientas
gratuitas y open source. Solo requiere de un poco de conocimiento en el manejo de
Linux y mucha paciencia en la configuracin. Anexo al final, el cdigo del archivo
icecast.xml utilizado en este trabajo.

Bibliografa
[1] The XIPH Open Source Community, Icecast 2 Documentation, [en lnea]; 2007 [consulta 20 Julio
2007] Disponible: http://www.icecast.org/docs/icecast-2.3.1/
[2] The XIPH Open Source Community, Ices 2 Documentation, [en lnea]; 2007 [consulta 20 Julio 2007]
Disponible: http://www.icecast.org/docs/ices-2.0.0/
[3] Dave Phillips, Streaming Media with Linux, [en lnea]; 2006 [Consulta 21 Julio 2007] Disponible:
http://www.linuxdevcenter.com/pub/a/linux/2001/03/23/streaming_media.html
[4] Liberalia Tempus, Montar una emisora de radio con Icecast, 2006 [Consulta 24 Jul 2007] Disponible:
http://www.liberaliatempus.com/articulos/taller/montar-una-emisora-de-radio-con-icecast.html

<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>

<authentication>
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

<hostname>http://radio.utim.edu.mx:8000</hostname>

<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
</listen-socket>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/local/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
<alias source="/" dest="/status.xsl"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
</logging>

<security>
<chroot>0</chroot>
</security>
</icecast>

También podría gustarte