Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

Pasar radio por Internet a MP3

Última Actualización: 18 de abril de 2006 - Martes

Muchas emisoras de radio emiten también a través de Internet, lo que posibilita seguir su programación aunque no se esté en su area de cobertura o, como es mi caso, poder escuchar programas en diferido y saltarnos la publicidad.

A continuación muestro una pequeña receta para recibir una emisión en directo a través de Internet, y almacenarla en disco duro en fragmentos MP3 de cinco minutos de duración. Para utilizar esta receta hay que tener un sistema UNIX o similar, conectado a Internet, y con los programas "mplayer", "lame" y "mp3splt" instalados.

El primer paso es crear un archivo FIFO para poder conectar la salida del "mplayer" al resto de componentes de la receta. Basta con hacer esto una sola vez, porque el fichero FIFO permanece en el disco duro hasta que lo borremos. El comando a utilizar es:

$ mkfifo z123

En mi caso el fichero FIFO se llama "z123". Por supuesto tú puedes darle el nombre que quieras. Se necesita un fichero FIFO porque "mplayer" no tiene la capacidad de enviar su salida a la salida estándar (stdout). Eso debería considerarse un bug del programa.

El siguiente paso es recibir el "streaming" de audio desde Internet. Por ejemplo, para recibir la emisora "Intereconomía" (muy interesante, pero con una enorme cantidad de publicidad) simplemente hacemos, en una ventana "screen" por ejemplo, lo siguiente:

$ mplayer -ao pcm:file=z123 mms://stream2.terra.es/wm2live3

El comando anterior lanza el "mplayer", y se conecta al "streaming" de la emisora. Asimismo, la salida de audio la envía al fichero FIFO que creamos antes. El "mplayer" conectará a la emisora, llenará sus búferes y empezará a enviar la salida, en formato PCM (osea, directamente las muestras digitales, sin codificación alguna), a través del FIFO.

Pero como no hay nadie leyendo del FIFO, el "mplayer" se quedará esperando a que alguien lea...

Y eso lo hacemos con los siguientes comandos, que lanzamos en OTRA sesión "screen", por ejemplo:

$ lame -V 9 -q 0 --resample 11.025 -m s -a z123 - | mp3splt -t 5.0 -f -

Esta secuencia de comandos hace lo siguiente:

"lame" empieza a leer del FIFO (si no hay nadie alimentándolo, esperará a que lo haya), remuestrea la señal a 11.025 Khz (perfectamente válido para la calidad que proporciona la señal emitida por Internet), la pasa a mono, y genera un "streaming" MP3 VBR a la máxima compresión pero también con la máxima calidad. Los datos MP3 son enviados a la salida estándar (stdout). Esos datos, que forman un "streaming" MP3 continuo, son "troceados" utilizando la utilidad "mp3splt", indicando un troceado de 5 minutos. Es necesario utilizar el parámetro "-f" porque sino el troceado lo hará a "ojo", y como la fuente es MP3 VBR muy agresivo, no afinará los puntos de corte con demasiada precisión. Si empleásemos CBR o ABR, no habría este problema.

Es de destacar que algunos reproductores MP3 podrían no soportar MP3 VBR tan agresivos. Si es así, podemos variar los parámetros de compresión, a costa de perder calidad o de incrementar el tamaño de los ficheros finales.

Con los comandos anteriores, un fichero de 5 minutos nos ocupa unos 800 Kbytes, con una tasa binaria media de 22-26kbps. La calidad del audio es perfecta, incluso con voces femeninas o música. Con esa tasa de compresión, podemos almacenar 19 días enteros de emisiones, 24 horas, en un DVD.

¿Por qué trocear en trozos de 5 minutos?. Eso queda al gusto y necesidades de cada cual. Por supuesto, eso es ajustable. En mi caso, por ejemplo:

  • Mi reproductor MP3 no almacena donde va cuando lo apagas. Es decir, si estás oyendo un MP3 que dura media hora y lo cortas a los 27 minutos, tendrás que volver a empezar.

  • En mi reproductor MP3, la transición entre temas MP3 es muy rápida y fluida, por lo que la discontinuidad cada cinco minutos no molesta.

  • La emisora "Intereconomía" tiene un montón de publicidad. Los fragmentos de cinco minutos te permiten saltarte la publicidad rápidamente.

  • Si hay algún programa, entrevista, etc que te interesa, guardar trozos de cinco minutos es cómodo y ocupa poco. No hay necesidad de "retocear" los MP3 de nuevo, seleccionando las porciones que nos interesan exactamente.

De ahí lo de los cinco minutos...


Historia

  • 18/abr/06: Primera versión de este documento.



Python Zope ©2006 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS