Transmitir radio en vivo con Icecast2 desde Linux Ubuntu

En el artículo  Instalar icecast2, servidor de radio en Ubuntu 11.10  se detalla como instalar IceCast2 (servidor media streaming para internet) así como Ices2 (su cliente streaming oficial). Decíamos que IceCast2 no trae archivos de configuración pero nos suministra unos archivos de ejemplo de configuraciones ubicados en la carpeta  /usr/share/doc/ices2/examples. En base a esto configuramos el archivo (ices-playlist.xml) necesario para emitir desde una lista de reproducción (playlist).

Para transmitir en vivo (en directo, live) podemos utilizar el mismo cliente Ices2 o bien utilizar otro cliente streaming. Ices2 no dispone de entorno gráfico y el trabajo resulta tedioso, no obstante veremos como se utilizaría. Instalaremos y configuraremos IDJC (Internet DJ Console) cliente de streaming que dispone de entorno gráfico intuitivo y fácil de configurar.

 

 

♦ OPCIÓN (A): Transmitir audio en directo con IceCast2 utilizando como cliente streaming ICES2

Toda la información necesaria para instalar IceCast2 e Ices2 está contemplada en el artículo Instalar icecast2, servidor de radio en Ubuntu 11.10. Partiendo de esto vamos a configurar el archivo  ices-alsa.xlm  que es lo único nuevo y que necesitamos para emitir en vivo.

Copiamos el archivo de ejemplo ices-alsa.xml en la carpeta /etc/ices2

sudo cp /usr/share/doc/ices2/examples/ices-alsa.xml /etc/ices2/

A continuación editamos el archivo y lo configuramos

sudo gedit /etc/ices2/ices-alsa.xml

 

Vamos a ir viéndolo por secciones:

Muchos de los parámetros que trae el archivo ya nos sirven tal como vienen por defecto, así que pondré únicamente los que voy a  cambiar:

♦ En la sección <background> cambiamos el 0 por 1, de esta forma evitaremos que se mantenga la terminal abierta hasta que la cerremos.

<background>1</background>

 

♦ En la sección <metadata> configuramos:

<metadata>
<name>NOMBRE ESTACIÓN</name>>
<genre>GENERO ESTACIÓN</genre>
<description>DESCRIPCIÓN ESTACIÓN</description>
<url>http://DIRECCION_URL_DE_EMISION</url>
</metadata>

 

♦ En la sección  <server details>  configuramos:

<hostname>localhost</hostname>
<port>8000</port>
<password>PASSWORD_FUENTES</password>
<mount>/PUNTO_DE_MONTAJE</mount>

La dirección del servidor: localhost  (porque lo tengo en local, si lo instalásemos en un hosting pondríamos la URL correspondiente)
El puerto: por defecto trae 8000 (podemos dejarlo tal cual)
El password de las fuentes: PASSWORD_FUENTES (es el mismo password que hemos puesto para las fuentes en /etc/icecast2/icecast.xml)

En /PUNTO_DE_MONTAJE debemos escoger el ‘mount point’ que queramos para emitir. Podemos poner algo descriptivo (sin espacios y acabado en .ogg), por ejemplo /radionline.ogg

 

Finalmente arrancamos el cliente Ices2 pasándole el archivo ices-alsa.xml, tecleando en consola

sudo ices2 /etc/ices2/ices-alsa.xml &

Si ahora abrimos el navegador web e introducimos la URL (en este caso http://localhost:8000) veremos que aparece el enlace http://localhost:8000/radioonline.ogg , con el que podemos conectarnos a la radio.

Haciendo clic sobre el enlace  Stream URL: http://localhost:8000/radioonline.ogg  se nos abre una nueva pestaña con un reproductor.

Si conectamos un micrófono a la entrada de la tarjeta de sonido y hacemos clic en “play” podremos oir lo que digamos. Una tarjeta de sonido con una entrada auxiliar permitiría conectarlo por ejemplo a una mesa de mezclas.

 

♦ OPCIÓN (B): Transmitir audio en directo con IceCast2 utilizando como cliente streaming IDJC

« La información recogida en este apartado parte de la base de que ya tenemos instalado y configurado IceCast2. Si no fuese éste el caso lo instalaríamos siguiendo los pasos indicados en el artículo  Instalar icecast2, servidor de radio en Ubuntu 11.10 »

“Internet DJ Console (IDJC) es un programa de streaming de audio de código abierto que funciona con las plataformas Shoutcast, icecast, e icecast2, con soporte para transmisión en formato OGG Vorbis y también mp3. Tiene una interfaz gráfica que lo hace simple de usar. Permite mezclar dos listas de reproducción, señal de micrófono, entradas JACK y llamadas Skype. Además se puede grabar la transmisión. Necesita el servidor de sonido JACK para funcionar.

 

PROCEDIMIENTO A SEGUIR

1. INSTALAMOS Y CONFIGURAMOS JACK

2. INSTALAMOS Y CONFIGURAMOS QJACK (opcional)

3. INSTALAMOS INTERNET DJ CONSOLE (IDJC)

4. CONFIGURAMOS IDJC

5. LO PROBAMOS

6. OTROS PARÁMETROS DE CONFIGURACIÓN

_____________________________________________________________

1. INSTALAMOS JACK

Ubuntu tiene en sus repositorios una versión del servidor de sonido JACK (Jack Audio Conection Kit), el cual es necesario para hacer funcionar IDJC.

1.1 – Instalamos JACK

sudo apt-get install jack

1.2 – Si lo arrancamos ahora (lo que haríamos tecleando en una terminal  jackd -d alsa ) nos lanzará varios errores/avisos de configuración y seguridad. Así que vamos a configurar unos cuantos parámetros:

– Editamos el archivo /etc/security/limits.conf

sudo gedit /etc/security/limits.conf

   Nos vamos al final del archivo e incluimos las siguientes líneas.

@audio – rtprio 99
@audio – memlock unlimited
@audio – nice -19

   Guardamos y cerramos el archivo

1.3 – Hacemos que nuestro usuario forme parte del grupo audio

sudo usermod -a -G audio $(whoami)

   Cerramos sesión para que los cambios surtan efecto

1.4 – Creamos un archivo de configuración básico

 echo “/usr/bin/jackd -d alsa -r 44100 -p 256” > ~/.jackdrc

De esta forma el servidor de sonido JACK estará siempre disponible para cualquier aplicación que lo solicite.

 

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

2. INSTALAMOS Y CONFIGURAMOS QJACK (este punto es opcional)

Existe una aplicación qjackctl que suministra una pequeña interface gráfica que puede utilizarse para arrancar JACK y generar el archivo de configuración .jackdrc

Si finalmente optamos por instalarlo, se nos instalará a la vez el servidor JACK (aunque deberemos configurar igualmente los parámetros de éste tal como se indica en los puntos 1.2, 1.3 y 1.4 anteriores)

«A continuación expongo los parámetros mínimos que deberemos configurar; los valores de los mismos dependerán del sistema que utilice cada usuario, de sus exigencias y posibilidades»

 

2.1 Instalamos QJACK. Nos vamos a una terminal y tecleamos

sudo apt-get install qjackctl

Una vez instalado lo encontraremos en Aplicaciones -> QjackCtl

2.1 Lo configuramos. Haciendo clic en el botón 

 

Pestaña Configuración

Interfaz: hw:0,0

Driver: alsa

Audio: Duplex

Tiempo Real

Monitorear

Los valores de  Cuadros / Período , Frecuencia de muestreo Períodos / Buffer  influyen directamente en la Latencia del sistema (el valor se muestra en el extremo inferior izquierdo). Estos valores los configuraremos de acuerdo a nuestras exigencias y posibilidades de emisión.

Pestaña Opciones

Pestaña Display

Habilitar alias para nombres de puertos / clientes

Habilitar la edición de alias para puertos / clientes (renombrarlos)

Pestaña Otras

Iniciar el servidor JACK al cargar qjackctl

Salvar la configuración del servidor JACK en: .jackdrc  (este es el archivo de configuración del servidor de sonido JACK que inicializamos anteriormente de forma manual)

Habilitar icono en la bandeja del sistema

Habilitar Secuenciador ALSA

Los botones Iniciar y Detener nos permiten arrancar y parar el servidor JACK.

El botón  permite iniciar/detener el transporte.

Situando el ratón sobre las diferentes partes del display nos indica mediante “tool tips” el significado de cada parámetro

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

 

3. INSTALAMOS INTERNET DJ CONSOLE (IDJC)

Podemos utilizar la versión disponible en los repositorios, instalándola bien desde el  Centro de Software de Ubuntu  bien desde la terminal  sudo aptitude install idjc

En este caso vamos a ver como descargar el paquete desde la web del proyecto, compilarlo e instalarlo. De este modo tendremos la última versión disponible.

2.1 – Siguiendo los pasos que nos indican en la web de la aplicación, en primer lugar nos aseguramos de tener instaladas las dependencias de la aplicación

sudo apt-get install build-essential libc6-dev libglib2.0-dev libjack-dev jackd libvorbis-dev libsamplerate0-dev python-gtk2-dev libmad0-dev libavcodec-dev libavformat-dev libmp3lame-dev libflac-dev python-mutagen python-eyed3 libspeex-dev libsndfile1-dev

 

Si durante la instalación de dependencias se nos pregunta si deseamos configurar el sistema para JACK, contestaremos afirmativamente.

2.2 – Descargamos el paquete Internet DJ Console desde http://sourceforge.net/projects/idjc/

(en estos momentos la versión es la idjc-0.8.7.tar.gz)

 

2.3 – Desde una terminal entramos en la carpeta donde lo hemos descargado, lo descomprimimos y compilamos

tar xzvf idjc-0.8.7.tar.gz

cd idjc-0.8.7

sudo ./configure

sudo make

sudo make install

Una vez instalado lo encontraremos en  Aplicaciones -> Internet DJ Console

 

4. CONFIGURAMOS IDJC

El programa dispone de una interfaz gráfica muy intuitiva por lo que únicamente voy a exponer como configurarlo para que suministre salida de audio al servidor de streaming IceCast2, lo demás (incluir canciones, conectar micrófono, entrada de teléfono, etc…) es cuestión de ir probando, como digo es muy sencillo e intuitivo. Toda la información sobre el programa se encuentra perfectamente explicada en  http://idjc.sourceforge.net/tour.html

*** hacer click sobre las imágenes para verlas a tamaño real ***

Iniciada la aplicación se nos muestra la ventana siguiente

Desde el botón que se indica en la imagen (Open various application windows) tenemos acceso a las ventanas de configuración de parámetros (Preferences, Output, Jingles, Profiles). Seleccionamos Output (salida), y se nos muestra la ventana siguiente. Como se ve podemos configurar hasta 6 servidores stream. Vamos a configurar el primero de ellos.

Desplegamos  › Configuration  si no lo está ya y nos iremos desplazando por las diferentes pestañas; dejaremos configurada la salida de audio hacia el servidor Icecast2.

Pestaña Connection

Hacemos clic en Nuevo e introducimos los parámetros que se indican en la imagen.

Server type: Icecast2 Master

Hostname: ponemos la URL desde donde se realiza la emisión (en este caso localhost)

Port number: el puerto (en este caso 8000)

Mount Point: /listen  (ponemos el punto de montaje en este caso /listen)

Loging name: source (lo dejamos)

Password: (ponemos el mismo pasword que introdujimos en el archivo /etc/icecast2/icecast.xml para las fuentes –sources-)

Hacemos clic en Aceptar. Ahora en la pestaña “connection” vemos que ya disponemos de un servidor de streaming.

 

Pestaña Format

Sample rate: se nos mostrarán varios disponibles, incluso dejar que sea JACK quién lo defina.

Mp3/ogg: indicamos la familia de formatos de salida (yo he eligido el formato libre ogg).

Ogg/vorbis , OggFLAC , Speex Speech: son formatos streaming de emisión y grabación.

Bitrate: indicamos el bitrate de salida.

Pestaña Stream Info

En esta pestaña indicamos los datos que proporcionaremos a los clientes durante la emisión.

Listen URL : /listen (debemos poner el punto de montaje “Mount Point” que hemos introducido en la ventana de configuración Pestaña Connection)

Desplegamos  Individual Controls

Metadata (Format string): %S  (de esta forma se transmitirá información sobre la canción que se está reproduciendo)

Con esto hemos configurado los parámetros esenciales para comenzar a emitir.

Ahora procedemos a activar/detener la salida hacia el servidor IceCast2.  Podemos activarla desde el botón alargado que como vemos nos muestra la URL y punto de montaje -> (       localhost:80000/listen        ); y también desde el botón connect.

Si hemos configurado correctamente los parámetros anteriores, en cuanto lo activemos veremos que el círculo de la pestaña que identifica al servidor cambia de gris -> verde. Esto significa que se ha iniciado.

Cerramos la ventana de configuración y nos vamos a la ventana principal de IDJC.

Dispone de dos listas de reproducción, entrada de micrófono (DJ), entrada auxiliar (Aux), teléfono. Como se aprecia es muy intuitiva.

5. LO PROBAMOS

Comprobamos la salida hacia el servidor Icecast2 yéndonos a una ventana del navegador  http://localhost:8000

Hacemos clic en  /listen  y se nos abre una nueva ventana con el reproductor.

En este caso para comprobar que se oye no podemos hacerlo desde el mismo equipo, tendremos que conectarnos como oyentes desde otro PC.; pero antes deberemos cambiar los archivos de configuración sustituyendo localhost por la dirección IP de nuestro PC.

 

 

6. OTROS PARÁMETROS DE CONFIGURACIÓN

Tal y como se indica en el punto ( 4.) , desde el mismo botón que nos permite acceder a la ventana de configuración Output , tenemos acceso a la ventana Preferences. Desde ella, a través de varias pestañas, podemos actuar sobre los parámetros que influyen en los rangos de actuación de las entradas DJ, AUX, canales de audio, salidas, etc…. Lo dicho es muy intuitivo, deberemos ir probando e ir viendo la configuración que más se ajuste a nuestras necesidades y exigencias. Más información en  http://idjc.sourceforge.net/tour_preferences.html

Fuentes:  idjc , qjackctl

 

Publicado el 13 febrero, 2012 en Linux, Ubuntu, Web y redes y etiquetado en , , , , , , , , , , . Guarda el enlace permanente. 8 comentarios.

  1. no me deja iniciar el idjc despues de instalar y configurar el jack y qjack

    • Hola steel, cual es exactamente el error que de da?
      Antes de nada abre una consola, actualiza los repositorios
      sudo apt-get update
      (es posible que te diga que necesita actualizar paquetes) y reinicia el sistema
      Vuelve a iniciar IDJC. Si sigue sin arrancar…¿qué error te da?

      • nose si sea por que estoy usando ubuntu 11.10 pero cuando pongo sudo apt-get update no hace nada

        • Esta instrucción comprueba si existen actualizaciones, en cuyo caso procede a descargar y a actualizar los paquetes necesarios, no depende de la versión de ubuntu. Supongo que la has tecleado en una terminal. ¿Qué quieres decir con que no hace nada?.

  2. Abigail Mora

    Primeramente dejame felicitarte por que has escrito un articulo muy completo para poder realizar streaming en vivo, en este momento tengo un proyecto de realizar streaming de audio y el articulo me parece que va a cubrir correctamente con mis necesidades, sin embargo lo que se me esta requiriendo inicialmente no es estar transmitiendo audio, es decir musica, lo que se requiere realizar es una estacion de radio, es decir que el locutor este hablando y lo esten escuchando desde Internet, bajo este contexto con el articulo que esta escrito ¿se puede?, veo muchas opciones para instalar pero ¿cuales son las que tengo que usar?, adicionalemente entiendo perfectamente que hay que abrir el puerto para realizar la transmision via web pero a mi me gustaria que cuando tenga que presentarlo no tenga el problema de la IP publica, (ya que tengo una IP dinamica), lo mas seguro es que me puedes decir, usa DNS dinamicos como no-ip o dyndns (aunque este segundo si se que es de pago, el primero no lo se), ¿tienes por favor algun articulo de referencia o has escrito algun articulo que muestre lo que se tiene que hacer para que trabajen ambas aplicaciones?, se que lo mas importante es montar el servidor y que funcione de manera local pero antes de ir hacia ese paso queda pendiente la pregunta ¿se puede transmitir las voces de los locutores?, a nivel hardware o equipo de audio ¿que se requerira?, gracias por tu atencion y esperando tu respuesta se despide.

    Abigail Mora.

    • Hola Abigail. Gracias por tus palabras.
      La respuesta a tu pregunta es sí. Se puede trasmitir música desde un archivo, directamente desde un equipo conectado al PC y también la voz de un locutor, de hecho se puede hacer ambas cosas a la vez (musica y voz). Si te vas al punto (3.) del artículo puedes ver que la instalación de IDJC te ofrece todas estas opciones.

      Me gusta probar todo lo que gira entorno a GNU/Linux y en particular Ubuntu, en este punto en concreto sólo soy un aficionado, lo he probado y funciona, y así lo he plasmado en el artículo, pero no tengo una radio transmitiendo, ni siquiera tengo un buen equipo. Te digo esto porque seguro que para tu proyecto vas a disponer de un hardware mucho mejor que el mío. Puedo decirte que yo lo he probado en un Pentiun 4 a 3 Ghz, 1 GB de RAM, con una tarjeta de sonido integrada, unos cascos con microfono y una tarjeta wifi con un ancho de banda muy pobre…. imagínate lo que se podría conseguir con un buen equipo, pero sobre todo, lo más importante es el ancho de banda. Para tu proyecto lo ideal sería conexión a internet por cable. Una cosa más, si profundizas un poco en la configuración de los archivos que indico en los artículos del blog verás que puedes actuar sobre otros parámetros, como son el número de oyentes simultáneos permitidos, la frecuencia de emisión, etc.

      Con respecto a la salida a internet, la practica totalidad de los usuarios tenemos IP dinámica. Yo he probado, con éxito, no-ip en otro artículo Owncloud – Montar nuestro propio servidor en la nube y sí tiene una versión gratuita.

      Un saludo.

  3. Hola, tengo un fallo al instalar idjc en debian, tras descomprimir y hacer el ./configure, pongo sudo make y me sale el siguiente error: [ make: *** No se especificó ningún objetivo y no se encontró ningún makefile. Alto.]
    La orden la ejecuto desde /home/debian/Descargas/idjc-0.8.15#

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s