Booting my Mind!!

Ernie Rojas Villoslado

Mi Radio con icecast en gentoo. parte I

dejar un comentario »

En la insitiución donde trabajo se viene requiriendo configurar un servidor de streaming para tener una radio en linea, q será alimentado desde una tarjeta de sonido al cual estará conectado el equipo de radio, una arquitectura interesante, por lo que me puse  a investigar y como se dice una imagen vale mas q mil palabras, me encontre con esta imagen que resume todo lo q deseo hacer:

Imagen: http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/

Bueno yo ya habia trabajado con shoutcast, el problema es que nunca le encontre un cliente para que alimente al servidor y que corra en linux ademas que no soporta el formato ogg. Por lo que le di una oportunidad a icecast, anteriormente lo habia probado pero tuve problemas para configurarlo, pero esta vez ya me funciona.

En esta parte explicare la configuracion de icecast y de ices, el primero es el servidor y el segundo es el cliente que alimentara a nuestro servidor:

  • Instalamos icecast con los USE flags siguientes: “speex ssl theora yp”

# emerge -va icecast

  • Configuramos icecast en el archivo /etc/icecast2/icecast.xml

<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>123</source-password>
<relay-password>1234</relay-password>
<admin-user>admin</admin-user>
<admin-password>12345</admin-password>
</authentication>
<hostname>localhost</hostname>

<listen-socket>
<port>8000</port>
</listen-socket>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/share/icecast</basedir>

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

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel>
<logsize>10000</logsize>
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

  • Instalamos ices:

# emerge -va ices

  • Configuramos el archivo: /etc/ices2/ices.xml, si bien es cierto este archivo no se crea por defecto, hacemos una copia del archivo ices-playlist.xml:

# cp ices-playlist.xml ices.xml

<?xml version=”1.0″?>
<ices>
<background>0</background>
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<loglevel>4</loglevel>
<consolelog>0</consolelog>

<stream>
<metadata>
<name>Radio Santo Domingo</name>
<genre>Musica Variada</genre>
<description>Aun por definir</description>
</metadata>

<input>
<module>playlist</module>
<param name=”type”>basic</param>
<param name=”file”>/etc/ices2/listado.txt</param>
<param name=”random”>0</param>
<param name=”restart-after-reread”>0</param>
<param name=”once”>0</param>
</input>
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>123</password>
<mount>/playlist.ogg</mount>
<reconnectdelay>2</reconnectdelay>
<reconnectattempts>5</reconnectattempts>
<maxqueuelength>80</maxqueuelength>
<encode>
<nominal-bitrate>64000</nominal-bitrate>
<samplerate>44100</samplerate>
<channels>2</channels>
</encode>
</instance>
</stream>
</ices>

  • Creamos el directorio /playlist.ogg y agregamos los archivos ogg que queremos:

# mkdir /playlist.ogg

  • Creamos el listado de los ogg que vamos  a reproducir:

# find /playlist.ogg/ -iname “*.ogg” > /etc/ices2/listado.txt

  • Iniciamos los servicios:

# /etc/init.d/icecast start

# /etc/init.d/ices start

  • Para que arranquen a la hora q inicia nuestro sistema

# rc-update add icecast default

# rc-update add ices default

Para reproducir nuestro streaming desde un navegador vamos a:

http://ip_server:8000/playlist.ogg.m3u

o sino en http://ip_server:8000 nos aparecera un  link hacia ese archivo que lo reproduciremos en mi caso con amarok.

Escrito por Ernie Rojas Villoslado

Diciembre 5, 2008 a 5:52 pm

Escrito en GNU/Linux, Negocios, Python

Etiquetado con , , ,

Escribe un comentario