domingo, abril 08, 2012

Instalar icecast2, servidor de radio en Ubuntu 11.10

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 y configuramos los siguientes parámetros

PASSWORD_FUENTES , PASSWORD_RELAY , ADMINISTRADOR, PASSWORD_ADMINISTRADOR


PASSWORD_FUENTES
PASSWORD_RELAY
ADMINISTRADOR
PASSWORD_ADMINISTRADOR

♦ Buscamos la sección Indicamos el nombre del servidor que vamos a utilizar. Si emitimos desde nuestro equipo en local ponemos localhost

www.miservidor.com

Buscamos la sección Indicamos el puerto desde el que emitimos. Si emitimos desde nuestro equipo en local podemos dejar el 8000


8000


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 cambiamos el 0 por 1, de esta forma evitaremos que se mantenga la terminal abierta hasta que lo cerremos.

1

♦ En la sección configuramos:


NOMBRE ESTACION
GENERO ESTACION
DESCRIPCION ESTACION

♦ 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 configuramos:

localhost
8000
PASSWORD_FUENTES
/lista_de_reproduccion.ogg

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 debemos escojer el ‘mount point’ que queramos para emitir. Podemos poner algo descriptivo (sin espacios y acabado en .ogg), por ejemplo lista_de_reproduccion.ogg

Y aquí está el archivo completo:

------------------------------------------------------------------------------------------------------




1

/var/log/ices
ices.log

4

0







Radio La Vida es TUX
Linux Ubuntu Radio
Música para relajarse





playlist
basic
/home/greiscool/musicaradio/playlist.txt

1

0

0





localhost
8000
PASSWORD_FUENTES
/lista_de_reproduccion.ogg


2
5


80



64000
44100
2




------------------------------------------------------------------------------------------------------

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)

=========================================================================

No hay comentarios.: