Guía rápida para instalar Icecast 2 en Ubuntu (y Debian, supongo)

Clasificado en:

A petición de los interesados, una guía rápida para hacer funcionar un icecast 2 en ubuntu

Antes que nada, unas explicaciones:

Icecast es un servidor de flujos de media (media streaming) que soporta Ogg y Mp3. Con programas tales como Winamp o Xmms, cualquier usuario se puede conectar a tu computador y escuchar contenidos de audio en tiempo real, o en otras palabras, puedes tener tu radio por internet.

Ahora bien, Icecast por si solo no hace mucho, ya que a lo sumo permite entregar archivos ogg o mp3 de forma directa, tal cual como lo haría Apache. Para hacer que funcione como una radio, necesitamos lo que se llama un cliente de streaming, que entregue contenidos a Icecast para que funcione. Haciendo una analogía con la radio, Icecast es la antena, en tanto que el cliente es la consola que tiene conectados los micrófonos y el reproductor de CD.

El cliente "oficial" de Icecast es Ices. La versión 1 permite usar Mp3, en tanto que la 2, más poderosa, permite ocupar Ogg. A mi me encantan los ogg, así que me quedo con esta última.

Como esta guía esta dedicada a los debianistas de turno, tenemos que hacer un clásico apt-get

apt-get install icecast2 ices2 vorbis-tools

Icecast2 viene con los archivos de configuración necesarios en /etc/icecast2 y con un servicio montado en /etc/init.d/icecast2, así que lo único que debemos hacer es modificar /etc/icecast2/icecast.xml para definir los password para las fuentes y del administrador, así como el nombre del servidor. Para ello, busquen en el archivo nombrado las siguientes secciones

  1.  <authentication>
  2.   <!-- Sources log in with username 'source' -->
  3.   <source-password>PASSWORD_FUENTES</source-password>
  4.   <!-- Relays log in username 'relay' -->
  5.   <relay-password>PASSWORD_RELAY</relay-password>
  6.  
  7.   <!-- Admin logs in with the username given below -->
  8.   <admin-user>ADMINISTRADOR</admin-user>
  9.   <admin-password>PASSWORD_ADMINISTRADOR</admin-password>
  10.   </authentication>

y después

  1.  <!-- This is the hostname other people will use to connect to your server.
  2.   It affects mainly the urls generated by Icecast for playlists and yp
  3.   listings. -->
  4.   <hostname>www.miservidor.com</hostname>

Si todo sale bien, al ir a http://www.miservidor.com:8000 deberíamos ver la página de icecast.

Ahora toca lo complicado. Ices2 no viene con archivos de configuración, así que tenemos que hacer algunos malabares extraños. Para mantener el orden, creemos un archivo llamado ices2.xml dentro de /etc/icecast2, el cual debe contener la siguiente información (cambien todo aquello que esté en mayúsculas)

  1.  <?xml version="1.0" ?>
  2.  <ices>
  3.   <background>1</background>
  4.   <logpath>/var/log/icecast2</logpath>
  5.   <logfile>ices.log</logfile>
  6.   <loglevel>4</loglevel>
  7.   <consolelog>0</consolelog>
  8.   <pidfile>/tmp/ices.pid</pidfile>
  9.  
  10.   <stream>
  11.   <metadata>
  12.   <name>NOMBRE ESTACION</name>
  13.   <genre>GENERO ESTACION</genre>
  14.   <description>DESCRIPCION ESTACION</description>
  15.   </metadata>
  16.  
  17.   <input>
  18.   <module>playlist</module>
  19.   <param name="type">basic</param>
  20.   <param name="file">/PATH/DE/MI/LISTADO.TXT</param>
  21.   <param name="random">1</param>
  22.   <param name="restart-after-reread">0</param>
  23.   <param name="once">0</param>
  24.   </input>
  25.  
  26.   <instance>
  27.   <hostname>localhost</hostname>
  28.   <port>8000</port>
  29.   <password>PASSWORD_FUENTES</password>
  30.   <mount>/playlist.ogg</mount>
  31.  
  32.   <reconnectdelay>2</reconnectdelay>
  33.   <reconnectattempts>5</reconnectattempts>
  34.   <maxqueuelength>80</maxqueuelength>
  35.   <encode>
  36.   <nominal-bitrate>64000</nominal-bitrate>
  37.   <samplerate>44100</samplerate>
  38.   <channels>2</channels>
  39.   </encode>
  40.   </instance>
  41.   </stream>
  42.  </ices>

Como se habrán dado cuenta, hay dos datos con los cuales hay que tener cuidado. El primero, es el la ruta hacia un archivo con el listado de canciones a tocar. Para crearlo, basta hacer algo como

find /PATH/MIS/CANCIONES -iname "*.ogg" > /PATH/DE/MI/LISTADO.TXT

Lo segundo es utilizar el password que definimos en icecast2 para las fuentes en la sección de instance/password.

Una vez definido estos datos, tenemos que echar a andar nuestro ices2. Para ello, ingresemos como root

ices2 /etc/icecast2/ices2.xml &

Si todo va bien, al ingresar a la página del icecast veremos que aparece en la mitad de la página un link a http://www.miservidor.com:8000/playlist.ogg.m3u, el cual nos permite conectarnos a la radio.

Hasta aquí, todo bien. Pero, ¿que pasa si queremos que el computador se inicie con el icecast2 y ices2?. Debemos crear una entrada en /etc/init.d con las instrucciones necesarias para iniciar ices2. Copiando casi literalmente el archivo de configuración de icecast2, aquí les presento una versión funcional de /etc/init.d/ices2

#! /bin/sh
#
# ices2
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/ices2
NAME=ices2
DESC=ices2

test -x $DAEMON || exit 0

# Defaults
CONFIGFILE="/etc/icecast2/ices2.xml"
#CONFIGDEFAULTFILE="/etc/default/icecast2"
USERID=icecast2
GROUPID=icecast

# Reads config file (will override defaults above)

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
		--exec $DAEMON $CONFIGFILE
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
	echo "$NAME."
	;;
  reload|force-reload)
	echo "Reloading $DESC configuration files."
	start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON
	;;
  restart)
	echo -n "Restarting $DESC: "
	start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
	sleep 1
	start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
		--exec $DAEMON $CONFIGFILE
	echo "$NAME."
	;;
  *)
	echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
	exit 1
	;;
esac


exit 0

Una vez creado el archivo, debemos hacer update-rc.d ices2 defaults, para que nuestro archivo se agregue como un servicio a ser iniciado junto con el computador

Recuerden que para codificar ogg basta hacer oggenc miarchivo.wav en los ficheros que corresponda. Ices2 se encargará de recodificar los archivos para que icecast reciba un flujo uniforme de bytes

Y eso sería todo. Cualquier duda o consulta, cosa de avisar :)

Actualización: Pueden ver otro how-to, pero con Muse, en linuzeros.org

Imagen de Perejilillo desconocido

Y en el archivo "LISTADO.TXT" que debo poner?

Enviado por Perejilillo desconocido el Mié, 05/09/2007 - 12:12.
icono de usuario

una pregunta ya lo tengo instalado y corriendo pero no puedo ver el numero de coneccions entrantes ya que cuando le doy a la pagina local no me aparece nada.

agradeceria tu ayuda

Enviado por edmundo (no verificado) el Mar, 19/02/2008 - 22:52.
Imagen de Perejilillo desconocido

hola tengo una emisora en am en pueblo y quisiera colocarla en internet. hago los mismos pasos? cuaantas personas me pueden escuchar?

Enviado por Perejilillo desconocido el Jue, 20/09/2007 - 14:27.
icono de usuario

Gracias por la guia, la he seguido tal y como dices, pero me surje un problema. Cuando lanzo el servidor, se intenta descargar el lista de canciones y cuando entran en el reproductor me dice que playlist.ogg no encuentra la direccion. ¿Donde debo crear la lista de canciones *.ogg?

gracias

Enviado por uPPer (no verificado) el Vie, 26/10/2007 - 06:50.
icono de usuario

HOLA ESPERO Y ME PUEDAS ALLUDAR

MI PROBLEMA ES CON EL AUDIO. LO QUE PASa eSQUE CUANDO ESTOY ESCUCHANDO EL AUDIO EN OTRA COMPUTADORA EL AUDIO SE ESCHUCHA DISTORCIONADO Y CON RUIDO.
OJALA Y ME PUDIERAS ALLUDAR

Enviado por URGENTE (no verificado) el Lun, 29/10/2007 - 16:44.
icono de usuario

Muchas gracias por tu tutorial, fijate que cuando pongo
la instruccion ices2 /etc/icecast2/ices2.xml &
me aparece
root@paco-laptop:/# /etc/icecast2/ices2.xml:1: parser error : Start tag expected, '<' not found
1.
^
Failed to read config file "/etc/icecast2/ices2.xml"

y de ali en adelante ya no se que debo hacer, muchas gracias por tu tiempo.

Enviado por paco (no verificado) el Sáb, 17/11/2007 - 01:23.
Imagen de clbustos

El listado con rutas absolutas a tus canciones en formato .ogg. La forma más rápida es usando la instrucción que puse en el texto, con find.

Enviado por clbustos el Mié, 05/09/2007 - 12:21.
Imagen de clbustos

Si, puedes seguir la misma guía que está expuesta aquí. Si tienes problemas nos avisas y trataremos de ver como arreglamos tu lío.
Recuerda que si alojas la radio en tu computador, necesitaras un servicio de ip dinámico para que tus oyentes puedan encontrar tu servicio de forma rápida.
El número de personas que te pueden escuchar dependerá del ancho de banda de tu servicio. Lo más rápido es que dividas el ancho total de salida, que en Chile será en promedio de 500kbps, con el ancho de banda de tu radio, que debería rondar los 32kbps.

Enviado por clbustos el Jue, 20/09/2007 - 15:37.
Imagen de clbustos

En la línea 20 del ices.xml está la instrucción específica.

Ahora, por lo que me cuentas, parece que el problema es otro. Si entiendo bien, el reproductor, no el icecast ni el ices, te dice que no encuentra la dirección donde escuchar la música. Te diría que verificaras con el navegador, por el puerto 8000, que todo estuviera ok.

Enviado por clbustos el Vie, 26/10/2007 - 12:20.
Imagen de clbustos

El archivo de configuración( /etc/icecast2/ices2.xml) no está bien. Parece que pegaste tal cual las líneas que puse en el artículo. Tienes que eliminar todos los números de línea, que sólo están para propósitos de claridad (los 1., 2. etc)

Enviado por clbustos el Sáb, 17/11/2007 - 18:28.
icono de usuario

Hola Claudio, buen tema, me intereso sobre
todo por la posibilidad de hacer radio. Me gustaría más info
para usuarios de Ubuntu. Saludos..

Enviado por danilo ulloa (no verificado) el Mié, 09/11/2005 - 01:17.
Imagen de clbustos

No problema. ¿Me podrías decir que información en particular te interesaría?

Enviado por clbustos el Mié, 09/11/2005 - 10:15.
icono de usuario

Hola, te agradesco por esta importante ayuda que nos das con este tutorial, hay muchas cosas que no comprendo por que soy nuevo en esto del stream pero quiero aprender, entre a la pagina de Icecast pero no se cual tengo que bajar me podrian dar el enlace directo para asi descargar el que Icecast que corresponde por favor, desde ya muchas gracias

Enviado por Braum (no verificado) el Dom, 09/04/2006 - 08:24.
Imagen de clbustos

Es muy sencillo. Si tienes una distribución de linux, te conviene ocupar el paquete diseñado para tu bicho. Por ejemplo, en Debian deberían usar apt-get install icecast2 y en gentoo emerge icecast2.
Si ocupas Windows, descarga el archivo que dice "Windows Setup".
Eso sería.

Enviado por clbustos el Lun, 10/04/2006 - 13:58.
icono de usuario

Hola Claudio. una maravilla tu articulo, pero necesitaria saber como hago lo mismo pero con darkice+icecast2. Sabes como hacerlo? es para un a emision en vivo y en directo. Gracias

Enviado por Verbaton (no verificado) el Mié, 10/05/2006 - 18:57.
icono de usuario

si es cierto con el IceS2 se puede en vivo.
http://www.icecast.org/docs/ices-2.0.0/config.html

Enviado por Zokratez (no verificado) el Mar, 08/04/2008 - 10:57.
Imagen de clbustos

El único problema conmigo es que me halagan y caigo como imbécil.
Yap, veremos que puedo hacer.
Oye, a todo esto, probaste con ices2? Se supone que también puedes mandar una señal en vivo, con alsa, oss o incluso vía pipe

Enviado por clbustos el Mié, 10/05/2006 - 22:17.
icono de usuario

He seguido el tutorial, pero cuando llega a
ices2 /etc/icecast2/ices2.xml

no pasa nada de nada, ningún mensaje, nada....

Enviado por tuxídides (no verificado) el Sáb, 03/02/2007 - 15:19.
icono de usuario

necesito saber si se puede aplicar en SUSE, ya he intentado con SHOUT CAST pero no lo he logrado

Enviado por Sound-dj- (no verificado) el Sáb, 17/02/2007 - 00:25.
icono de usuario

hola me llamo silvio me gustaria saber si el mismo servidor (icecast2)sirve para stream de video y audio a la vez y que cliente se debe utilizar en debian, y como puedo conmfigurarlo para hacer video conferencia y si hay otro servidor mucho mejor para la misma pudieras decirmo donde descargarlo espero respuesta

Enviado por silvio (no verificado) el Jue, 29/03/2007 - 09:07.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato