Streaming con bitrate adaptativo
El streaming de bitrate adaptativo (ABR) entró en el mercado con fuerza durante los últimos 10 años. Sus principales innovaciones frente a la entrega IP tradicional fueron:
- Usar comunicación HTTP en lugar de multicast UDP, reduciendo el impacto de eventos individuales de pérdida de paquetes y dando soporte a la entrega por internet
- Tener múltiples bitrates del video disponibles, llamados perfiles o renditions
A medida que cambian las condiciones de la red, esto permite que un dispositivo o app cambie de forma fluida entre diferentes versiones del stream con mayor o menor resolución o más o menos compresión. Esto es lo que hace adaptativo al streaming de bitrate adaptativo. Cada versión del stream se divide en piezas de hasta unos pocos segundos de duración, llamadas segmentos, fragmentos o chunks.
Los formatos de mayor impacto son HLS de Apple y MPEG-DASH, definido por el grupo de estándares MPEG.
¿Por qué se creó CMAF?
El streaming de bitrate adaptativo, tal como se diseñó originalmente, tenía varios desafíos.
El primero es la latencia. Con una configuración HLS tradicional, la latencia desde la señal en vivo puede ser de hasta 30 a 60 segundos. Esto es problemático con contenidos como los deportes, donde el espectador ve la acción más tarde que sus vecinos.
Un segundo desafío era la fragmentación en los formatos de medios utilizados. HLS solía usar segmentos Transport Stream, mientras que DASH y Smooth Streaming optaron por MP4. Soportar múltiples formatos significaba que el packaging debía duplicarse con TS y MP4. Esto conlleva gastos extra tanto en packaging como en entrega CDN. Una forma de abordarlo es el packaging just-in-time, donde se codifica un único formato mezzanine (digamos MP4) y se transmuxea sobre la marcha a otro formato contenedor como TS. Esto reduce los costos de codificación, pero no los de entrega CDN.
En 2016, Apple añadió soporte MP4 a HLS en la versión 7 del protocolo, y ese mismo año Microsoft y Apple propusieron conjuntamente un nuevo estándar basado en MP4 llamado Common Media Application Format. CMAF se publicó oficialmente a través de MPEG en 2018 con soporte de HLS, Smooth Streaming y MPEG-DASH, permitiendo así que los fragmentos se reutilizaran entre todas estas tecnologías.
En paralelo con esta armonización del formato del contenedor, también ha habido un avance hacia la estandarización del cifrado de los activos. CMAF se usa frecuentemente con Common Encryption, otro estándar MPEG armonizador. Este estándar especifica cómo cifrar la carga mdat y cómo señalizar el cifrado, permitiendo al mismo tiempo que cada proveedor DRM use su propio método para recuperar las claves de descifrado reales. De esta forma, los mismos fragmentos pueden descifrarse en múltiples plataformas con diferentes proveedores DRM.
¿Cómo está estructurado y cómo permite menor latencia?
CMAF se basa en el ISO Base Media File Format, que es un subconjunto del formato contenedor MP4. El formato usa el mismo concepto de boxes que MP4, y muchos de los boxes utilizados con MP4 fragmentado tradicional siguen presentes en CMAF. Una diferencia notable es que existe una jerarquía de subdivisiones más pequeñas:
La capacidad de dividir una película o un 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, queremos descargar no más de unos pocos segundos de contenido a la vez para poder reproducir y descargar al mismo tiempo.
Pero, ¿cómo reduce CMAF la latencia respecto a ese enfoque base?
La diferencia clave es lo que se llama «Chunked encoding». Significa que un segmento se subdivide internamente en unidades más pequeñas, llamadas fragmentos y chunks. Esto permite a un reproductor empezar a decodificar video sin tener que descargar el segmento completo (que podría ser de unos pocos segundos a 10 segundos). Para que esto suceda, el segmento parcial debe estar disponible para el reproductor a través de la CDN y el origin. Esa parte de la infraestructura debe soportar la transferencia continua de los segmentos y fragmentos a medida que se le añaden los chunks individuales.
Resumen
CMAF permite tanto una menor latencia como un uso más eficiente de los recursos, convirtiéndose en un paso importante hacia una experiencia tipo broadcast entregada por OTT.
También se están desarrollando tecnologías adicionales para mejorar aún más los números de latencia, por ejemplo HESP y la tecnología Low Latency HLS de Apple.
Sobre Alexander Nordström
Alex es Product Manager y Solution Architect, y está en Agama desde 2009. Cuenta que el mejor aspecto de su rol son las diversas interacciones con los clientes y con todas las partes del equipo de Agama.

