Formatos Multimedia, Streaming y Voz IP: Una Guía Completa
Formatos Multimedia
Los formatos multimedia almacenan información relativa a contenidos como sonido, imagen o video.
Los codecs son aplicaciones software que se emplean para codificar/decodificar información multimedia y guardarla en un fichero en un formato determinado. Se encargan de transformar los ficheros multimedia tanto para su transporte por la red como para su reproducción local. Pueden clasificarse en dos categorías principales:
- Codecs de compresión sin pérdida: aplican algoritmos de compresión que tratan de eliminar la redundancia de los datos originales, pero sin descartar nada de la información original.
- Codecs de compresión con pérdida: se asume cierta pérdida de calidad en el proceso de compresión, pero a cambio conseguimos reducir drásticamente el tamaño de los datos codificados.
El ratio de compresión mide la proporción en que se reduce un fichero después de la aplicación de un códec.
Los formatos contenedores permiten almacenar de forma integrada información relativa a varios medios diferentes (video, audio, texto…). Generalmente no especifica el códec concreto empleado para la codificación de sus partes, sino la estructura general del fichero.
Formatos y codecs de audio
El mecanismo de muestreo viene determinado por dos parámetros principales:
- La frecuencia de muestreo que mide cada cuanto tiempo tomamos una referencia del valor de la señal. Se mide en Hz (hertzios).
- La calidad del muestreo que mide el número de bits empleados para tomar cada muestra de señal.
Formatos de imagen
Parámetros:
- Profundidad de color: número máximo de colores diferentes para cada pixel que distingue el formato, se mide en bits.
- Resolución: cantidad de puntos que se consideran a la hora de digitalizar la foto, se mide en Megapixeles o bien en dimensiones (ancho y alto).
Formatos y codecs de video
Parámetros:
- Resolución y profundidad de color: ya que un video es una sucesión de imágenes.
- Frames: número de imágenes por segundo.
Un reproductor multimedia es un software que permite la reproducción de ficheros multimedia. Se pueden encontrar reproductores de solo audio, aunque se tiende a desarrollar reproductores capaces de reproducir cualquier formato de fichero.
Streaming
El servicio de streaming permite el intercambio de ficheros, generalmente multimedia, desde un servidor hacia un cliente. Mediante el streaming es posible suministrar un flujo de datos continuo entre el servidor y el cliente de modo que este último pueda reproducir la información según la va recibiendo del servidor.
Características
- Los ficheros que se envían fragmentados desde el servidor deben ser reensamblados y sincronizados en el cliente para que se pueda ir reproduciendo durante su recepción.
- El fichero se recibe en el buffer y el cliente simultáneamente lee de él para reproducir el fichero. Si en algún momento se produce una interrupción de la conexión, el reproductor seguirá leyendo del buffer hasta que se vacíe, si esto sucediera la reproducción se pararía hasta que se restablezca la conexión.
- Los ficheros pueden reproducirse pero no llegan a guardarse en el cliente.
Arquitectura
- Cliente / servidor: un servidor de audio y video y una serie de clientes accediendo a los recursos del servidor.
- Arquitectura sin servidor: en lugar de un servidor específico se emplea un servidor web. No permite interactividad ni existe control por parte del cliente de flujo de datos.
- Sin cliente: no existe una aplicación cliente sino que está incrustada en otra aplicación como por ejemplo Flash o Java en un navegador.
Componentes
- Servidores de streaming: alojan los recursos y se los ofrecen a los clientes según sus peticiones.
- Clientes de streaming: Permiten a los usuarios acceder a los recursos disponibles en los servidores de streaming y reproducirlos con la ayuda de codecs. El cliente dispondrá de un buffer para almacenar de forma temporal los datos que se van recibiendo desde el servidor.
- Arquitecturas rápidas de red: como las CDN que consiguen mediante replicación y distribución de contenidos en diversos nodos de la red aumentar sustancialmente la velocidad de descarga reduciendo la latencia en la transferencias de datos. Ayuda a mejorar la seguridad, repartir la carga y aumentar la velocidad del streaming.
- Protocolos rápidos específicos para streaming como RTPS y RTP a nivel de aplicación que están orientados a la rápida transmisión de paquetes asumiendo pérdidas de información.
- Productor: es el encargado de generar el contenido multimedia, que puede emitirse en directo o almacenarse en un servidor.
- Formatos audio / video y codecs: los contenidos multimedia son comprimidos, empleando codecs, para ser transmitidos hacia el servidor de streaming que a su vez puede emplear nuevos codecs para ofrecer diferentes calidades o formatos a los clientes.
Tipos de streaming
En directo
- El servidor controla la transmisión. Los clientes solo podrán recibir la información que en ese momento está transmitiendo el servidor, todos los clientes reproducen el mismo contenido multimedia simultáneamente ya sea en unicast o multicast.
- Producción en directo: el servidor recibe la grabación del productor y la almacena al tiempo que inicia la difusión del mismo.
- Producción en diferido: el contenido es grabado y posteriormente almacenado en el servidor. El administrador será el que decida en que momento quiere iniciar la difusión del mismo.
Bajo demanda
- Los clientes controlan la transmisión. Transmisión totalmente personalizada para cada cliente y por lo tanto una interactividad completa.
Casi bajo demanda
- Cuando el cliente se conecta al servidor se incorpora al flujo de datos más cercano a lo solicitado. Requiere una red de comunicaciones de muy alta velocidad.
Conexiones
- Flujo de datos para el control de la transmisión de los contenidos multimedia. Emplea el protocolo RTSP y permite gestionar la interactividad desde el cliente hacia el servidor durante la transmisión de datos.
- Flujo de datos para el transporte del contenido multimedia desde el servidor hacia el cliente. Se emplea el protocolo RTP, en el que van fraccionados y multiplexados los contenidos multimedia para incluir simultáneamente audio y video en función del codec y formato elegido para la transmisión.
Protocolos
HTTP
Se realiza una conexión HTTP normal y se descarga el contenido para que un reproductor multimedia pueda reproducirlo. Por esto al HTTP se le llama protocolo de pseudo-streaming.
RTSP
Protocolo de nivel de aplicación encargado del control y gestión de la transmisión de uno o varios streams de contenido multimedia hacia un cliente. (554/TCP y 554/UDP). Es un protocolo con estado que marca la situación específica en la que se encuentra la conexión. Permite controlar sesiones con diferentes servidores para una misma reproducción multimedia en el cliente. Servidores y clientes pueden realizar peticiones RTSP. La transmisión del contenido se hace mediante conexiones separadas empleando el protocolo RTP. Métodos destacados:
- Describe: empleado por el cliente para obtener una descripción de un contenido multimedia referido por una URL RTSP en el servidor. El servidor responde con información sobre los flujos de datos necesarios para la reproducción.
- Setup: el cliente indica al servidor el protocolo de transporte de datos (RTP normalmente) y los parámetros para la transmisión de datos. El servidor responde aceptándolos o no.
- Play: el cliente indica al servidor que puede comenzar a emitir el stream de datos multimedia. Incluye una marca de tiempo indicando número de secuencia y sección de tiempo a la que corresponden.
- Pause: el cliente solicita al servidor que se detenga momentáneamente el flujo de datos pero no finaliza la sesión.
- Teardown: el cliente cierra la conexión y se liberan los recursos ocupados. El servidor acepta con otro teardown.
RTP
Protocolo de nivel de aplicación encargado del transporte del flujo de datos multimedia entre servidor y cliente. En el servidor todos los flujos de datos son multiplexados conjuntamente en paquetes RTP que a su vez van encapsulados en segmentos para ser enviados al cliente. Cada paquete RTP va numerado de forma consecutiva para reconocer la perdida de paquetes que no serán retransmitidos por la demora que esto supondría, es su lugar el cliente trata de aproximar el contenido con los paquetes anterior y posterior como referencia.
RTCP
Permite informar desde el cliente hacia el servidor de la calidad del servicio prestado. Se encapsula en UDP y usa el puerto consecutivo a RTP.
Podcast
Fichero, generalmente de audio o video, que contiene una serie de etiquetas que permiten la distribución por suscripción de dicho archivo, de forma que un usuario pueda recibir las actualizaciones de los podcast en tiempo real.
Voz IP
Permite transmitir flujos de voz a través de redes IP y además interactuar con la telefonía convencional permitiendo realizar llamadas entre ambos tipos de tecnologías.
Diferencias
- Digitalización: toda la comunicación es digital.
- Compatibilidad: es necesario que existan servicios para realizar la transición de una a otra.
- Movilidad: el direccionamiento es totalmente independiente del lugar de conexión.
- Gestión de la red y tarificación: la telefonía IP es gratuita para llamadas entre teléfonos IP y solo requiere conexión a internet.
- Calidad del servicio: Necesidades mínimas de ancho de banda para una correcta comunicación. Control de la comunicación. Control de la latencia: si es muy grande la comunicación será poco fluida.
Teléfonos IP
Actúan de interfaz entre usuario y red, emplean algún protocolo de señalización de la llamada como SIP, IAX2…
- Hardphones: dispositivos físicos diseñados para su conexión a una red IP.
- Softphones: aplicaciones que se pueden instalar en cualquier ordenador, dispositivo móvil o consola y que simulan el comportamiento de un teléfono IP.
Centralita IP
Centralizan la red de telefonía IP y ofrecen servicios como el buzón de voz, configuración de extensiones, etc. Cuentan con dos puertos: el FXO (líneas telefónicas convencionales) y los FXS (teléfonos IP).
- Centralita hardware: dispositivo físico que contiene las conexiones pertinentes para la conexión a la red interna y externa.
- Centralita software: software especifico que realiza las funciones de una centralita
Otros elementos de la telefonía IP son: protocolos, adaptadores telefónicos analógicos, red de telefonía convencional, Gateway IP y codecs.
Cuando un teléfono IP quiere hacer una llamada se pone en contacto con su central para que la gestione. La llamada puede ser interna (entre teléfonos conectados a la misma centralita) o externa (gestionados por otra central) en cuyo caso será necesario encaminar la llamada a través de un gateway o bien por medio del proveedor de VoIP.
Protocolos de señalización
Realizan el control de la comunicación en llamadas.
SIP
Protocolo genérico para inicio de sesiones muy empleado en VoIP, distingue dos elementos, el cliente (teléfono IP) y el proxy SIP (la centralita).
- Registro de teléfonos IP en la central correspondiente.
- El teléfono IP solicita a su central conectarse a otro teléfono IP.
- La centralita busca al destinatario en su registro de teléfonos, si no lo encuentra se pone en contacto con el servidor de central IP del destinatario y este se pone en contacto con el cliente que realiza la llamada.
- Una vez que se establece la comunicación, esta pasa a ser directa entre los dos usuarios sin intermediación de los servidores.
H323
Se trata de un estándar pensado para videoconferencia pero que se utiliza ampliamente en VoIP.
IAX v2
Empleado por Asterisk, evita muchos problemas presentes en SIP al emplear siempre el mismo puerto UDP.
Protocolos para la transmisión de voz
A través de la red, el más empleado es RTP (y RTCP).
Elementos y arquitectura de video conferencia
Terminal H.323
Equipo terminal de la red que permite establecer comunicaciones bidireccionales de audio-video y en tiempo real con otros dispositivos.
Gateways
Equipo al que se conectan los terminales para acceder a otros terminales ubicados en otra red. Hacen de puente entre las redes de telefonía IP y las convencionales.
Unidades de Control Multipunto (MCU)
Gestiona la comunicación entre terminales en una transmisión multipunto.
Gatekeeper
Traduce direcciones IP – H323 a los terminales, MCU y gateways mediante el protocolo RAS.