| Formulario de acceso |
|---|
| Anuncios |
|---|
|
|
| Montar una emisora de radio con IceCast |
|
|
| miércoles, 18 de octubre de 2006 | ||||
|
Cada vez que abrimos una página web de alguna emisora de radio, tenemos a nuestra disposición algún enlace que nos permite escuchar la emisión en riguroso directo. Habitualmente, dicha emisión contempla la utilización de un plug-in de Windows Media Player en la parte cliente y un servidor de streaming en la parte emisora. Admitir que las extensiones de WMP se han impuesto como estándar no es lo mismo que pagar por el uso de algo que vamos a usar de manera casi privada. Es por esto que en este artículo se propone la implantación de un sistema de radio completo utilizando única y exclusivamente herramientas cuya licencia permite el libre uso del software a utilizar. Escenario Vamos a suponer un escenario de montaje lo más económico posible y para ello listaremos las herramientas mínimas necesarias para arrancar el sistema sin demasiado apuros. Dependiendo de la calidad a la que queramos emitir y del número de oyentes que tendrá nuestra emisión, los requerimientos, principalmente de hardware, tendrán que ir aumentando de forma proporcional. La configuración de software propuesta se ajusta en todo momento a cualquier tipo de requerimiento, ya sea casero o profesional. En principio, nuestra emisión digital hará uso de los siguientes componentes:
Instalación Debido al gran número de distribuciones linux disponibles, vamos a suponer todo el sistema de hardware y la distribución linux con el servidor Apache ya instalados. Nos centraremos por tanto en la instalación del servidor IceCast. En el momento en el cual se escriben estas líneas, la última versión estable del programa IceCast es la 2.3.1 y la gran mayoría de las distribuciones importantes tienen en sus repositorios de software una compilación del programa ya realizada y adaptada a cada uno de estos sistemas. Utilizaremos herramientas del tipo apt-get o yum para descargar e instalar la última versión del software. No obstante y si nuestro sistema no diera la posibilidad de descargar los binarios, siempre podemos obtener la última versión de este servidor desde la página de descargas del programa ( http://www.icecast.org/download.php). La compilación del mismo es tan simple como teclear las líneas siguientes en nuestra consola, una vez descargado el material: [root@annie ~]# tar -xzvf icecast-2.3.1.tar.gz Para una correcta compilación del programa, además de tener instalados los compiladores de turno, tendremos que tener instaladas las librerías de desarrollo XSLT (libxslt-devel). Si no tocamos el archivo Makefile, el programa quedará instalado por defecto bajo la rama de directorios /usr/local/.../icecast. Dicho todo esto, se recomienda que la instalación se haga a través del sistema de paquetería de cada distribución, al ser ésta más rápida y sencilla. Configuración y puesta en marcha del servidor La configuración de IceCast se realiza a través de un fichero en formato xml y la instalación por defecto deja un fichero de ejemplo bajo la rama etc/. En principio, los valores por defecto de dicho fichero se pueden dejar tal cual, a excepción de lo siguiente:
Veamos a continuación un ejemplo de configuración simple inicial del fichero icecast.xml: <icecast> <limits> <clients>100</clients> <sources>2</sources> <threadpool>5</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> <burst-size>65535</burst-size> </limits> <authentication> <source-password>passwd</source-password> <relay-password>passwd</relay-password> <admin-user>radio_master</admin-user> <admin-password>passwd</admin-password> </authentication> <hostname>www.radio_probe.com</hostname> <listen-socket> <port>8000</port> <!-- <bind-address>127.0.0.1</bind-address> --> </listen-socket> <fileserve>1</fileserve> <paths> <basedir>/usr/share/icecast</basedir> <logdir>/var/log/icecast</logdir> <webroot>/usr/share/icecast/web</webroot> <adminroot>/usr/share/icecast/admin</adminroot> <pidfile>/var/run/icecast/icecast.pid</pidfile> <alias source="/" dest="/status.xsl"/> </paths> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <playlistlog>playlist.log</playlistlog> <loglevel>4</loglevel> </logging> <security> <chroot>0</chroot> <changeowner> <user>icecast</user> <group>icecast</group> </changeowner> </security> </icecast>
Una vez introducidos los cambios necesarios en estos parámetros podemos iniciar el servidor IceCast de la siguiente forma: [root@annie ~]# icecast -b -c /etc/icecast.xml En el fichero error.log situado en el directorio especificado en <logdir> tendremos una línea similar a la siguiente: [2006-10-15 00:35:46] INFO main/main Icecast 2.3.1 server started Suponiendo que no tengamos ningún firewall habilitado, en cuyo caso tendríamos que configurarlo para permitir la el flujo de datos hacia el puerto correspondiente (en nuestro caso, el 8000), podríamos conectarnos a la consola de estadísticas escribiendo la dirección http://<hostname>:8000/admin/stats.xml en un navegador. Si todo va bien, aparecerá una pantalla requiriendo la introducción de un usuario y una contraseña. Una vez introducidos los datos de forma correcta, se creará en el navegador una página en XML con el árbol de las estadísticas. Con esto quedará configurado y lanzado el servidor a la espera, claro está, de cargar el cliente que servirá los streams. Empezando a emitir el contenido Una vez arrancado IceCast, necesitamos que algún cliente compatible sirva contenidos para que el servidor lo reparta de forma adecuada. En nuestra instalación vamos a usar el cliente oficial de IceCast, Ices. Para su instalación, seguiremos los mismos pasos que con el servidor y utilizaremos los clientes de descarga habituales de la distribución elegida. Dichos programas se encargarán de la instalación de las librerías necesarias para el correcto funcionamiento del cliente. Si esto no fuera posible, habrá que descargar el programa Ices (http://www.icecast.org/ices.php), la librería LibShout (http://www.icecast.org/download.php) y compilar el programa como ya hicimos anteriormente con IceCast (la instalación queda bajo la misma rama que el servidor, /usr/local/.../ices): [root@annie ~]# # tar -xzvf libshout-2.2.2.tar.gz Esta vez, la instalación por defecto no suele dejar archivo de configuración de ejemplo (a excepción de la instalación de algunas distribuciones como Fedora Core), así que tendremos que crear uno en la ruta etc/ices.xml o etc/ices.conf similar al siguiente (igualaremos a nuestro antojo todo auqello que aparece resaltado en cursiva): <?xml version="1.0" ?> Es importante tener claro el nombre del host hacia el cual se va a empezar a mandar el contenido, utilizando los mismos parámetros que ya pusieramos en el archivo de configuración de IceCast, y la fuente desde la cual se va a capturar ese contenido (sección <input>), que en nuestro caso es una lista de reproducción con todos los archivos en formato Ogg Vorbis a mandar al servidor en su interior, uno por línea. Definidos los datos del fichero de configuración y creada la lista de reproducción, podemos iniciar el cliente de la forma siguiente: [root@annie icecast]# ices /etc/ices.conf & En este preciso instalante podemos hacer una conexión a la página web desde la dirección http://<hostname>:8000/ y debería aparecernos un punto de montaje llamado /playlist.ogg (o lo que sea que hayamos puesto en la sección <mount> del archivo de configuración de Ices). En este preciso instante ya podríamos escuchar el contenido a través de un cliente final como Winamp o VLC Media Player, especificando al abrir el fichero de audio una URL que se compondría de la forma http://<hostname>:8000/playlist.ogg.m3u. Radio en vivo Una vez que hemos logrado reproducir archivos de audio ya grabados, es tiempo de comenzar las pruebas de una emisión en directo. Suponemos que la instalación de la distribución elegida ha configurado de forma correcta la tarjeta de sonido y que tenemos algún tipo de fuente de audio conectada a la entrada de línea o de micrófono de dicha tarjeta, o a ambas de forma simultánea (por ejemplo, un reproductor de CD y un micrófono). Como ayuda adicional, podemos conectar unos cascos a la salida de sonido de nuestra tarjeta que nos ayudará a no confundir las señales de audio que surgen del sistema de audio y las que finalmente se mezclan en el ordenador. Desde el ordenador, usaremos un programa como aumix (o el que corresponda en la distribución elegida) para establecer de forma correcta el balance de sonido, dejando, para empezar, que el volúmen de las entradas (seguramente line-in y mic) quede hacia la mitad de la escala con la intención de no saturarlas. La emisión desde Ices la haremos mediante la configuración de un nuevo módulo. Ices nos proporciona dos módulos compatibles con nuestro sistema de sonio: oss, compatible con Open Sound y ALSA y alsa, compatible de forma nativa con ALSA. Como no sabemos qué sistema es el instalado en cada caso, nos decantaremos por el módulo oss, aunque ALSA soporta mucho mejor la tarjeta de sonido, así que si estamos seguros de tener el sistema ALSA en nuestra distribución, elegiremos el módulo alsa. Para configurar oss, añadiremos lo siguiente al archivo ices.conf (o ices.xml), dentro de la sección <input>: <module>oss</module> El parámetro metadatafilename se iguala a un nombre de fichero que contiene la descripción del contenido. Por ejemplo, podríamos tener un fichero que sería leído por Ices de la forma siguiente: artist=María del Monte Si queremos configurar el módulo alsa, insertaremos las líneas siguientes bajo la sección <input>: <module>alsa</module> Una vez configurado el módulo en cuestión, tendremos que retocar algo la sección <encode>. La verdad es que la configuración ideal de esta sección sólo se obtiene haciendo pruebas, ya que existen miles de combinaciones de hardware y software y todas ellas influyen en el resultado. Por ejemplo, si estamos emitiendo música desde un reproductor de CD, puede parecer obvio que la codificación se haga a 44100 Khz. y a dos canales (estéreo). Sin embargo, gracias al ancho de banda, todo aquel que posea un módem o una conexión de baja velocidad se quedará sin poder oir nuestro programa de radio, así que podemos optar por codificar el audio a 22050 Khz. y a dos canales, que suele dar buen resultado cuando el sonido sale a través de unos altavoces de sobremesa. Si lo que hacemos es emitir un programa sin música y con mucha conversación, es muy posible que la audición se haga casi perfecta a 11127 Khz. y un canal. Hecho todo esto, también nos queda valorar nuestro propio ancho de banda y nuestros recursos, aunque es probable que este aspecto lo queramos controlar mediante el parámetro <clients> del fichero de configuración de IceCast. Con estas configuraciones ya terminadas, podemos reiniciar el servidor IceCast y el cliente Ices (asegurándonos de tener la fuente de audio ya iniciada y probada) y comenzar a emitir. El canal, si no hemos tocado nada, será accesible igual que si estuvieramos lanzando una lista de reproducción, pues de cara al cliente final y al propio servidor de IceCast, nuestros cambios de fuente de contenidos no interesan demasiado. Consideraciones finales El primer punto a tener en cuenta en nuestro servidor de contenidos es que el codificador Ices sólo admite, en la versión presentada en este artículo, listas de reproducción de archivos en formato Ogg Vorbis. Esto es debido a las posibles limitaciones legales que puede imponer el formato mp3 (formato bajo patente). Como medida adicional, podemos usar una versión antigua de Ices, la 0.3, que se puede descargar de la página web de IceCast y permite la reproducción de ficheros con formato mp3. Dicha versión tiene que compilarse junto al codificador LAME, que se puede encontrar en la misma página de descarga, preparado para su compilación junto a Ices. Dicho lo cual, el autor de este artículo recomienda la emisión de contenidos musicales en formato Ogg Vorbis, aunque ello suponga la recompresión de ficheros ya codificados, y, a ser posible, con las características especificadas en el archivo de configuración de Ices en cuanto a bitrate, canales, etc., para evitar así la pérdida de tiempo y de memoria que supondría una recompresión. La segunda consideración a tener en cuenta es la presentación del contenido. Actualmente, montar una página web de contenidos bajo un servidor IceCast, puede tener el inconveniente de la incompatibilidad con el sistema de refrencia que ha sido impuesto por Microsoft y adoptado por casi la totalidad de empresas que cuelgan una radio comercial en Internet: Windows Media Player. El desarrollo de librerías OCX y todo tipo de herramientas que permiten la inserción de este sistema en una página web de una forma relativamente sencilla, sumado a la inclusión, casi a la fuerza, del reproductor de Windows Media en cualquier sistema con Windows, hacen que la filosofía de reproducción del contenido bajo otro servidor que no sea el mencionado cambie de tal manera la forma de proceder del cliente, que opte por no ejecutar la aplicación necesaria para tal fin. Y eso cuando dispone de un reproductor adecuado para tal fin, que si no es este el caso, la complejidad de instalar un reproductor como Winamp o VLC Media Player para muchos usuarios puede acabar de un plumazo con nuestras espectativas de visitas. Así, es indispensable que las instrucciones para la correcta reproducción de nuestros contenidos queden bien claras, tanto si se requiere tener instalado software adicional como si no. Como medida adicional, siempre podemos insertar en nuestras páginas algún applet en Java desarrollado nosotros mismos o por terceros que haga innecesaria la descarga de programas externos (siempre quedará la descarga de la estación Java, pero es imposible reducir más la complejidad) y que reproduzca la emisión sin tener que tocar absoltamente nada. Recursos
Sólo los usuarios registrados pueden escribir comentarios. Powered by AkoComment 2.0! |
||||
| Siguiente > |
|---|







