Resumen:
El presente trabajo pretende responder a la necesidad de ofrecer el servicio de radio difusión a través de el medio de comunicación, tal como el título del presente escrito lo indica, conocido como Internet, de forma tal que cualquier usuario del planeta conectado a éste, pueda acceder libremente. Para esto se plantea un escenario definido en que un usuario con una conexión de banda ancha pueda prestar este servicio si en algún minuto lo requiere.
Para responder eficientemente ante esta propuesta, se verán los distintos requerimientos, tales como la cantidad de usuarios simultáneos que disfrutarán de este servicio, que hardware se deberá adquirir, para finalmente decidirse por una de las opciones e implementarla con una demostración practica.
Introducción:
Entre los reproductores más populares usados actualmente se encuentran RealPlayer, Windows Media Player y QuickTime. Con los dos primeros se tiene acceso a la mayoría de las "net radio", aunque existen muchas emisoras que utilizan otro tipo de reproductores, bien por utilizar otros formatos de audio como el MP3, o bien por que algunas emisoras de Internet han creado su propio reproductor, y lo han establecido como requisito para escuchar su programación.
El objetivo principal es el de poder transmitir la señal de audio hacia Internet utilizando alguno de los formatos mas difundidos y con bajo costo de acuerdo a los requerimientos de hardware y software.
Definitivamente, después de analizar opciones para implementar el servicio, se decidió por la plataforma HELIX de RealNetworks debido a las características que provee el servidor de medios, el encoder y el reproductor se encuentran disponibles no solo para Windows sino que también para Linux.
Figura1. Esquema general de funcionamiento.
Opciones deseables de implementar
• Capacidad de transmitir en distintos formatos de streaming: mp3, windows media audio, realaudio con la finalidad de llegar hasta distintos sistemas operativos, y posibilidad de que el contenido sea compatible con distintos reproductores multimedia.
• Capacidad de transmitir audio bajo demanda o en vivo.
• Capturar audio directamente desde la tarjeta de sonido o reproducirlo en el mismo computador.
• Tener estadísticas en tiempo real, como la cantidad de usuarios que se han conectado con el servidor, cuantos simultáneos, y que calidad de conexión están escuchando, etc.
• Adaptabilidad al ancho de banda del cliente, ajustando automáticamente la tasa de transmisión si es que existe congestión de la red, para no entorpecer la continuidad del contenido.
• Vinculable desde página Web. La idea es que a través de un sito Web, exista la posibilidad de crear un vínculo que permita al cliente ejecutar su reproductor multimedia y descargar el contenido de forma automática.
• Capacidad de auto arranque. Si pensamos que el ordenador puede reiniciarse debido a un corte de luz o algún problema imprevisto, y además queremos que lo haga de forma automática, se debe ver la posibilidad de que arranque de la forma señalada el programa y lo ponga en marcha sin la necesidad de que exista un usuario de por medio.
• Bajo costo. Lo ideal es que la adquisición del software sea gratis o versiones “free” con menos características para implementar.
• Implementable por lo menos en mas de un sistema operativo, los más utilizados como son Windows y Linux.
Esquema General del
Funcionamiento Técnico
Los pasos tomados generalmente siguen la siguiente secuencia:
1. Fuente
auditiva (Micrófono,
Line In, CD,
WAV, MP3) (LINE IN)
2. Procesamiento de la fuente auditiva (encoder), generando el audio para enviar al servidor de medios. (WINDOWS)
3. Servidor de medios (server), entrega el contenido atendiendo a las peticiones recibidas. (LINUX)
4.
Reproductor de auditivo (player), reproduce
el audio
solicitado por el cliente. (LINUX/WINDOWS)
Figura 2. Esquema de implementado.
Los requisitos de hardware para Realproducer (encoder) son:
REQUERIMIENTOS WINDOWS |
||
|
Mínimo |
Recomendado |
Sistema Operativo |
Windows 2000 |
Ultima version de Service Pack |
Procesador |
500 MHz clase-Pentium |
Procesador
Pentium 4, 2.4 GHz o superior |
Memory |
128 MB RAM |
512 MB RAM o mas |
Tarjeta Video |
Tarjetas compatibles con Windows |
Osprey 230, Osprey 500 family |
Tarjeta de Sonido |
Compatibles Con Windows |
Osprey 230,
SoundBlaster Live o AWE 64 |
|
Minimum |
Recommended |
Sistema Operativo |
Linux 2.4 con Glibc 2.1 o superior, Linux 2.6 |
Con soporte y testeado en Redhat 9.0 y Suse 9 |
Procesador |
500 MHz clase-Pentium |
Procesador
Pentium 4, 2.4 GHz o superior |
Memory |
128 MB RAM |
512 MB RAM o mas |
Tarjeta Video |
Tarjetas compatibles con Video for Linux 1 |
|
Tarjeta de Sonido |
Tarjetas
compatibles con Open Sound System |
Los requisitos de hardware para Helix Server son:
LINUX — (KERNEL 2.6) |
||
Procesador |
Memoria |
Disco Duro |
Intel P4 2.4 GHz |
512
MB por
procesador (Min) |
100 MB (instalación) + Log |
WINDOWS 2003 |
||
Procesador |
Memoria |
Disco Duro |
Intel P4 2.4 GHz |
512 MB per processor (Min) |
100 MB (instalación) + Log |
SOLARIS 8 (NATIVE) & SOLARIS 9 |
||
Procesador |
Memoria |
Disco Duro |
Ultra Sparc III 1.5 GHz |
512
MB por procesador (Min) |
100 MB (install) + Log |
Implementación
Configuración de Real Producer
Lo primero que se debe hacer es configurar la fuente que va a codificar. En Input file se elige algún archivo de audio existente como un MP3, si es que no se desea captura audio de la tarjeta de sonido.
De lo contrario se selecciona la casilla Devices seleccionando en la opción Audio el dispositivo de audio, y dejando sin modificación la casilla Video en nuestro caso.
Una vez elegido la tarjeta de sonido, procedemos a configurar los distintos tipos de tasas de transmisión que el servidor puede entregar dependiendo de la conexión.
En nuestro caso hay 5 posibles tasas de transmisión. Las que el servidor se encarga de entregar según la conexión individual de cada oyente.
Luego procedemos a configurar el servidor de destino presionado el botón
(Add Server Destination). Con lo que se requiere configurar los siguientes parámetros:
Destination Name: Nombre con que designamos al servidor.
Stream Name: Nombre con que designamos al Stream (este dato es muy importante, ya este es el nombre que se coloca al final del vinculo para poder reproducir el stream).
Broadcast Method: Este campo lo dejamos con el valor que trae por defecto.
Server Address: Aquí colocamos la dirección IP del servidor.
Path: Este campo es opcional por lo que lo dejamos en blanco.
Port: Por defecto el 80, pero hay que verificar que el servidor este atendiendo por este puerto.
Transport: Marcamos UDP, ya que como se explicó anteriormente en este documento este protocolo favorece la transmisión en vivo.
Username and Password: Colocamos aquí el nombre y password de la cuenta de administrador del Helix Universal Server.
Finalmente podemos entregar información de nuestra transmisión, oprimiendo el botón , y configurando lo s parámetros mostrados (Title, Author,Copyright)
Que para nuestro caso
Title: Radiodifusión sobre Internet.
Autor: Seminario de Computadores II.
Keywords: Campo en blanco.
Description: Campo en blanco.
Rating: Calificación del contenido transmitido,
en nuestro caso All Ages.
Con todo esto estamos listos para codificar la información y enviársela al servidor. Para lo cual presionamos el botón:
Con lo que se vería el nombre que le dimos a los parámetros de conexión del Servidor y el estado en que se encuentra el servidor, en este caso Broadcasting.
Lo que se vería de la siguiente forma:
Todas las configuraciones realizadas se pueden guardar en un archivo extensión rpjf, para así no tener que configurar cada vez los parámetros.
También Helix Producer puede crear archivos en formato rm y dejarlos almacenados, siendo transmitidos solo cuando alguien haga una petición, lo que se denomina difusión Bajo Demanda.
Configuración de Helix
Universal Server
Lo primero durante la instalación es poseer el archivo de licencia, que provee RealNetworks (free o pagada), que le dice al servidor con que características arrancará.
Después la instalación pregunta por los puertos en los que atenderá las peticiones para distintos protocolos, entregando un valor por defecto, los que son:
Ø RTSP Port 554
Ø HTTP Port 80
Ø MMS Port 1755
Ø Monitor Port 9090
Ø Admin Port Aleatorio (24831)
Se aprecia claramente que Helix Universal Server recibe peticiones HTTP por el puerto 80, por lo que no se puede tener un servidor Web en la misma máquina atendiendo por el puerto estándar, por lo que es necesario cambiar el puerto del servidor Web o el puerto en que atiende Helix Universal Server las peticiones del protocolo HTTP.
La instalación pide un nombre de usuario y un password, para administrar el servidor, lo que se hace vía página web. También da la opción de instalar el servidor como un servicio de la máquina (que es lo que nosotros usamos), o ejecutarlo en forma manual.
Todos los parámetros configurados en la instalación pueden ser cambiados en la página de administración del servidor. Si es cambiado uno de los parámetros es necesario reiniciar el servidor lo que se puede hacer de la misma página web tomando algunos segundos.
Para entregar archivos bajo demanda, los archivos deben ser creados por Helix Producer, por ejemplo radio.rm, siendo almacenados en un directorio llamadoContent ubicado dentro del directorio de instalación de Helix Universal Server. Que en nuestro caso es:
/usr/local/RealServer/Content
Luego para acceder al archivo se puede mediante un link en una página web o en forma directa introduciendo la dirección en el reproductor.
<a href=”http://dirección:PuertoHTTP/ramgen/radio.rm”>
Play </a>
Si el Servidor atiende las peticiones en el puerto 80, no es necesario colocarle el puerto al vínculo.
Ejemplo
<a href=”http://www.radiodifusion.com/ramgen/radio.rm>
Play
</a>
También es posible reproducir el archivo directo desde RealOne, abriendo Archivo>Abrir e introduciendo la siguiente URL:
rtsp://dirección:PuertoRTSP/radio.rm
No es necesario incluir el puerto RTSP si se mantuvo el valor de este puerto en 554.
Para transmitir en vivo se debe primero que todo
configurar Helix Producer con los parámetros necesarios del Servidor y
seguir los pasos descritos en la configuración del Helix
Producer. Luego para acceder al contenido
en vivo
(“online”) se puede hacer mediante un link en una página Web o
ingresando
directamente
<a href=”http://dirección:PuertoHTTP/ramgen/broadcast/XXX”>
Online</a>
Donde ‘XXX’ es el nombre colocado en la configuración del Helix Producer dentro de Server Destination, en el campo Stream name, que en este caso es difusión, con lo que queda de la siguiente manera:
Ejemplo.
<a href=”http://www.radiodifusion.com/ramgen/broadcast/difusion”>
Online </a>
Y para el reproductor sería ubicándose en Archivo>Abrir e introduciendo la siguiente URL:
rtsp://dirección:PuertoRTSP/broadcast/difusión
Resultado
Referencias