Icecast2 es un servidor media streaming que soporta los formatos ogg y mp3. Es accesible desde un navegador web por lo que cualquier usuario se puede conectar a nuestro PC y escuchar los contenidos que emitamos en tiempo real, es decir que podemos tener nuestra propia radio por internet.
Icecast2 necesita lo que se denomina un cliente streaming que le entregue contenidos para que funcione. Estos contenidos pueden ser archivos ubicados en una carpeta en el PC, un reproductor de CD, un micrófono conectado a la tarjeta de sonido.
El cliente “oficial” de Icecast2 es Ices2, aunque existen otros como por ejemplo Muse. Existen dos versiones, una le suministra archivos en formato mp3, la otra versión le suministra archivos en formato ogg.
PASOS A SEGUIR
1.- INSTALACIÓN DE icecast2 , ices2
2.- CONFIGURACIÓN DE icecast2
3.- HABILITAR EL SERVICIO
4.- CONFIGURACIÓN DEL CLIENTE ices2 PARA icecast2
5.- CONFIGURACIÓN DEL ARCHIVO DE CANCIONES A REPRODUCIR
6.- ARRANCAR EL CLIENTE ices2
7.- DETENER icecast2 , ices2
8.- INICIAR icecast2 , ices2 AL INICIAR UBUNTU
————————————————————————————————
1.- INSTALACIÓN DE icecast2
Instalamos icecast2, ices2 y herramientas vorbis para manejo de formatos de audio libres (ogg). Nos vamos a una terminal y tecleamos
apt-get install icecast2 ices2 vorbis-tools
2.- CONFIGURACIÓN DE icecast2
Icecast2 viene con los archivos de configuración ubicados en /etc/icecast2. Debemos configurar los password para las fuentes y para el administrador, así como el nombre del servidor, editando el archivo /etc/icecast2/icecast.xml
sudo gedit /etc/icecast2/icecast.xml
♦ Buscamos la sección
PASSWORD_FUENTES , PASSWORD_RELAY , ADMINISTRADOR, PASSWORD_ADMINISTRADOR
♦ Buscamos la sección
♦ Buscamos la sección
3.- HABILITAR EL SERVICIO.
Nos vamos a una terminal y editamos el archivo /etc/default/icecast2 poniendo la variable ENABLE a true que por defecto viene inhabilitada.
sudo gedit /etc/default/icecast2
# 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
icecast2 viene con un servicio montado en /etc/init.d/icecast2 (el cual acabamos de habilitar), ahora lo activamos
sudo /etc/init.d/icecast2 start
En consola nos mostrará
Starting icecast2:
Si ahora nos vamos a la barra de direcciones del navegador web y tecleamos http://localhost:8000 , si todo fue correcto veremos la página de icecast , desde la cual tenemos acceso a administración, listas de reproducción, conexiones clientes
Como vemos aún no tenemos ningún Active Mountpoints, lo cual conseguiremos tras instalar el cliente ices2 y establezcamos las "lista de canciones"
4.- CONFIGURACIÓN DEL CLIENTE ices2 PARA icecast2
Ices2 no viene con archivos de configuración por defecto. Lo que si trae en /usr/share/doc/ices2/examples son archivos de ejemplo para configuraciones de alsa (ices-alsa.xml), oss (ices-oss.xml) y playlist (ices-playlist.xml).
Vamos a utilizar esta última: creamos una carpeta en /etc llamada ices2 ,copiamos allí el archivo y le otorgamos permisos
sudo mkdir /etc/ices2
sudo cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices2/
sudo chmod +x /etc/ices2/ices-playlist.xml
A continuación editamos el archivo y lo configuramos
sudo gedit /etc/ices2/ices-playlist.xml
Es muy sencillo, vamos a ir viéndolo por secciones:
♦ En la sección
♦ En la sección
♦ En la sección configuramos:
="file">/miruta/playlist.txt
="random">1
name="once">0
Establecemos la ruta al archivo que contiene la lista de canciones: /miruta/playlist.txt
Random: indicamos si queremos que la reproducción de los archivos sea secuencial (0) o aleatoria (1).
Once: Indicamos si queremos que la emisora deje de emitir al terminar la lista de reproducción (1) o que continúe emitiendo sin interrupción (0).
♦ En la sección
La dirección del servidor: localhost (porque lo tengo en local, si lo instalásemos en un hosting pondríamos la dirección)
El puerto: por defecto trae 8000 (lo dejamos tal cual)
El password de las fuentes: PASSWORD_FUENTES (es el mismo password que hemos puesto en /etc/icecast2/icecast.xml)
En
Y aquí está el archivo completo:
------------------------------------------------------------------------------------------------------
basic
/home/greiscool/musicaradio/playlist.txt
1
0
0
------------------------------------------------------------------------------------------------------
Creamos la carpeta para el archivo log para ices
sudo mkdir /var/log/ices
y le damos permisos, si no lo hacemos al arrancar ices2 nos lanzará un ERROR
sudo chmod 777 /var/log/ices
5.- CONFIGURACIÓN DEL ARCHIVO DE CANCIONES A REPRODUCIR
Para ello tenemos dos opciones:
Opción a) Creamos la ruta hacia un archivo con la lista de canciones con el comando siguiente
sudo find /RUTA_DONDE_ESTAN_LAS_CANCIONES -iname "*.ogg" > /RUTA_DONDE_TENGO_EL_ARCHIVO_LISTA/LISTA.TXT
Opción b) Editamos el archivo y tecleamos la ruta completa para cada canción
sudo gedit /RUTA_DONDE_TENGO_EL_ARCHIVO_LISTA/LISTA.TXT
/RUTA_DONDE_ESTAN_LAS_CANCIONES/nombre_cancion1.ogg
/RUTA_DONDE_ESTAN_LAS_CANCIONES/nombre_cancion2.ogg
…..
6.- ARRANCAR ices2
Tecleando en consola
sudo ices2 /etc/ices2/ices-playlist.xml &
Si ahora nos vamos a la página (en este caso http://localhost:8000 veremos que aparece el enlace http://localhost:8000/lista_de_reproduccion.ogg , con el que podemos conectarnos a la radio.
7.- DETENER icecast2 , ices2
Si deseamos detener icecast2 tecleamos en una terminal
sudo /etc/init.d/icecast2 stop
nos responderá
Stopping icecast2: icecast2.
Si deseamos detener ices2 tecleamos en una terminal
ps ax | grep ices2
nos responderá dandonos el pid del proceso, algo como lo siguiente
23242 pts/0 S+ 0:00 grep –color=auto ices2
(23242 es el pid que me ha dado, debemos comprobarlo en el momento que deseemos)
Este número nos permitirá detener el ices2 (la emisión) cuando deseemos, tecleando en consola
sudo kill -9 23242
8.- INICIAR icecast2 , ices2 al iniciar Ubuntu
Creamos un archivo icecast2 y lo colocamos en /etc/init.d , tecleando en consola
sudo gedit /etc/init.d/icecast2
con las siguientes líneas de código (aunque tiene una cabecera que identifica al autor original, ha sido modificado posteriormente en varias ocasiones, incluso yo mismo lo he modificado) es funcional si se han seguido los pasos anteriores.
——————————————————————————————————————————————————
#! /bin/sh
### BEGIN INIT INFO
# Provides: icecast2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts the icecast audio streaming server daemon
### END INIT INFO
#
# icecast2
#
# Written by Miquel van Smoorenburg
# Modified for Debian
# by Ian Murdock
#
# Further modified by Keegan Quinn
# for use with Icecast 2
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/icecast2
NAME=icecast2
DESC=icecast2
ICES=/usr/bin/ices2
ICES_CONFIGFILE=/etc/ices2/ices-playlist.xml
test -x $DAEMON || exit 0
# Defaults
CONFIGFILE="/etc/icecast2/icecast.xml"
CONFIGDEFAULTFILE="/etc/default/icecast2"
USERID=icecast2
GROUPID=icecast
ENABLE="false"
# Reads config file (will override defaults above)
[ -r "$CONFIGDEFAULTFILE" ] && . $CONFIGDEFAULTFILE
if [ "$ENABLE" != "true" ]; then
echo "$NAME daemon disabled - read $CONFIGDEFAULTFILE."
exit 0
fi
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
--exec $DAEMON -- -b -c $CONFIGFILE
sleep 3
start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $ICES
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
echo "$NAME."
;;
reload|force-reload)
echo "Reloading $DESC configuration files."
start-stop-daemon --stop --oknodo --quiet --exec $ICES
start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON
sleep 3
start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $ICES
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
sleep 3
start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
--exec $DAEMON -- -b -c $CONFIGFILE
sleep 3
start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
——————————————————————————————————————————————————
Una vez creado el archivo hacemos que se agregue como servicio y así será iniciado durante el arranque de Ubuntu.
sudo update-rc.d icecast2 defaults
Listo cada vez que arranquemos Ubuntu ya tendremos el icecast2 y su cliente ices2 operativos.
Fuente -> icecast
=========================================================================
Nota.- En este artículo se muestra como emitir desde una lista de reproducción (playlist); en el artículo Transmitir radio en vivo con Icecast2 desde Linux Ubuntu se detalla como emitir radio en vivo (live)
=========================================================================