Tecnologías Multimedia, Curso 10/11 - Práctica 9

Servicios basados en streaming (II)

Distribución de audio/vídeo bajo demanda y en directo

 

Objetivos:

 

   El primer objetivo de esta práctica es acceder desde clientes remotos a contenidos cargados en el Helix Streaming Server de RealNetworks, ya sea directamente desde un reproductor multimedia o indirectamente a través de una página web.

 

El segundo objetivo es preparar tanto el Helix Streaming Server como un equipo de producción de contenidos en directo (mediante RealProducer)  y acceder desde clientes remotos a los contenidos generados, ya sea directamente desde un reproductor multimedia o indirectamente a través de una página web.

 

Desarrollo:

 

o       Solicitar desde el cliente RealPlayer la reproducción de los contenidos de ejemplo de RealMedia (.rm) y SMIL (.smi) almacenados en el punto de montaje de contenidos del servidor de vídeo de nuestro equipo primero (ver a que carpeta corresponde en Server Setup-Mount Points) y del de otro equipo después mediante la URI rtsp://156.35.151.xxx/archivo.*

o       Verificar la correcta reproducción de los medios utilizando la opción de estadísticas de reproducción (Herramientas-Estadísticas de Reproducción) y comprobar como al estar  cliente y servidor en una red local y hacer uso el cliente de la precarga de información de los flujos (técnica PerfectPlay), el comportamiento es prácticamente el mismo que en una reproducción de contenidos locales

o       Analizar la monitorización al conectarse los clientes de otro equipo a nuestro servidor, tanto en lo relativo al rendimiento (consumo de ancho de banda y memoria, número de clientes, etc.) como a la identificación de las conexiones

o       Crear una carpeta denominada "tm" en el punto de montaje de contenidos de nuestro servidor y copiar en ella todos los archivos de audio y vídeo generados para streaming en la práctica 8

o       Acceder a los archivos de audio y vídeo de la carpeta "tm" de nuestro equipo primero y de otro equipo después mediante la URI rtsp://156.35.151.xxx/tm/archivo.*. Verificar la correcta reproducción de los contenidos utilizando también la opción de estadísticas de reproducción (Herramientas-Estadísticas de Reproducción)

o       Comprobar mediante el monitor los distintos anchos de banda demandados a nuestro servidor por los clientes

 

o       Configurar el cliente RealPlayer eliminando todas las opciones relativas a las técnicas PerfectPlay y TurboPlay en Herramientas-Preferencias-General-Configuración de Reproducción

o       Verificar que los vídeos codificados en la práctica 8 para las audiencias “768k DSL or Cable” y “750k Download (VBR)” estén almacenados en la carpeta “tm” del servidor y reproducirlos desde el cliente utilizando la opción de estadísticas de reproducción (Herramientas-Estadísticas de Reproducción) ¿se aprecian ahora durante la reproducción diferencias entre las codificaciones a tasa de bits constante (CBR) y variable (VBR)?

o       Verificar que el vídeo codificado en la práctica 8 para las tres audiencias simultáneas (SureStream) de 56k, 384k y 768k esté almacenado en la carpeta “tm” del servidor y reproducirlo desde el cliente utilizando la opción de estadísticas de reproducción (Herramientas-Estadísticas de Reproducción) ¿a que velocidad se reproduce el vídeo?

o       A través del menú Herramientas-Preferencias-Conexión limitar el ancho de banda máximo de la conexión del cliente de forma sucesiva a 384k y 56k ¿a que velocidad se reproduce el vídeo en cada caso?

o       Repetir el experimento anterior, pero utilizando ahora el vídeo “768k DSL or Cable” codificado para una sola audiencia. ¿cuáles son las consecuencias?

 

o       Acceder a los contenidos del servidor desde enlaces directos en páginas web para su visualización mediante el reproductor externo

 

o       Arrancar el RealProducer

o       Seleccionar la tarjeta de sonido como dispositivo fuente de audio

o       Verificar la captura de la señal de audio procedente de un  reproductor de CD

o       Seleccionar un tipo de audiencia para la transmisión en directo

o       Activar el botón con un icono de servidor y completar los datos correspondientes al servidor de vídeo al que se va a enviar el audio: nombre del destino “servidor de streaming”, nombre del flujo “musica.rm”,  método de difusión “Push, Acount-Based Login (Helix Server)”, dirección IP del servidor y datos de la cuenta de Administrador del HelixServer (opcionalmente crear otra cuenta tal y como se indica en el Anexo II), dejando todo lo demás con sus valores por defecto.

o       Empezar la transmisión activando el botón Encode y verificar que después de unos instantes aparece “Broadcasting” como información de estado a la derecha del icono del servidor

o       Verificar la recepción del flujo de audio recibido mediante el monitor del servidor (pestaña de conexiones del monitor)

o       Anular la reproducción del audio capturado localmente en el equipo que esta transmitiendo (seleccionar silencio en la reproducción de la señal de línea de entrada)

o       Comprobar en el menú Broadcast Distribution – Receiver en que punto de montaje del servidor se puede acceder a los flujos recibidos en directo

o       Acceder ahora al audio enviado al servidor mediante el reproductor local de medios mediante la URI rtsp://156.35.151.xxx/broadcast/musica.rm. Utilizar durante la reproducción la opción de estadísticas de reproducción (Herramientas-Estadísticas de Reproducción) y comprobar como ahora no tiene sentido la carga rápida del flujo (técnica Turboplay) por estar siendo generado en tiempo real

 

o       Repetir los pasos anteriores, pero seleccionando la cámara web como fuente de vídeo y transmitiendo el flujo “camara.rm”

o       Comprobar el efecto del tamaño del buffer del reproductor (Herramientas-Preferencias-General-Configuración de la Reproducción) sobre el retardo producido en la difusión de la señal en directo. Para ello hacer un gesto reconocible frente a la cámara y comparar el tiempo transcurrido entre el instante en que el gesto aparece en la ventana de salida de RealProducer y el instante en que se reproduce finalmente en el cliente RealPlayer

o       Repetir los pasos anteriores, pero seleccionando tanto la tarjeta de sonido como la cámara web como dispositivos fuentes y transmitiendo el flujo “camara_sonido.rm”

o       Habilitar la técnica PerfectPlay en el reproductor y observar el comportamiento de la barra de tiempo de reproducción de RealPlayer durante el directo con respecto a las interacciones del usuario. Probar lo mismo deshabilitando la técnica PerfectPlay en el reproductor

 

o       Repetir los pasos anteriores, pero seleccionando el dispositivo de captura Pinnacle LINX USB como fuente tanto de audio como de vídeo (procedentes del televisor) y transmitiendo el flujo “television.rm”

 

o       Acceder a las transmisiones desde enlaces directos en páginas web para su visualización mediante el reproductor externo

 

o       Rellenar en el menú del servidor Broadcast Distribution – Receiver la información relativa a un transmisor (nombre, dirección y clave de acceso desde nuestro productor) habilitando el modo Pull, configurando el valor de Pull Splitting Virtual Path como “/pull/” y aplicando finalmente los cambios.

o       Seleccionar ahora en el productor el método de difusión “Pull (Helix Server)”, introducir la los datos habituales y la clave de acceso y comenzar la transmisión ¿transmite inmediatamente el productor el flujo? ¿se recibe el flujo en el servidor?

o       Acceder ahora al flujo en directo a través de la siguiente URI: rtsp://156.35.151.xxx/broadcast/pull/156.35.151.xxx:3031/archivo.rm

      ¿comienza ahora a transmitir el productor? ¿se recibe el flujo en el servidor?

 

o       Seleccionar la opción Broadcasting-Live Archiving

o       Cambiar el valor Archiving a Enabled y aplicar los cambios. Probar a transmitir en directo y comprobar como en el directorio Content/Archive de la instalación del servidor aparecen unos ficheros temporales. Cuando termine la transmisión esos ficheros pasarán a ser un único fichero .rm con el nombre de flujo transmitido en directo

o       Acceder al nuevo contenido almacenado en el servidor

 

o       Ejecutar la utilidad slta.bat (carpeta Bin de instalación del servidor) desde una ventana de comandos y sin parámetros para ver la ayuda e intentar hacer que funcione utilizando el modo básico

o       Crear una lista de reproducción con una secuencia de varios de los contenidos almacenados en el servidor

 

 

Trabajo a entregar:

 


ANEXO I: Publicación de contenidos BAJO DEMANDA

 

La forma más básica de publicación de medios es la de ubicarlos en el subdirectorio Content, dentro del directorio o carpeta de instalación de Helix Server. A partir de ese instante, quedarán disponibles para ser accedidos a partir de ese instante por reproductores remotos. Los tipos de contenidos podrán ser ficheros en formato RealAudio, RealVideo, mp3 y algunos otros. Para poder reproducir ejemplo.rm se debe abrir en el reproductor RealPlayer la URI rtsp://dir_servidor/ejemplo.rm. En el caso de que el puerto RTSP del servidor no sea el estándar (554), habrá que añadir dos puntos (:) y el puerto después de la dirección del servidor. Además, podrían crearse subdirectorios dentro de Content, que también serán accesibles a través de la URI rtsp.

 

SureStream

Si disponemos de contenidos generados para varias audiencias se puede probar a reproducir varias veces los contenidos a través de la red (jugando con el parámetro Normal en la pestaña Conexión de las preferencias  de RealPlayer). Podremos observar cómo varía la calidad de la reproducción.

 

PerfectPlay y TurboPlay

Si se deshabilitan TurboPlay y PerfectPlay se podrá comprobar el comportamiento clásico de un  reproductor de streaming.

 

 

ANEXO II: Producción de contenidos EN DIRECTO

 

Cuando se sirve contenido en directo a potenciales usuarios de RealPlayer el contenido de la emisión podrá ser generado a partir de elementos hardware de captura de audio y vídeo o a partir de ficheros disponibles en disco (con lo que estaremos ofreciendo información en falso directo, como hacen las cadenas de televisión con la mayoría de su programación).

 

Emisión en falso directo

Antes de producir una emisión en falso directo, el servidor ha de ser configurado adecuadamente.

 

-         Es necesario conocer el puerto en el que el servidor atiende a las peticiones HTTP

-         En la opción Broadcastingà Helix Push del servidor, hay que recordar el rango de puertos para el productor (50001-50050). Esta opción se refiere a los puertos utilizados por las versiones 9 en adelante del productor

-         En esa misma opción, utilizar el enlace Create user names and passwords (bajo el menú de autentificación) usado para los productores que quieran transmitir en directo a través del servidor

-         En el diálogo web que sale a continuación habrá que seleccionar el Realm SecureRBSEncoder y posteriormente utilizar la opción Add a user to Realm. El nombre de usuario y la contraseña creados aquí son los que el productor utilizará

-         Comprobar mediante Browse user in Realm que ha sido creado el usuario. Se puede comprobar que ya existía el usuario administrador del servidor, pero parece razonable crear un usuario que simplemente tenga permisos para efectuar una transmisión en directo (no procede darle a cada reportero de nuestra TV en Internet la clave de administrador J)

 

En el productor habrá que seleccionar un fichero de entrada a transmitir en falso directo. A continuación, en la zona de definición de la salida, se eliminará cualquier destino a fichero (botón Remove Destination) que haya podido ser creado antes y se creará un destino a servidor (botón Add Server Destination). En el diálogo que ofrece el productor se deberá proporcionar:

 

-         Un nombre para la tarea de producción que se está configurando y que identificará a la misma en la lista de patrones de producción en directo (templates). Esta lista permite almacenar las configuraciones de producción en directo más utilizadas, evitando tener que volver a introducir todos los datos en cada producción. Por ejemplo, se puede introducir el texto prueba1

-         Un nombre de flujo al que accederán los reproductores, como por ejemplo falsodirecto.rm

-         El método de acceso al servidor, que permitirá enviarle contenidos: en este caso será Push, Account-Based Login (Helix Server)

-         La dirección del servidor de streaming (127.0.0.1 o localhost si el equipo de producción es el mismo que el servidor)

-         Puerto HTTP del servidor de streaming

-         Transporte: generalmente se utiliza UDP

-         El usuario y contraseña que acabamos de crear en el servidor

 

En Advanced Settings verás entre otros parámetros el ancho de banda adicional reservado para el Forward Correction Error mencionado en clase de teoría.

 

Pulsando el botón Encode, a partir de ese instante el flujo estará disponible en el servidor como:

 

rtsp://dir_servidor/broadcast/falsodirecto.rm

 

Si en el campo Path (Optional) se introdujese por ejemplo el valor tm, el flujo estaría disponible a través del enlace:

 

rtsp://dir_servidor/broadcast/tm/falsodirecto.rm

 

Emisión en directo a partir de hardware de captura

Es posible emitir en directo utilizando como entrada el audio y vídeo de las tarjetas de captura y las webCams disponibles. En estos casos, el check-box Duration permite especificar el tiempo de duración de la transmisión.

 

Archivado

Los flujos en directo pueden ser almacenados en disco por el servidor para ser servidos posteriormente bajo demanda. A esta técnica se le denomina archivado (archiving). Para ello, en la herramienta web de administración del servidor está disponible la opción Live Archiving dentro del menú Broadcasting.

 

Continuidad: uso de slta

La utilidad de línea de comandos slta.bat que está en el directorio Bin de la instalación del servidor permite crear listas de reproducción, siempre que los medios que aparezcan en ella estén codificados EXACTAMENTE con los mismos parámetros.

 

En la playlist pueden añadirse metadatos, añadiendo en la línea correspondiente a cada uno de los clips a reproducir la información correspondiente en el siguiente formato:

 

?title=”AAA” &author=”BBB” &copyright=”CCC”