Streaming de audio con Icecast y Muse

Estándar

Instalación de un server de streaming para MP3 y OGG en Ubuntu Dapper

Paso 1: Requisitos

1) Icecast
2) MuSE Streamer

Paso 2: Instalación

Instalamos el Icecast v1, mas que nada porque el v2 hay que compilarlo para que tenga soporte mp3 (y de paso que no he conseguido echarlo a andar correctamente con muse).

Podemos instalarlo gráficamente desde Sistema–>Administración–>Gestor de paquetes synaptic. Pulsamos sobre el boton buscar y escribimos «icecast-server». Botón derecho del ratón, «marcar para instalar» y luego pulsamos en el botón «aplicar».

O bien desde consola con:

sudo apt-get install icecast-server

Para el MuSE-Streamer tendremos mas cachondeo porque viene con soporte solo para OGG. Si queremos que tenga soporte para MP3 tendremos que bajarlo y compilarlo (¿porque no viene ya compilado con soporte mp3? Pues por esa porquerí­a llamada patentes) , por suerte no es demasiado dificil. A continuación detallo los pasos.
Primero descargamos el programa, la web es http://muse.dyne.org/ . En la sección download podeis encontrar binarios, ojo que no tienen soporte mp3, y tambien los «sources» o codigo fuente. Para ir mas rápido os dejo la descarga del que buscamos aquí­.
Ahora que ya lo hemos descargado tendremos que descomprimirlo. Podemos hacerlo graficamente con un simple doble-click en el archivo tar.gz y pulsando el boton extraer (ojo fijaos donde lo extrae!). O bien podemos hacerlo desde consola asi:

Primero me dirijo hacia donde esta el archivo tar.gz , en mi caso en el Escritorio.

cd /home/neil/Desktop

Despues descomprimo.

tar zxvf MuSE-0.9.2.tar.gz

Bien, una vez descomprimido tocará usar consola por narices, osea que ahora no hay opción gráfica (no le tengais miedo que no es para tanto).
Abrimos una consola si no lo habiamos hecho ya y nos vamos donde tengamos el directorio con lo que hemos descomprimido.

cd /home/neil/Desktop/MuSE-0.9.2

Ahora que ya estamos dentro tenemos que preparar el codigo fuente para ser compilado, la siguiente orden se ocupa de comprobar que tengamos todo lo necesario para compilarlo. Para ahorrar faena os dejo una lista de paquetes que serán necesarios (instaladlos con apt-get o desde Synaptic como antes):

build-essential vorbis-tools lame liblame-dev gettext xlibs-dev libgtk2.0-dev libx11-dev libvorbis-dev checkinstall makepasswd

No todos los paquetes listados son necesarios para esto , pero hay algunos que nos haran falta luego.

Bueno, desde consola seria (esto es mas que nada para los que haceis copy-paste):

sudo apt-get install build-essential vorbis-tools lame liblame-dev gettext xlibs-dev libgtk2.0-dev libx11-dev libvorbis-dev checkinstall makepasswd

Bien, ahora que tenemos (creo..) todo lo necesario vamos a preparar el codigo para ser compilado.

./configure

Si, es asi de simple un punto, una barra y el configure. Si al final os sale algun error es que probablemente falte algun paquete, instaladlo y listos. Puede serviros de ayuda la web packages.ubuntu.com que os permite buscar archivos incluso dentro de los paquetes para saber
cual neceistais.

Si no hemos tenido ningun problema más , pasamos a compilar:

make

Y cuando termine el «make» , si no ha habido errores, crearemos un paquete «deb».

sudo checkinstall

El checkinstall creará un paquete deb con el programa para que luego podais eliminarlo más facilmente. Contestad a las preguntas con la opcion por defecto o con un simple enter, ya que no nos vamos a dedicar a distribuir este paquete si no que es para uso personal.
Listo, checkinstall nos dejara hecho el deb y además ya nos lo habrá instalado.
Ale, ya tenemos el MuSE listo.

Paso 3: Configuración

Hemos de editar el archivo de configuración del icecast para que responda a nuestras necesidades. Esto lo haremos pulsando las teclas alt+F2 y escribiendo :

gksudo gedit /etc/icecast/icecast.conf.dist

O bien desde consola con:

sudo gedit /etc/icecast/icecast.conf.dist

El archivo en sí­ se explica muy bien (aunque en ingles). Pero por si acaso voy a dejar aqui los cambios que le he hecho yo , y que para lo que yo quiero me bastan.
Localizamos:

max_clients 900
max_clients_per_source 900
max_sources 10
max_admins 5
throttle 10.0

Y lo cambiamos por:

max_clients 10
max_clients_per_source 10
max_sources 2
max_admins 1
throttle 10.0

Localizamos:

encoder_password YAtutg4TIWqEA #hackme
admin_password YAtutg4TIWqEA #hackme
oper_password YAtutg4TIWqEA #hackme

Aqui tenemos que hacer algo a parte, abrimos una consola y ejecutamos:

echo password > mypassfile

Donde password es la contraseña que querais tener.
y acto seguido..

makepasswd –crypt –clearfrom=mypassfile

Esto os dará un resultado tal que..

password dn42HBlgeACDU

Bien, pues «password» (o lo que hayais puesto) será vuestra contraseña a usar en MuSE, y lo otro dn42HBlgeACDU que es la misma palabra pero encriptada es lo que tenemos que poner en «encoder_password..» etc..
Quedando así­.

encoder_password dn42HBlgeACDU
admin_password dn42HBlgeACDU
oper_password dn42HBlgeACDU

Ahora localizamos:

hostname 192.168.1.1

port 8000
port 8001

Lo de «192.168.1.1» no tiene porque coincidir..

Y metemos una almohadilla «#» delante de «hostname..» para que icecast acepte peticiones en todas las interfaces de red.

#hostname 192.168.1.1

port 8000
port 8001

Seguimos, localizamos:

alias radiofri http://195.7.65.207:6903

Y lo dejamos así­:

#alias radiofri http://195.7.65.207:6903

Esta opcion la desactivamos porque no estamos haciendo de «repetidor» de nadie, si no que somos nosotros mismos los que emitimos.

Guardamos el archivo como «icecast.conf» (recordad que al abrirlo se llamaba icecast.conf.dist) y cerramos todo lo que tengamos abierto.

4) Puesta en marcha:

Para ponerlo todo en marcha abrimos consola y escribimos:

sudo /etc/init.d/icecast-server start

Eso arrancará el servidor icecast, ahora arrancamos el MuSE que es desde donde le vamos a dar la musica.

muse &

Y cerramos la consola.
En el MuSE pincharemos el boton del enchufe, el primero y rellenaremos con los siguentes datos la parte de abajo:

Servidor: localhost
Puerto: 8000
Punto de montaje: /live
Descripción: lo que querais
Tipo de ingreso: icecast1
Contraseña: laquehayaispuesto cuando hemos hecho el makepasswd (la que se entiende xD)

Pulsais el boton «Conectar» y no estaria mal que guardarais esta configuracion pulsando en «perfil» –>»guardar».
Cerramos esta ventana y volvemos a la principal de MuSE. Veremos que hay una serie de botones que parecen de un reproductor de audio. Justo debajo en el espacio blanco que hay pulsamos boton derecho del raton y veremos que podemos añadir ficheros. Pues ale, a añadir ficheros mp3 como locos, pulsad el play y ya estareis streameando.

Podeis escucharos desde otro ordenador de vuestra red local yendo con el firefox a http://vuestraip:8000/live o en el mismo ordenador http://localhost:8000/live.

Espero que no haya habido ningun problema y la cosa esté funcionando 😉
Espero vuestros comentarios!

Nota: Es posible que tengamos que matar el esd para que todo funcione. Esto se haria desde una consola con «killall esd» y cuando terminemos de trabajar con icecast y MuSE podemos volver a ejecutarlo con «esd &».

17 comentarios en “Streaming de audio con Icecast y Muse

  1. Pedro Rojas

    Gracias por tu respues, yo me referia a ver la cancií²n en el reproductor cliente, porque a mi me aparese el nombre de mi emisora.
    Bueno por otra parte cuando elijo mis canciones me sale un mensaje:
    «retrying to connect to localhost:8000/stream after 600 seconds»
    y despues de ese tiempo empieza a transmitir, a que se debe y como puedo cambiar esto? el servidor que uso es icecast2 en ubuntu dapper 6.06 LTS

    Muchas gracias por todo

  2. Hola Pedro,
    De momento creo que no es factible que salga el titulo de la cancion. Por lo de los 600 segundos imagino que es el tiempo que necesita para hacer el buffering, lo puedes ajustar en el archivo de configuracion del servidor 🙂

    NeiL

  3. Pedro Rojas

    Hola te cuento lo que me paso; hoy por la mañana desinstale gnome para que mi PC no estubiera tan lenta y ya no me sale el mensaje «retrying to connect to localhost:8000/stream after 600 seconds», pero se me cierra el muse como a los 10 min y en la consola me sale: «Fallo de segmentación»; qué sera?
    Gracias por tu ayuda.

  4. Marcos

    hola a todos, me parece muy bueno tu articulo, pero a pesar que he hecho todo al pie y extactamente cuando trato de conectar muse para que transmita por la red dice la coneccion a fallado, esto en la ventana de configuracion de la coneccion, a que se debe esto? agradezco pronta respuesta ya que quiero hacer una radio como unproyecto con unos amigos con contenido 100% sobre linux.
    marcostux@gmail.com

  5. xllxcygnusxllx

    Hey men AYUDA¡¡¡ cuando le doy para compilar osea le doy make… me marca error 1 y error 2… pork? k tengo k hacer o k me falta¡¡¡ ayuda¡¡

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.