Antes de empezar esta práctica en la que vamos a hacer Streaming de audio usando listas de reproducción, me gustaría aclarar varios aspectos y cosas que deberíais saber antes de crear vuestro servidor de Streaming con Icecast.

  • ¿Qué es Streaming?
  • ¿Donde vamos a instalar Icecast?
  • Cosas a tener en cuenta antes de instalar Icecast
  • Instalación de Icecast
  • Configurar Ices y Icecast
  • Escuchar canciones en Streaming

Icecast en Debian

En mi caso voy a realizar la instalación en una máquina virtual Debian con una única interfaz en "Adaptador Puente" y en DHCP. A esta me conectaré mediante Putty y Winscp para configuración y para transferir la música respectivamente. 

Streaming

Puedes encontrar acepciones mucho más complejas que la mía, pero Streaming no es más que poder consumir un contenido multimedia mientras lo estás descargando, ya sea audio o vídeo. En la vida real digamos que es ese momento en el que estás comprando un helado y le das la primera "chupadita" al cucurucho antes de pagarlo...

Antes de instalar Icecast...

Icecast es un servicio que nos proporciona poder hacer Streaming, y a demás es de software libre y gratuito, motivo por el que lo he elegido para la práctica, pero debes tener en cuenta que actualmente no es compatible con archivos .mp3.

Instalación de Ices y Icecast

Gallardo me has dicho que ibamos a instalar Icecast pero no me has dicho nada de Ices. Pues para que nos hagamos una idea ices será el reproductor del Streaming y Icecast se encargará de la transmisión de los datos. Así pues comencemos con la instalación de nuestros servicios...

apt-get update
apt-get install icecast2 ices2

Tras la instalación configuraremos el archivo icecast.xml

nano /etc/icecast2/icecast.xml
En el cuál vamos a cambiar el usuario y contraseña en los cuales vamos a poner "source". OJO! si pones algo diferente no te va a funcionar.


Y a continuación activaremos nuestro servidor Icecast

nano /etc/default/icecast2
Donde debemos cambiar de false a true la siguiente directiva


Comprobar el éxito de la instalación iniciando Icecast

service icecast2 start
Y si todo funciona de forma correcta ya podremos acceder desde el navegador, en mi caso desde mi máquina anfitriona, ya que mi servicio está corriendo en la máquina virtual de Debian... Simplemente pondremos la IP del servidor seguido de :8000


Configuración  de Icecast

Ahora por comodidad nos vamos a ir a nuestro /home/usuario que en mi caso es /home/gallardo, y vamos a crear el directorio iceconf. Entraremos en nuestro nuevo directorio y vamos a crear el archivo ices2-playlist.xml con el siguiente contenido: (Puedes usar Putty para copiarlo y pegarlo)

<?xml version='1.0'?>
<ices>
<background>0</background>
<logpath>/var/log/icecast2</logpath>
<logfile>ices.log</logfile>
<loglevel>4</loglevel>
<consolelog>1</consolelog>
<stream>
<metadata>
<name>Radio Gallardo</name>
<genre>Electronic Music Dance</genre>
<description>Radio con mis canciones preferidas</description>
<url>http://gallardowork.blogspot.com</url>
</metadata>
<!-- El <input> es lo único diferente al fichero ices2-live.xml -->
   <input>
   <module>playlist</module>
   <!--Indicar el sitio de la lista de reproducción-->
<param name="file">/home/gallardo/iceconf/playlist</param>
   <param name="type">basic</param>
   <!--reproduce en modo random-->
   <param name="random">1</param>
   <!--A valor 0 reproduce la lista
  continuamente."-->
   <param name="once">0</param>
   <param name="rate">44100</param>
   <param name="channels">2</param>
   <param name="device">/dev/dsp</param>
 </input>
<instance>
<hostname>127.0.0.1</hostname>
<port>8000</port>
<!-- El usuario debe ser source y la contraseña debe corresponder con la del archivo /etc/icecast2/icecast.xml-->
<username>source</username>
<password>source</password>
<mount>/RadioGallardo.ogg</mount>
<yp>1</yp>
<encode>
<!--Datos de la velocidad de transmisión-->
<minimum-bitrate>48000</minimum-bitrate>
<maximum-bitrate>64000</maximum-bitrate>
<nominal-bitrate>64000</nominal-bitrate>
<samplerate>44100</samplerate>
<!--Calidad de codificación-->
<quality>1</quality>
<!--Número de canales de la entrada -->
<channels>2</channels>
</encode>
<downmix>1</downmix>
<resample>
<in-rate>44100</in-rate>
<out-rate>44100</out-rate>
</resample>
</instance>
</stream>
</ices>


En rojo te he marcado las opciones que debes tener en cuenta o debes modificar:
  • /home/gallardo/iceconf/playlist | será la ruta del archivo playlist
  • source | debe ser el usuario y contraseña
  • /RadioGallardo.ogg | será el punto de montaje

Transferiendo la música a nuestro servidor

Como avisé al principio, Icecast no es compatible con archivos mp3, por lo que te recomiendo que los conviertas en .ogg antes de enviarlos al servidor. Aquí tienes un enlace a un conversor online bastante sencillo.


Y una vez que tenemos la música en .ogg tendremos que pasarlas a nuestro servidor Debian. Aquí como ya avisé anteriormente hago uso de la herramienta Winscp.


Crear el archivo Playlist

El archivo playlist será un archivo donde irán las rutas absolutas de los archivos, en mi caso de mis canciones que voy a meter en la playlist de mi servidor de streaming. Ojo! a las mayúsculas...
nano /home/gallardo/iceconf/playlist


/home/gallardo/iceconf/CalvinHarris-Outside.ogg
/home/gallardo/iceconf/Showtek-90s.ogg


Reiniciar Icecast y correr Ices

Para finalizar reiniciaremos nuestro servicio Icecast y vamos a correr Ices de la siguiente forma:

service icecast2 restart
ices2 /home/gallardo/iceconf/ices2-playlist.xml

Y si no te da ningún error al final de unos logs nos aparecerá el gratificante mensaje de que ya estamos transmitiendo...

Escuchar canciones en Streaming

Por último sólo debemos acceder a la IP del servidor :8000 /Dirección del punto de montaje que como dijimos antes se encuentra en nuestro archivo ices2-playlist.xml. Que en mi caso es 192.168.0.5:8000/RadioGallardo.ogg y nada ¡A disfrutar de la música en Streaming!