Streaming o secuenciación multimedia Imprimir
SOFTWARE - Servidores
Escrito por Administrador   
Martes, 06 de Mayo de 2003 12:29

real player

Cuando se trabaja con contenido multimedia, vídeo y/o audio, son necesarias medidas especiales ya que el volumen que alcanzan estos datos es considerable y la velocidad de transmisión en la red normalmente no es muy elevada.

Se llama streaming o secuenciación multimedia al conjunto de estrategias y tecnologías que permiten reproducir una secuencia de vídeo o sonido mientras se descarga con una conexión de Internet.  

Si no se utiliza streaming, para mostrar un contenido multimedia en la red, se tendrá que descargar primero el archivo entero en el disco duro y más tarde ejecutarlo, para finalmente ver y escuchar lo que el archivo contenía. En el caso, por ejemplo, de un fichero de 5MB y una mala conexión con Internet, la descarga podría durar horas. Sin embargo, el streaming permite que esta tarea se realice de una manera más rápida y que podamos ver y escuchar su contenido durante la descarga.

Tipos de streaming

Existen dos formas de realizar streaming: en directo y bajo demanda.

·        En el streaming en directo el vídeo y el audio se codifican en el acto, se retransmiten instantáneamente hacia Internet y se visualizan y escuchan en tiempo real. Es lo que ocurre con la videoconferencia y las difusiones en directo. En este caso, es el servidor el que se encarga de controlar la transmisión de los datos utilizando tecnología “push”.

·        En el streaming bajo demanda el contenido multimedia una vez grabado, se aloja en un servidor y puede ser visualizado bajo demanda en cualquier instante. En este caso es el cliente el que controla la transmisión y recepción del contenido multimedia utilizando tecnología “pull”.

Protocolos para hacer streaming

Los dos tipos que existen de streaming necesitan diferentes protocolos para llevarse a cabo:

·        Protocolos necesarios para realizar streaming en directo: Los protocolos utilizados para transmitir este tipo de datos en tiempo real no pueden estar basados en TCP puesto que este protocolo está orientado a la conexión y en caso de que se produzca un error o se pierda un dato, éste se vuelve a retransmitir. Para vídeo y sonido en tiempo real esto no puede ocurrir por razones obvias. Por tanto, se necesitan protocolos basados en UDP: el protocolo más importante para realizar la transmisión de vídeo y sonido en tiempo real es RTP (Real-time Transport Protocol), el cual proporciona servicios de entrega en la red desde el origen hasta el destino para la transmisión de datos multimedia en tiempo real.  

·        Protocolos necesarios para realizar streaming bajo demanda: En cambio, cuando la transmisión de vídeo y sonido no se realiza en tiempo real y es el cliente el que controla la recepción de los datos, sí se pueden utilizar protocolos basados en el Protocolo de Control de Transmisión (TCP), como HTTP y FTP. HTTP y FTP son protocolos fiables, por ello se construyen en la capa más alta de TCP y así se aseguran de que los paquetes lleguen a su destino y en secuencia. De esta forma, si se pierden paquetes por el camino éstos son retransmitidos, pero no hay problemas en la recepción porque es el cliente el que se encarga de todo.

Cómo crear un flujo de streaming

Para poder crear un flujo de datos a partir de una señal de vídeo y/o audio, se requieren cuatro pasos:

1.      Identificación del origen: Como ya se ha visto, existen dos posibilidades:

a)      Emisión en directo o tiempo real.

b)      Petición de archivos bajo demanda, en la que el material se procesa sin conexión (offline) antes de poder ser visualizado vía Internet.

2.      Codificación del archivo: En esta fase, el material se digitaliza y se comprime. El vídeo y/o el audio se comprimen porque sino ocuparían mucho espacio. En la compresión se pierden datos pero no los suficientes como para que el vídeo no se vea con calidad. Este proceso lo realizan los CODEC. Algunos formatos de compresión de vídeo son: mpeg (formato pionero), asf (formato de Microsoft), rm (formato de Real Network), mov (QuickTime), etc. Estos formatos facilitan el streaming.

3.      Transmitir los flujos de datos o almacenarlos en el servidor: Si se trata de una difusión, los flujos de datos codificados se envían directamente. En caso contrario, los archivos codificados se guardan en un servidor de streaming o simplemente en un servidor Web. Los servidores de streaming ofrecen mayores prestaciones que los servidores Web, como por ejemplo, mandar un archivo con mayor o menor calidad dependiendo de la velocidad de la línea. No obstante, si no se desean altas prestaciones con un servidor Web es suficiente.

4.      Reproductor (Player) para visualizar el flujo de datos: Para poder recibir y ejecutar los archivos de streaming a través de Internet, el cliente solo tiene que disponer de un sencillo software: un CODEC y un Reproductor. Este Reproductor se encarga, en caso necesario, de realizar la petición del archivo al servidor. Posteriormente, se encargará de reproducir los flujos de streaming. El proceso es el siguiente: el Reproductor comienza a recibir el fichero y construye un buffer donde empieza a guardar la información. Cuando se ha llenado el buffer con una pequeña parte del archivo, el Reproductor  lo empieza a mostrar y a la vez continúa con la descarga. El sistema está sincronizado para que el archivo se pueda ver mientras se va descargando, de modo que cuando ha terminado de descargarse también ha acabado de visualizarse. Si en algún momento la conexión sufre descensos de velocidad se utiliza la información que hay en el buffer, de modo que se puede soportar un poco ese descenso. Si la comunicación se corta demasiado tiempo, el buffer se vacía y la ejecución del archivo se cortaría también hasta que se restaurase la señal.

Existen actualmente en el mercado varios Reproductores multimedia, siendo los más importantes el RealPlayer de Real Networks y, sobre todo, el Media Player de Microsoft por su gran difusión. Destacar que también Java ofrece en su librería JMF para trabajar con contenido multimedia la posibilidad de implementar un Reproductor capaz que procesar flujos de streaming.