Qué es CMAF y por qué es importante

El Common Media Application Format (CMAF) es un nuevo formato abierto impulsado por Apple y Microsoft, entre otros, y estandarizado por MPEG, para ofrecer un contenedor de transporte con streamings eficientes y baja latencia, tanto en protocolos HLS como MPEG-DASH.

Streaming mediante bitrate adaptativo

El streaming de Bitrate Adaptivo (ABR en inglés) aterrizó en el mercado a lo grande hace más o menos una década. En comparación con la prestación tradicional de IP, sus principales innovaciones fueron las siguientes:

    1. Uso de la comunicación HTTP en lugar de UDP multicast: reduce el impacto de los eventos de pérdida de paquetes individuales y admite la entrega a través de Internet
    2. Tiene múltiples bitrates de video disponibles, llamadas perfiles, entregas o variantes.

Gracias a esto y a medida que cambian las condiciones de la red, un dispositivo o aplicación puede cambiar sin problemas entre diferentes versiones del stream con mayor o menor resolución  ó más o menos compresión. Esto es lo que hace que el streaming de bitrate  adaptativo sea adaptativo. Cada versión del stream se divide en pedazos de hasta unos pocos segundos de duración, que se llaman segmentos, fragmentos o trozos.

Los formatos más relevantes son HLS de Apple y MPEG-DASH, definido por el grupo de estándares MPEG.

¿Por qué se creó el CMAF?

Tal como se diseño originalmente, Adaptive Bitrate Streaming tuvo varios desafíos.

El primero es la latencia. Con una configuración HLS tradicional, la latencia de la señal en vivo puede ser de hasta 30 a 60 segundos. Esto provoca problemas con contenidos como los deportes, donde el espectador obtiene la acción más tarde que sus vecinos.

Un segundo desafío fue la fragmentación en los formatos de media utilizados. HLS normalmente usaba segmentos de Transport Stream (TS), mientras que DASH y Smooth Streaming optaron por MP4. La compatibilidad con múltiples formatos implicaba que el encapsulado debía duplicarse tanto para TS como para MP4. Esto conduce a gastos adicionales tanto en el encapsulado como en la entrega de CDN. Una forma de gestionarlo, es usando JITP (Just-In-Time Packaging), donde se codifica un único formato mezzanine, por ejemplo MP4, , para luego reencapasular en otro formato contenedor como TS en el momento. Esto disminuye considerablemente los costes de codificacion, aunque no así los de distribución de CDN.

En 2016, Apple agregó el soporte MP4 a HLS en la versión de protocolo 7, y este mismo año, Microsoft y Apple propusieron conjuntamente un nuevo estándar basado en MP4, llamado Common Media Application Format (CMAF). CMAF se publicó oficialmente a través de MPEG en 2018 con el apoyo de HLS, Smooth Streaming y MPEG-DASH, lo que permite que los fragmentos puedan ser reutilizados en todas las tecnologías.

Paralelamente a esta armonización del formato de contenedor, también se ha avanzado hacia la estadarización en el encriptado de los assets. CMAF se utiliza con frecuencia con Common Encryption, otro estándar MPEG. Este estándar especifica cómo cifrar la carga útil MDAT y cómo señalar el cifrado, al tiempo que permite que cada proveedor de DRM use su propio método para recuperar las claves de descifrado reales. De esta manera, los mismos fragmentos se pueden descifrar en múltiples plataformas con diferentes proveedores de DRM.

¿Cómo está estructurado y cómo permite una latencia más baja?

CMAF se basa en el Formato de Archivo Multimedia Base ISO, que es un subconjunto del formato contenedor MP4. El formato utiliza el mismo concepto de contenedor que MP4, y muchos de los contenedores utilizados con un MP4 fragmentado tradicional todavía están presentes en CMAF. Una diferencia notable es que hay una jerarquía de subdivisiones más pequeñas:

La capacidad de dividir una película o stream en vivo en piezas más pequeñas es clave en las aplicaciones de streaming. En lugar de esperar a que se descargue un archivo MP4 completo, se descargan solo unos pocos segundos de contenido cada la vez, de tal forma que se pueda reproducir y descargar al mismo tiempo.

Pero, ¿cómo reduce CMAF la latencia desde ese enfoque de referencia?

La diferencia clave es lo que se llama “Chunked encoding” (Codificación fragmentada). Esto significa que un segmento se subdivide internamente a su vez en unidades más pequeñas, llamadas fragmentos y trozos. Esto permite que un reproductor comience a decodificar video sin tener que descargar el segmento completo (que podría ser entre unos segundos y 10 segundos). Para que eso suceda, el segmento parcial debe ponerse a disposición del reproductor a través de la CDN y el origen. Esa parte de la infraestructura debe soportar la transferencia continua de los segmentos y fragmentos a medida que se agregan los trozos individuales.

Resumen

CMAF permite tanto una latencia más baja como un uso más eficiente de los recursos, lo que lo convierte en un paso importante hacia una calidad del entorno broadcast en plataformas OTT

Además, se están desarrollando tecnologías adicionales para mejorar aún más los números de latencia como, por ejemplo, HESP y la tecnología HLS de baja latencia de Apple.

Alexander Nordström

Alexander Nordström

Product Manager & Solution Architect Agama Technologies

Compartir