Guía rápida para instalar Icecast 2 en Ubuntu (y Debian, supongo)
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
- <authentication>
- <!-- Sources log in with username 'source' -->
- <source-password>PASSWORD_FUENTES</source-password>
- <!-- Relays log in username 'relay' -->
- <relay-password>PASSWORD_RELAY</relay-password>
- <!-- Admin logs in with the username given below -->
- <admin-user>ADMINISTRADOR</admin-user>
- <admin-password>PASSWORD_ADMINISTRADOR</admin-password>
- </authentication>
y después
- <!-- This is the hostname other people will use to connect to your server.
- It affects mainly the urls generated by Icecast for playlists and yp
- listings. -->
- <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)
- <?xml version="1.0" ?>
- <ices>
- <background>1</background>
- <logpath>/var/log/icecast2</logpath>
- <logfile>ices.log</logfile>
- <loglevel>4</loglevel>
- <consolelog>0</consolelog>
- <pidfile>/tmp/ices.pid</pidfile>
- <stream>
- <metadata>
- <name>NOMBRE ESTACION</name>
- <genre>GENERO ESTACION</genre>
- <description>DESCRIPCION ESTACION</description>
- </metadata>
- <input>
- <module>playlist</module>
- <param name="type">basic</param>
- <param name="file">/PATH/DE/MI/LISTADO.TXT</param>
- <param name="random">1</param>
- <param name="restart-after-reread">0</param>
- <param name="once">0</param>
- </input>
- <instance>
- <hostname>localhost</hostname>
- <port>8000</port>
- <password>PASSWORD_FUENTES</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>
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
- 10798 lecturas

Y en el archivo "LISTADO.TXT" que debo poner?
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
hola tengo una emisora en am en pueblo y quisiera colocarla en internet. hago los mismos pasos? cuaantas personas me pueden escuchar?
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
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
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.
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.
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.
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.
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)
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..
No problema. ¿Me podrías decir que información en particular te interesaría?
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
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 icecast2y en gentooemerge icecast2.Si ocupas Windows, descarga el archivo que dice "Windows Setup".
Eso sería.
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
si es cierto con el IceS2 se puede en vivo.
http://www.icecast.org/docs/ices-2.0.0/config.html
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
He seguido el tutorial, pero cuando llega a
ices2 /etc/icecast2/ices2.xml
no pasa nada de nada, ningún mensaje, nada....
necesito saber si se puede aplicar en SUSE, ya he intentado con SHOUT CAST pero no lo he logrado
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
Enviar un comentario nuevo