Está en la página 1de 8

PRCTICAS TXN.

DATOS MULTIMEDIA

TRANSMISIN EN INTERNET: STREAMING DE AUDIO Y VDEO

1. Introduccin
Una de las principales restricciones a la hora de trabajar con informacin multimedia (principalmente en los medios de imagen, audio y sobre todo en vdeo) es la necesidad de reducir el ancho de banda necesario para transmitir la informacin. De esta parte se encarga el sistema compresor, que para optimizar su eficiencia suele ser especfico del medio (utilizando tcnicas de codificacin fuente o source coding). Este sistema compresor se estudia en otras prcticas y por tanto en esta prctica vamos a suponer que esta parte la tenemos ya resuelta, y nos vamos a centrar en la problemtica de la transmisin de la informacin 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. La alternativa ms trivial a la hora de transmitir la informacin multimedia es tratarla como el resto de informacin, usando as aplicaciones y servicios estndar de Internet como por ejemplo ftp y http. Este tipo de servicios nos permiten visualizar el medio una vez lo hayamos descargado completamente. Una segunda alternativa, basada en los anteriores servicios (ftp, http, ), es realizar una descarga progresiva de la informacin, de manera que cuando se empiece a disponer de informacin, se pueda empezar a reproducir. En esta segunda alternativa la informacin se descarga usando el mximo ancho de banda que disponen cliente y servidor, y no hay ningn control para evitar cortes en la reproduccin: el medio se va almacenando en disco conforme se descarga, pero si el ancho de banda es ms reducido que el necesario para la reproduccin, la informacin se reproduce a saltos, ya que se va reproduciendo conforme llega. La tercera alternativa es el uso de autntico streaming, en el que se utilizan protocolos para la transmisin de informacin multimedia en tiempo real (tal y como el protocolo estndar RTP) con un control de sesin dinmico (como el que permite RTSP). Con esta alternativa no se usa el mximo ancho de banda disponible por el cliente para descargar y visualizar el medio, sino que tan slo se usa el ancho de banda necesario para ir reproduciendo el medio en tiempo real. Adems no se produce una descarga completa del medio, sino que conforme se descarga se va descartando una vez ha sido utilizado para la reproduccin. Eso s, para paliar los posibles efectos perniciosos causados por la variacin del retardo (jitter), se aplica una etapa inicial de buffering en la que se almacena una parte inicial del medio para disponer de informacin a reproducir en el caso en el que el retardo aumente, evitando as cortes en la reproduccin. En esta prctica vamos a experimentar con el proceso de streaming, para lo que instalaremos un cliente y un servidor con soporte de protocolos estndar para la transmisin de informacin multimedia en Internet (bsicamente RTP y RTSP). Para esto vamos a usar en concreto la suite proporcionada por Apple denominada Quicktime. Adems realizaremos una captura de las tramas generadas, observando cmo los datos

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.

2. Streaming de informacin multimedia


El proceso de streaming consiste en la entrega de uno o varios medios multiplexados hacia un cliente en tiempo real, y usando una red con un determinado ancho de banda (que no tiene el porqu ser necesariamente grande). En el proceso de streaming NO hay ningn fichero que se descarga al ordenador del cliente, sino que el medio se reproduce conforme se est recibiendo, y a su vez el medio se recibe a la velocidad adecuada para su reproduccin. Esto contrasta con las descargas progresivas, en las que el fichero s queda descargado en disco y adems se recibe a la mayor velocidad posible, con el fin de terminar el proceso de descarga lo antes posible. En un proceso de streaming estndar de audio y vdeo sincronizado, las peticiones de servicio por parte de los clientes se pueden manejar utilizando el protocolo RTSP (RealTime Streaming Protocol). Este protocolo se encarga de controlar el stream de contenido multimedia en dos direcciones, de forma que los clientes pueden pedir al servidor hacer cosas como rebobinar la pelcula, saltar al siguiente captulo, etc. Esto se puede conseguir con streaming ya que el medio no se descarga linealmente sino que se reproduce conforme se obtiene, y se permiten saltos en la reproduccin, consiguiendo un acceso aleatorio al medio, incluso en saltos hacia delante. Por otra parte, los datos del medio (el stream que contiene tpicamente audio y vdeo sincronizados) se pueden transportar usando el protocolo estndar RTP (Real-Time Transport Protocol), que es un protocolo de transporte que permite la transmisin de informacin multimedia en tiempo real sobre cualquier tipo de red (aunque su uso ms habitual es sobre redes usando el protocolo UDP). 2.1 Tipos de streaming El proceso de streaming se puede dividir en dos categoras, en funcin de cmo se obtiene la informacin a difundir: streaming en directo o bajo demanda. El streaming en directo es aquel que transmite eventos que estn sucediendo justo en el momento de la difusin. Por ejemplo, la transmisin de conciertos o de clases son eventos que tpicamente se difunden usando este tipo de streaming. La transmisin de radio y televisin por Internet tambin tiene estas caractersticas, aunque en ocasiones parte de la informacin que se difunde no parte de un evento en directo (por ejemplo, un programa que ha sido grabado previamente, pero que se va a difundir en un momento determinado). En este tipo de transmisin empleamos el trmino difusin (broadcast) porque realmente se est transmitiendo en vivo a todos los clientes la misma informacin, que no es ms que el evento que se est produciendo en ese momento. As, independientemente de cuando se conecta un cliente al servidor, todos ven exactamente el mismo punto del stream en un instante determinado (excepto las lgicas variaciones de los retardos en la red que

hacen que unos clientes reciban antes los datos que otros). Para poder efectuar este tipo de transmisin no es suficiente con disponer de un servidor de streaming, sino que tambin es necesario un equipo que realice el proceso de captura y compresin en tiempo real (que a veces se conoce como difusor o broadcaster). Este equipo puede estar instalado en la misma mquina que el servidor de streaming si el nmero potencial de clientes no es grande, pero para resultados profesionales, en un entorno con muchos clientes, es conveniente separar ambos programas en dos mquinas distintas. Adems, para dar un servicio realmente eficiente de este tipo de streaming es conveniente que la difusin se realice con tcnicas de multicast. En un stream multimedia bajo demanda, la transmisin del medio empieza desde el inicio del evento a ser reproducido para cada uno de los clientes. El medio a transmitir puede estar ya preparado desde el comienzo del proceso en un fichero comprimido. En este caso no representa una ventaja adicional el disponer de posibilidad del realizar multicast en la red, ya que cada cliente recibe una parte distinta del stream y por lo tanto un paquete de datos diferente.

2.2 Difusin de streaming a varios clientes usando multicast En multicast, un nico stream se comparte entre diferentes clientes, de forma que el servidor enva la informacin una nica vez, y sta llega a todos los clientes que han demandado el servicio. Como ya hemos comentado, esta tcnica es ideal para la difusin de medios en vivo (por ejemplo, radio en Internet) ya que todos los clientes estn dispuestos a recibir el mismo flujo de datos (por ejemplo, el audio que corresponde al programa de radio que una emisora est difundiendo en un momento determinado). Esta tcnica reduce claramente el trfico en la red, y evita posible congestin 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 estn conectados a una red o redes IP bajo un mismo dominio de administracin en las que el multicast est habilitado y existan routers dispuestos a encaminar informacin multicast (router multicast). En la transmisin tpica unicast, cada cliente inicia su propio stream, independientemente de que todos los clientes estn interesados en el mismo stream de datos (esto es, aunque sea una difusin en vivo), de forma que se inician muchas conexiones uno-a-uno (una entre el servidor y el cliente por cada uno de los clientes). Esta tcnica causa que el servidor requiera de un ancho de banda mucho mayor que los clientes y aumenta el trfico en la red. Sin embargo, este mtodo es el nico cuya disponibilidad est garantizada en Internet actualmente, ya que no necesita de acceso a Mbone (cuya disponibilidad no est garantizada por todos los ISP) ni capacidad multicast entre los clientes y el servidor. En general, desde una lnea tipo xDSL o cable mdem no se dispone de suficiente ancho de banda de inyeccin en la red (o de subida) para dar un buen servicio de streaming en Internet. Adems, en algunos casos, la instalacin de este tipo de

servidores podra no estar permitida por parte del ISP y su uso puede ser razn de ruptura del contrato. Una solucin intermedia para realizar una difusin 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 difusin que realiza la captura se encuentra situado en otra red distinta (por ejemplo, la difusin de un mensaje de una compaa a una filial geogrficamente separada). En este caso, la transmisin se puede hacer mediante unicast entre el equipo de difusin (broadcaster) y la red en la que se encuentran los clientes, y aplicar una difusin multicast en la red destino. Este esquema se conoce como relaying media.

3. Instalacin de un cliente y servidor de streaming


Para seguir el guin de esta prctica ser necesario disponer de una mquina con Windows XP instalado, y acceso a una cuenta con permisos de administrador. Sin embargo, la mayor parte de los programas que vamos a utilizar tambin se encuentran disponible para otros Sistemas Operativos (como Linux y Mac). A lo largo de toda la prctica, para realizar el proceso de streaming, vamos a usar el software proporcionado por Apple dentro de su suite QuickTime, principalmente debido al compromiso de esta compaa por desarrollar software que siga los estndares y RFCs. As, la compresin de los vdeos se realiza siguiendo el estndar MPEG-4 y H.264 (o MPEG-4 parte 10), el audio se comprime con AAC (una versin mejorada de MPEG 1 parte 3 MP3) y la transmisin se realiza siguiendo los protocolos RTP (perfil multimedia) y RTSP con RFC 1890 y 2326. Pese a esto, el software QuickTime tambin tiene soporte para esquemas propietarios de Apple (por ejemplo, ficheros de pelculas comprimidas .mov, o H.264 dentro de ficheros .mov). Otras compaas proporcionan soluciones para streaming, pero algunas de ellas, como Microsoft con Windows Media, hacen uso exclusivo de tcnicas propietarias. Otras compaas con productos importantes para streaming son Real Networks (con RealMedia, RealAudio y RealVideo) y Nullsoft Streaming Video. 3.1 Instalacin de un cliente QuickTime En primer lugar vamos a instalar el programa QuickTime player, cuyas primeras versiones simplemente incluan un reproductor de ficheros multimedia de los formatos de Apple, que posteriormente dio soporte a reproduccin con descarga progresiva y que actualmente incluye tambin la capacidad de realizar streaming como cliente mediante RTP y RTSP. La descarga gratuita de la ltima versin de QuickTime en espaol se puede realizar desde la pgina de Apple http://www.apple.com/es/quicktime/download/win.html. Una vez bajado, la instalacin resulta muy sencilla. Durante la instalacin, no es necesario instalar el apple software update, adems, al realizar la configuracin MIME, es conveniente indicar que se use como reproductor predeterminado para secuencias RTSP/RTP.A la hora de realizar la descarga, observars que existe una versin que incluye iTunes, un programa para organizar bibliotecas multimedia y comprar msica

on-line que se suele usar en combinacin con los iPod de Apple. En nuestro caso no vamos a usar este programa as que puedes descargar la versin sin iTunes. Una vez instalado el programa, ejectalo e inicia una sesin de streaming abriendo un nuevo URL (men archivo, abrir URL) con una direccin que tenga la estructura rtsp://servidor/video, y pulsando posteriormente la tecla play para iniciar la sesin. Si en la mquina donde se ejecuta el cliente se encuentra instalado algn cortafuegos, al iniciar la sesin por primera vez es posible que se visualice una pantalla de aviso del cortafuegos indicando que se est intentando acceder a un puerto de acceso limitado, si es as habr que desbloquear dicho puerto. Como ejemplo puedes probar un stream accesible mediante RSTP abriendo el URL
rtsp://zoidberg.disca.upv.es/sample_300kbit.mp4

NOTA: Es posible que el stream no se reproduzca correctamente la primera vez que accedes a l si el cortafuegos estaba activado. En ese caso necesitars volver a abrir el URL para poder reproducirlo correctamente. Tambin puedes probar los siguientes URL
http://movies.apple.com/movies/picturehouse/the_orphanage/the_oprhanage-h.ref.mov
http://images.apple.com/movies/disney/piratesofthecaribbean3/piratesofthecaribbean3-fte_h480p.mov

que contienen trailers y making of de pelculas codificados con H.264 usando el formato .mov propietario de Apple, y que se reproducen con la tcnica de bajado progresivo. 3.2 Instalacin de perl Durante esta prctica vamos a hacer uso del servidor de streaming de Apple denominado Darwin Streaming Server (DSS). La principal ventaja de esta solucin es que se plantea como un proyecto de cdigo 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 instalacin de ActivePerl, una implementacin 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 versin gratuita del AS package de Windows x86). Adems, para el correcto funcionamiento del servidor de streaming DSS, la versin 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 ledo 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 opcin). Entonces se realizar la copia e instalacin del programa, que terminar con el mensaje 5

Press return to exit. En este momento hay que salir del proceso de instalacin pulsando enter y a continuacin reiniciar la mquina para actualizar correctamente todas las variables de entorno. Es muy importante reiniciar la mquina en este punto, si no se hiciera, la prctica no funcionara, ni aunque se reinstalase el ActivePerl. 3.3 Instalacin de un servidor de streaming Darwin Por ltimo vamos a proceder a la instalacin del servidor de streaming Darwin Streaming Server (DSS) que se puede obtener directamente de la web de Apple en http://developer.apple.com/opensource/server/streaming/index.html. En este enlace puedes encontrar una descripcin del servidor (que es conveniente leerse) y distintas versiones (releases) disponibles para bajarse. En concreto nos interesa obtener la versin ya compilada para Windows 2000/2003 server, que puede descargarse directamente del enlace anterior, aunque para ello es necesario registrarse como usuario de Apple Open Source (una versin ya descargada se encuentra disponible en la web de la asignatura). Para la descompresin 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 contrasea para la posterior administracin 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 ejecucin 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 instalacin del DSS, para lanzarlo tecleando perl streamingadminserver.pl. ADVERTENCIA: Si la mquina en la que se encuentra instalado el servidor tiene un cortafuegos instalado, hay que desactivarlo antes de empezar ejecutar el servidor (aunque tambin debera ser suficiente si se habilita el uso de los puertos 554 de TCP/UDP, que corresponde a RTSP). 3.4 Configuracin de un servidor de streaming Darwin Una vez instalado el servidor habr que proceder a realizar su configuracin va 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 configuracin se puede realizar de esta forma desde cualquier mquina conectada a Internet, y no slo desde el propio servidor. La primera vez que inicies el proceso de configuracin se te solicitar un password para la utilidad de difusin de MP3 (que no usaremos en esta prctica), se puede usar el mismo que introdujimos previamente (streaming). Posteriormente se solicitar que se indique si se va a usar encriptacin a travs de Secure Sockets Layer (SSL), luego se debe introducir el directorio que contendr los ficheros fuente a partir de los que hacer streaming y por ltimo se pregunta si el streaming se debe realizar por el puerto 80 (para

saltar cortafuegos en las redes intermedias o en los clientes). En todos los casos se debe dejar la opcin por defecto y pulsar Finish para terminar. En este momento queda abierta una ventana que permite la configuracin completa del servidor usando un men que se sita a la izquierda, y un botn en la esquina superior izquierda que permite arrancar y parar el servidor. El men de configuracin incluye: Main: Datos generales sobre el servidor (como su nombre, el estado, la carga de la CPU causada por el servidor, el nmero de conexiones a las que se les est dando servicio y la productividad actual). Connected Users: Identifica a los usuarios actualmente conectados, facilitando su IP y estadsticas sobre cmo est siendo el servicio. Relay Status y Relay Settings: Permiten implementar un servicio basado en Relays. Port Settings: Especifica si el servicio se ofrece por los puertos estndar de streaming o por el puerto de web. General Settings: Permite especificar el directorio donde se encuentran los archivos multimedia a servir, indicar el mximo nmero de usuarios que se pueden conectar simultneamente y limitar el mximo ancho de banda que la aplicacin use. Adems se puede variar los password de administracin, y especifica el tipo de autenticacin para aquellos ficheros que requieran un usuario para ser visualizados. Playlist: Permite crear listas de medios a servir en un orden especificado (ideal para radios en Internet). El resto de opciones se usan para mantener un Log sobre el servidor.

A continuacin asegrate de que el servidor est en ejecucin e intenta acceder desde un cliente QuckTime player (desde otro ordenador de algn compaero tuyo) a uno de los recursos de los que das servicio. Para esto abre el URL rtsp://dirIP/recurso, donde dirIP es la IP de tu servidor y recurso es el nombre de alguno de los ficheros que ests sirviendo, y que se encuentran en el media directory (ver general settings). Observa como varan las estadsticas conforme se conectan ms usuarios a tu servidor.

4. Captura de tramas de streaming


Por ltimo, en la prctica vamos a realizar una captura de las tramas generadas por el proceso de streaming, y a observar la encapsulacin de los paquetes RTP en UDP as como la informacin de la cabecera. Para esto ser necesario un analizador de protocolos que nos permita capturar las tramas que generemos y recibimos de la red. En la prctica podremos usar el Analyzer del Politecnico di Torino, que hace uso de WinPcap para el proceso de captura. Si no se encuentra disponible, otra opcin ser usar el analizador de protocolos Ethereal. Si se usa el Analyzer, despus de lanzar la aplicacin hay que pulsar sobre el icono que muestra una tarjeta de red para lanzar la ventana de configuracin de captura. En la ventana user-defined-filter indica ip and host cl_IP, donde cl_IP se corresponde con la direccin IP del host que contiene el cliente que vas a utilizar para acceder a tu servidor (el ordenador de algn compaero) y pulsa OK. Despus lanza una peticin desde el ordenador que tiene el cliente y captura unas cuantas tramas, y pulsa a stop. A

continuacin aparecen las tramas capturadas. Analzalas y observars como hay peticiones RTSP por TCP, y paquetes RTP y RTCP encapsulados en datagramas UDP. A continuacin cntrate en una serie de paquetes RTP y analiza su cabecera, empleando para ello las transparencias que hemos estudiado en clase de teora, donde vimos el significado de cada uno de los campos de la cabecera RTP. Observa como el nmero de secuencia indica claramente la secuencia de los datos. Adems puedes ver el SSRC y como se indica que no hay ningn CSRC que contribuye a la fuente actual. El tipo de carga viene indicada con un nmero. Analiza cuntos tipos de carga aparecen en las tramas capturadas y compralas con los tipos de carga que aparece en el estndar (http://www.ietf.cnri.reston.va.us/rfc/rfc1890.txt). Por ltimo podemos utilizar el analizador de protocolos para capturar un stream de audio de una radio en Internet. Para ello simplemente abre a travs de Web cualquier emisora de radio por Internet (por ejemplo, accediendo a http://www.cadenaser.com o http://www.cope.es y pulsando en el botn escuchar). Cuando el audio empiece a sonar, abre el analizador de protocolos y lanza una captura indicando como filtro nicamente IP. Despus de capturar unas cuantas tramas, pulsa Stop y analiza nuevamente el contenido capturado. Se est usando tambin RTP para realizar el proceso de streaming en vivo?

5. Posible extensin de la prctica


Como posible ampliacin de la prctica se puede hacer un anlisis de otras plataformas de streaming disponibles por medio de la modalidad cdigo abierto (open source). Una de las plataformas de streaming ms famosas de cdigo abierto es VideoLAN (http://www.videolan.org/), siendo su producto estrella el reproductor multimedia VLC. Entre las funcionalidades de este programa se encuentra poder realizar la funcin de servidor de Video bajo Demanda (Video on Demand, VoN), como ya se ha mostrado en trabajos de la asignatura en cursos anteriores (ver Web de la asignatura). Por tanto, una posible ampliacin es realizar anlisis similares con otras capacidades del programa.

También podría gustarte