Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RTP Streaming PDF
RTP Streaming PDF
TRANSMISIÓN EN INTERNET:
TXÓN. DATOS
MULTIMEDIA STREAMING DE AUDIO Y VÍDEO
1. Introducción
Una de las principales restricciones a la hora de trabajar con información multimedia
(principalmente en los medios de imagen, audio y sobre todo en vídeo) es la necesidad
de reducir el ancho de banda necesario para transmitir la información. De esta parte se
encarga el sistema compresor, que para optimizar su eficiencia suele ser específico del
medio (utilizando técnicas de codificación fuente o source coding). Este sistema
compresor se estudia en otras prácticas y por tanto en esta práctica vamos a suponer que
esta parte la tenemos ya resuelta, y nos vamos a centrar en la problemática de la
transmisión de la información multimedia desde un servidor hacia uno o varios clientes
usando como red de transporte Internet, que como sabemos está basada en la
arquitectura TCP/IP.
Una segunda alternativa, basada en los anteriores servicios (ftp, http, …), es realizar una
descarga progresiva de la información, de manera que cuando se empiece a disponer de
información, se pueda empezar a reproducir. En esta segunda alternativa la información
se descarga usando el máximo ancho de banda que disponen cliente y servidor, y no hay
ningún control para evitar cortes en la reproducción: el medio se va almacenando en
disco conforme se descarga, pero si el ancho de banda es más reducido que el necesario
para la reproducción, la información se reproduce “a saltos”, ya que se va
reproduciendo conforme llega.
1
multimedia se paquetizan dentro de datagramas IP, que a su vez contienen datagramas
de usuario UDP, y que finalmente transmiten paquetes RTP, de los que observaremos su
cabecera.
Por otra parte, los datos del medio (el stream que contiene típicamente audio y vídeo
sincronizados) se pueden transportar usando el protocolo estándar RTP (Real-Time
Transport Protocol), que es un protocolo de transporte que permite la transmisión de
información multimedia en tiempo real sobre cualquier tipo de red (aunque su uso más
habitual es sobre redes usando el protocolo UDP).
2
hacen que unos clientes reciban antes los datos que otros). Para poder
efectuar este tipo de transmisión no es suficiente con disponer de un servidor
de streaming, sino que también es necesario un equipo que realice el proceso
de captura y compresión en tiempo real (que a veces se conoce como difusor
o broadcaster). Este equipo puede estar instalado en la misma máquina que el
servidor de streaming si el número potencial de clientes no es grande, pero
para resultados profesionales, en un entorno con muchos clientes, es
conveniente separar ambos programas en dos máquinas distintas.
Esta técnica reduce claramente el tráfico en la red, y evita posible congestión en los
routers. Sin embargo, para llevarla a cabo es necesario tener acceso a una troncal con
soporte multicast (por ejemplo Mbone en Internet), o que el servidor y los clientes estén
conectados a una red o redes IP bajo un mismo dominio de administración en las que el
multicast esté habilitado y existan routers dispuestos a encaminar información multicast
(router multicast).
En general, desde una línea tipo xDSL o cable módem no se dispone de suficiente
ancho de banda de inyección en la red (o de subida) para dar un buen servicio de
streaming en Internet. Además, en algunos casos, la instalación de este tipo de
3
servidores podría no estar permitida por parte del ISP y su uso puede ser razón de
ruptura del contrato.
Una solución intermedia para realizar una difusión en vivo de un stream multimedia es
el caso en el que todos los clientes se encuentran conectados a una misma red IP con
soporte multicast, y el equipo de difusión que realiza la captura se encuentra situado en
otra red distinta (por ejemplo, la difusión de un mensaje de una compañía a una filial
geográficamente separada). En este caso, la transmisión se puede hacer mediante
unicast entre el equipo de difusión (broadcaster) y la red en la que se encuentran los
clientes, y aplicar una difusión multicast en la red destino. Este esquema se conoce
como relaying media.
Otras compañías proporcionan soluciones para streaming, pero algunas de ellas, como
Microsoft con Windows Media, hacen uso exclusivo de técnicas propietarias. Otras
compañías con productos importantes para streaming son Real Networks (con
RealMedia, RealAudio y RealVideo) y Nullsoft Streaming Video.
4
on-line que se suele usar en combinación con los iPod de Apple. En nuestro caso no
vamos a usar este programa así que puedes descargar la versión sin iTunes.
Una vez instalado el programa, ejecútalo e inicia una sesión de streaming abriendo un
nuevo URL (menú archivo, abrir URL) con una dirección que tenga la estructura
rtsp://servidor/video, y pulsando posteriormente la tecla play para iniciar la sesión.
Como ejemplo puedes probar un stream accesible mediante RSTP abriendo el URL
rtsp://zoidberg.disca.upv.es/sample_300kbit.mp4
http://movies.apple.com/movies/picturehouse/the_orphanage/the_oprhanage-h.ref.mov
http://images.apple.com/movies/disney/piratesofthecaribbean3/piratesofthecaribbean3-fte_h480p.mov
Durante esta práctica vamos a hacer uso del servidor de streaming de Apple
denominado Darwin Streaming Server (DSS). La principal ventaja de esta solución es
que se plantea como un proyecto de código abierto (open source), existiendo versiones
compiladas para se ejecutadas bajo distintos sistemas operativos. Sin embargo, uno de
los requerimientos de este servidor es tener instalado Perl, un lenguaje de scripts tipo
BCPL.
Windows XP no dispone de soporte para lenguaje Perl de forma nativa, así que el
siguiente paso será la instalación de ActivePerl, una implementación de Perl que se
encuentra disponible para Windows XP de forma gratuita en la web
http://www.activestate.com/products/activeperl/ (hay que pulsar “get activeperl”, y bajar
la versión gratuita del AS package de Windows x86). Además, para el correcto
funcionamiento del servidor de streaming DSS, la versión de ActivePerl a instalar debe
ser la 5.8.0 o posterior.
Una vez bajado y descomprimido el fichero que contiene el ActivePerl para Windows,
simplemente habrá que hacer doble clic en el fichero installer.bat, y afirmar que hemos
leído la licencia y estamos de acuerdo con ella (tecleando dos veces “yes”) y tomar el
resto de opciones que se nos ofrece por defecto (pulsando “enter” en cada opción).
Entonces se realizará la copia e instalación del programa, que terminará con el mensaje
5
“Press return to exit”. En este momento hay que salir del proceso de instalación
pulsando “enter” y a continuación reiniciar la máquina para actualizar correctamente
todas las variables de entorno. Es muy importante reiniciar la máquina en este
punto, si no se hiciera, la práctica no funcionaría, ni aunque se reinstalase el
ActivePerl.
Para la descompresión del fichero bajado simplemente hay que ejecutar el propio
fichero e indicar un directorio temporal en el que se almacenará (puedes usar la carpeta
que se indica por defecto). Una vez realizado esto hay que ir a la carpeta donde se
descomprimió y ejecutar install.bat. Se instalará el programa servidor y te pedirá que
crees un usuario y una contraseña para la posterior administración del servidor de
streaming. Introduce “rmm” como usuario y “streaming” como password. En este punto
el programa lanza una consola con una instancia del servidor. Mientras deseemos dar
servicio de streaming, debes de mantener la consola con el programa funcionando. Para
terminar su ejecución basta con pulsar “Control+C”.
Si en otro momento queremos volver a lanzar el servidor, se debe abrir una ventana de
consola e ir al directorio de instalación del DSS, para lanzarlo tecleando “perl
streamingadminserver.pl”.
Una vez instalado el servidor habrá que proceder a realizar su configuración vía web.
Para esto, debemos conectarnos usando un cliente de web al URL “http://dirIP:1220”,
donde dirIP se corresponde con la IP del servidor de streaming. Observa como la
configuración se puede realizar de esta forma desde cualquier máquina conectada a
Internet, y no sólo desde el propio servidor.
6
saltar cortafuegos en las redes intermedias o en los clientes). En todos los casos se debe
dejar la opción por defecto y pulsar Finish para terminar. En este momento queda
abierta una ventana que permite la configuración completa del servidor usando un menú
que se sitúa a la izquierda, y un botón en la esquina superior izquierda que permite
arrancar y parar el servidor.
Si se usa el “Analyzer”, después de lanzar la aplicación hay que pulsar sobre el icono
que muestra una tarjeta de red para lanzar la ventana de configuración de captura. En la
ventana “user-defined-filter” indica “ip and host cl_IP”, donde cl_IP se corresponde con
la dirección IP del host que contiene el cliente que vas a utilizar para acceder a tu
servidor (el ordenador de algún compañero) y pulsa OK. Después lanza una petición
desde el ordenador que tiene el cliente y captura unas cuantas tramas, y pulsa a stop. A
7
continuación aparecen las tramas capturadas. Analízalas y observarás como hay
peticiones RTSP por TCP, y paquetes RTP y RTCP encapsulados en datagramas UDP.