Servidor de Streaming con Icecast

By Jose Alberto Gallardo Pérez viernes, 13 de febrero de 2015
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!



José Alberto Gallardo Pérez

Soy un sevillano de 25 años, proyecto de ingeniero, profe de ajedrez, escéptico, loco, con mil ideas en la cabeza y poco tiempo para desarrollarlas. A veces me da por crear contenido en Monetizalia, Gallardowork, MusicCopyleft o donde estas ahora mismo.

2 comentarios to ''Servidor de Streaming con Icecast"

ADD COMMENT
  1. Segui tu guia y otra muy similar, y a la hora de encender ices2, no me tira ningun error, pero no me monta ningun punto de montaje, no iniciando el servicio, mirando el log de ices veo que si lo inicio, pero por ciertos errores, lo cierra al momento de iniciarlo, pongo un extracto del log:
    warn playlist-builtin/playlist_read corrupt or mmissing data in file (nombre cancion)
    info playlist-builtin/playlist_read currently playing "nombre cancion"
    warn playlist-builtin/playlist_read detected duplicate serial number "nombre cancion"
    eror input/input_calculate_ogg_sleep timing control: can´t determine sample rate for input, not vorbis

    ResponderEliminar