Cómo montar tu propia estación de radio por Internet

Este "Cómo", explica cómo se puede montar una estación de radio por Internet, usando dos programas OpenSource, IceCast2 e Ices2, es conveniente tener presente que para poner este proyecto en práctica se necesita un abundante ancho de banda si pensamos atender a varios usuarios simultáneamente. Adicionalmente el tema legal sobre los derechos de las canciones no será tocado en este blog, para ello consulte con un abogado especializado en el tema.

Una limitación tanto de IceCast2, como de Ices2, es que sólo hacen streaming de archivos en formato ogg, por razones de copyright, y si sólo se dispone de archivos mp3, se puede usar el programa mp32ogg.

Asumiremos además de que se usara Debian 4.0 o Ubuntu, para nuestro server que hará streaming de audio. Para la instalación y configuración debemos de tener privilegios de root, para ello en Debian, debemos estar logueados cómo root, para Ubuntu debemos de anteponer el comando "sudo" a cada uno de los comandos que se muestran en este "Cómo".

Primero instalamos IceCast2:

apt-get install icecast2

Ahora debe editar el archivo /etc/icecast2/icecast.xml y cambiar los valores por defecto de:

  • source-password, este será el password que usara ices2 para conectarse al server.
  • relay-password, este password se usaría si desea conectar dos servers en cascada.
  • admin-user, cómo su nombre lo indica el usuario que será el administrador de IceCast2.
  • admin-password, el password del usuario con privilegios de administración de IceCast2.

Después de haber cambiado los valores por defecto por otros que le convengan, debe editar el archivo: /etc/default/icecast2 y cambiar el valor de la variable "ENABLE" a "true", cómo se muestra a continuación:

# Edit /etc/icecast2/icecast.xml and change at least the passwords.
# Change this to true when done to enable the init.d script
ENABLE=true

Eso es todo. Ahora podemos proceder a iniciar el servidor icecast2:

/etc/init.d/icecast2 start

Ahora Ud. puede acceder a la interface web de IceCast2, simplemente apuntando al IP del server con su navegador a través del puesto 8000, por ejemplo si el IP del server es 192.168.1.100, para poder acceder a la interface web de IceCast2 debemos apuntar nuestro navegador a http://192.168.1.100:8000, aquí lo que deben de obtener:

IceCast2_imagen_1

Ahora que ya tenemos el server que hará el streaming del audio, necesitamos instalar Ices2, que nos permitirá introducir el audio en el server desde en un playlist. Caso contrario deberíamos de introducir audio a través de la tarjeta de sonido, pero no es lo que haremos en este tutorial.

Instalar Ices2, es tan fácil como tipear este comando:

apt-get install ices2

Luego de que hayamos instalado Ices2, debemos crear los directorios donde pondremos los logs, los archivos de configuración y los archivos de música que transmitiremos.

mkdir /var/log/ices
mkdir /etc/ices2
mkdir /etc/ices2/music

El directorio /var/log/ices es para guardar los logs de Ices2, el directorio /etc/ices2 contendrá los archivos de configuración, y el archivo /etc/ices2/music contendrá los archivos de música en formato ogg que transmitiremos.

Ahora tenemos que crear el archivo /etc/ices2/ices-playlist.xml, para ello podemos usar un editor de texto como pico o vi, por ejemplo podemos hacerlo de esta forma:

pico /etc/ices2/ices-playlist.xml

Y dentro copiaremos esta configuración:

<?xml version="1.0"?>
<ices>
<!– run in background –>
<background>1</background>
<!– where logs, etc go. –>
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<!– 1=error,2=warn,3=info,4=debug –>
<loglevel>4</loglevel>
<!– set this to 1 to log to the console instead of to the file above –>
<consolelog>0</consolelog>

<!– optional filename to write process id to –>
<!– <pidfile>/home/ices/ices.pid</pidfile> –>

<stream>
<!– metadata used for stream listing (not currently used) –>
<metadata>
<name>Example stream name</name>
<genre>Example genre</genre>
<description>A short description of your stream</description>
</metadata>

<!– input module

The module used here is the playlist module – it has
‘submodules’ for different types of playlist. There are
two currently implemented, ‘basic’, which is a simple
file-based playlist, and ‘script’ which invokes a command
to returns a filename to start playing. –>

<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">/etc/ices2/playlist.txt</param>
<!– random play –>
<param name="random">0</param>
<!– if the playlist get updated that start at the beginning –>
<param name="restart-after-reread">0</param>
<!– if set to 1 , plays once through, then exits. –>
<param name="once">0</param>
</input>

<!– Stream instance
You may have one or more instances here. This allows you to
send the same input data to one or more servers (or to different
mountpoints on the same server). Each of them can have different
parameters. This is primarily useful for a) relaying to multiple
independent servers, and b) encoding/reencoding to multiple
bitrates.
If one instance fails (for example, the associated server goes
down, etc), the others will continue to function correctly.
This example defines two instances as two mountpoints on the
same server. –>
<instance>
<!– Server details:
You define hostname and port for the server here, along with
the source password and mountpoint. –>
<hostname>localhost</hostname>
<port>8000</port>
<password>source-password</password>
<mount>/example1.ogg</mount>

<!– Reconnect parameters:
When something goes wrong (e.g. the server crashes, or the
network drops) and ices disconnects from the server, these
control how often it tries to reconnect, and how many times
it tries to reconnect. Delay is in seconds.
If you set reconnectattempts to -1, it will continue
indefinately. Suggest setting reconnectdelay to a large value
if you do this.
–>
<reconnectdelay>2</reconnectdelay>
<reconnectattempts>5</reconnectattempts>

<!– maxqueuelength:
This describes how long the internal data queues may be. This
basically lets you control how much data gets buffered before
ices decides it can’t send to the server fast enough, and
either shuts down or flushes the queue (dropping the data)
and continues.
For advanced users only.
–>
<maxqueuelength>80</maxqueuelength>

<!– Live encoding/reencoding:
Currrently, the parameters given here for encoding MUST
match the input data for channels and sample rate. That
restriction will be relaxed in the future.
–>
<encode>
<nominal-bitrate>64000</nominal-bitrate> <!– bps. e.g. 64000 for 64 kbps –>
<samplerate>44100</samplerate>
<channels>2</channels>
</encode>
</instance>

</stream>

</ices>

Lo único que debe de cambiar es lo que va entre los tags <password> … </password>, para ello lo hemos puesto en rojo para que se de cuenta, ese password es el que estableció para <source-password> en el archivo /etc/icecast2/icecast.xml

Luego de concluido lo anterior copie las canciones que desea hacer streaming en formato ogg en el directorio /etc/ices2/music

Finalmente para completar la configuración de Ices2, debemos de editar el archivo del playlist, donde pondremos en una línea cada canción que deseamos reproducir, recuerde que la ubicación del playlist es: /etc/ices2/playlist.txt

[…]
/etc/ices2/music/cancion_x.ogg
/etc/ices2/music/cancion_y.ogg
[…]

Con el paso anterior ya hemos finalizado la configuración de Ices2 y podemos iniciarlo, con este comando:

/usr/bin/ices2 /etc/ices2/playlist.txt

Para oír la música, pues simplemente volvemos con nuestro navegador a la página de IceCast2, http://192.168.1.100:8000 y podremos escuchar el streaming de audio simplemente haciendo click en el link "Click to Listen", aquí un screenshot de que deberíamos obtener:

IceCast2_4

Opcionalmente se puede conseguir el streaming de audio visitando directamente el URL

http://192.168.0.100:8000/example1.ogg.m3u

WinAmp debería de poder reproducir el sonido sin problemas, si sólo tiene Windows Media Player, este no incluye el codec del formato ogg, en el blog TechRecipies.com se explica cómo instalarlo en Windows Media Player. Aunque en lo personal les recomendaría a los usan Windows usar WinAmp en lugar del Windows Media Player. Para los que usan Linux, ogg esta soportado por defecto, sólo click y debería de comenzar a reproducir el audio.

Espero que este "Cómo", les haya sido de utilidad, espero sus comentarios.

2 comentarios en «Cómo montar tu propia estación de radio por Internet»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.