CÓMO TRANSMITIR EFICAZMENTE VÍDEO MULTICODEC

Foto de JESS R
JESS R

Durante la última década, la mayoría de los flujos de vídeo enviados por Internet se codificaron utilizando el códec de vídeo UIT-T H.264 / MPEG-4 AVC. Desarrollado a principios de la década de 2000, este códec se ha convertido en ampliamente compatible con una gran variedad de dispositivos y plataformas informáticas con un notable 97,93% de alcance.

Imagen1

Sin embargo, en lo que a tecnología se refiere, este códec es bastante antiguo. En los últimos años se han introducido dos nuevos códecs: HEVC, de los grupos de normalización ITU-T y MPEG , y AV1, de Alliance for Open Media. Ambos afirman haber ganado al menos un 50% en eficacia de compresión con respecto a H.264/AVC.

En teoría, estos avances deberían suponer una reducción significativa de los costes del streaming. Sin embargo, en la práctica, estos nuevos códecs sólo pueden llegar a determinados subconjuntos de los dispositivos o navegadores web existentes. HEVC, por ejemplo, al parecer sólo tiene un alcance del 18,73%, lo que apunta sobre todo a los dispositivos Apple y a los dispositivos con soporte HEVC por hardware. La compatibilidad de AV1 con los navegadores web es mayor, pero, sobre todo, no es compatible con los dispositivos Apple ni con la mayoría de las plataformas de descodificadores existentes.

Imagen2

Esta situación plantea una pregunta: Ante una compatibilidad tan fragmentada de los nuevos códecs en los distintos dispositivos, ¿cómo diseñar un sistema de streaming que llegue a todos los dispositivos y con la mayor eficacia posible?

En esta entrada de blog, intentaremos responder a esta pregunta introduciendo el concepto de retransmisión de secuencias multicódec y explicando los elementos y tecnologías clave que hemos diseñado para respaldar la plataforma Brightcove Video Cloud.

STREAMING CON TASA DE BITS ADAPTATIVA 101

Antes de empezar a hablar del streaming multicódec, repasemos brevemente los principios fundamentales del funcionamiento de los sistemas de streaming ABR (Adaptive Bit-Rate) de la era moderna. En la siguiente figura se muestra un diagrama conceptual de un sistema de este tipo. Para simplificar, nos centraremos en el caso de la distribución de vídeo a la carta.

Imagen8

Cuando un activo de vídeo se prepara para la transmisión en flujo ABR, normalmente se transcodifica en varias variantes de representación (o variantes de flujo). Estas variantes de representación suelen tener diferentes tasas de bits, resoluciones y otros parámetros de codificación y presentación.

Una vez generadas todas las variantes de representación, se colocan en el servidor de origen. Junto con el conjunto de variantes de representación, el servidor de origen recibe también un archivo de manifiesto especial, que describe las propiedades de los flujos codificados. Estos manifiestos suelen presentarse en formatos HLS o MPEG DASH. La posterior entrega de los contenidos codificados a los dispositivos de los usuarios se realiza a través de HTTP y utilizando una red de entrega de contenidos (CDN), lo que garantiza la fiabilidad y escalabilidad del sistema de entrega.

Para reproducir el contenido de vídeo, los dispositivos de usuario utilizan un software especial, llamado cliente de streaming. En su forma más simple, un cliente de streaming puede ser JavaScript ejecutado por un navegador web. También puede ser una aplicación personalizada o un reproductor de vídeo suministrado por el sistema operativo (SO). Pero independientemente de la implementación, la mayoría de los clientes de streaming incluyen lógica para la selección adaptativa de secuencias/rendiciones durante la reproducción.

Por ejemplo, si el cliente se da cuenta de que el ancho de banda de la red observado es demasiado bajo para soportar la reproducción en tiempo real del flujo actual, puede decidir cambiar a un flujo con una tasa de bits inferior. Así se evita el almacenamiento en búfer. De lo contrario, si hay suficiente ancho de banda, el cliente puede optar por cambiar a una tasa de bits superior, lo que significa un flujo de mayor calidad, y conduce a una mejor calidad de la experiencia. Esta lógica es la que hace que el streaming sea adaptable. También es la razón por la que los vídeos siempre se transcodifican en varios flujos (normalmente de 5 a 10).

El sistema representado en el diagrama anterior tiene dos componentes adicionales: El sistema de análisis, que recopila las estadísticas de reproducción de las CDN y los clientes de secuencias, y el generador de escalas de codificación ABR, que define el número y las propiedades de las variantes de representación que deben crearse. En el sistema Brightcove Video Cloud, este bloque corresponde a nuestro módulo Context-Aware Encoding (CAE).

ESCALAS DE CODIFICACIÓN Y CALIDAD ALCANZABLES POR EL SISTEMA DE STREAMING

Veamos ahora un ejemplo de escalera de codificación que puede utilizarse para la transmisión de secuencias. Este ejemplo concreto fue creado por Brightcove CAE para contenidos de vídeo de películas de acción.

Captura de pantalla 2021-03-23 a las 8.37.41 AM

Como se puede observar fácilmente, la escalera de codificación define cinco flujos, que permiten entregar vídeo con resoluciones de 216p a 1080p y utilizando entre 260 y 4200Kbps de ancho de banda. Todos los flujos son producidos por el códec H.264/AVC. En la última columna de esta tabla se enumeran las puntuaciones de calidad visual percibida estimadas para la reproducción de estas variantes de representación en la pantalla de un PC. Estos valores se comunican utilizando la escala MOS ( Mean Opinion Score ). Una puntuación MOS de cinco significa una calidad excelente, mientras que una puntuación de uno significa que la calidad es mala.

A continuación trazamos (bitrate, calidad)- puntos correspondientes a las variantes de representación, así como la mejor calidad alcanzable por el sistema de streaming con un ancho de banda de red variable. Esto se convierte en una función escalonada, que se muestra en azul.

Imagen3

En la figura anterior, también incluimos un gráfico de la denominada función de modelo de tasa de calidad [1-3], que describe los mejores valores de calidad posibles que pueden alcanzarse mediante la codificación del mismo contenido con el mismo codificador. Esta función se muestra mediante una curva roja discontinua.

Como puede comprenderse fácilmente, con un diseño adecuado de la escalera, los puntos de variante de representación se convierten en un subconjunto de puntos del modelo de tasa de calidad, y la función escalonada que describe la calidad alcanzable mediante streaming se convierte en una aproximación de este modelo. Lo que influye en la calidad del sistema de streaming es el número de variantes de representación en la escalera de codificación, así como la colocación de las variantes de representación a lo largo del eje del ancho de banda. Cuanto más se aproxime la función escalonada resultante al modelo calidad-velocidad, mejor será la calidad que puede ofrecer el sistema de streaming.

Lo que todo esto significa es que los perfiles/escalas de codificación para el streaming ABR deben diseñarse cuidadosamente. Por eso, la mayoría de los sistemas de streaming modernos emplean generadores de perfiles especiales para realizar este paso de forma dinámica, teniendo en cuenta las propiedades del contenido, las redes y otros contextos relevantes.

En las referencias [1-5] se pueden encontrar más detalles sobre los métodos matemáticos que se pueden emplear para la construcción de modelos de tasa de calidad y la generación de escalas de codificación óptimas.

STREAMING MULTICÓDEC: PRINCIPIOS FUNDAMENTALES

Una vez explicados los conceptos clave, podemos centrarnos en el streaming multicodec.

Para concretar más, consideremos un ejemplo de una escalera de codificación, generada utilizando dos códecs: H.264/AVC y HEVC. De nuevo, se utilizó CAE de Brightcove para producirla.

Captura de pantalla 2021-03-23 a las 8.38.05 AM

En la siguiente figura se presentan los gráficos de los puntos de reproducción, los modelos de tasa de calidad y la calidad alcanzable por los clientes de streaming que descodifican flujos H.264 y HEVC.

Foto4

Como se puede observar fácilmente, la función del modelo de calidad-precio para HEVC es sistemáticamente mejor que el modelo de calidad-precio para H.264/AVC. Del mismo modo, las variantes de representación HEVC también deberían ofrecer una mejor relación calidad-precio que las variantes de representación codificadas con el codificador H.264/AVC.

Sin embargo, teniendo en cuenta que normalmente sólo hay unos pocos puntos de variante de representación y que pueden estar colocados de forma dispersa y en un patrón intercalado, esto puede crear regiones de tasas de bits en las que las variantes de representación H.264/AVC pueden ofrecer mejor calidad que la variante de representación HEVC más cercana de menor o igual tasa de bits. Estas regiones de la figura anterior se observan cuando las funciones escalonadas de los clientes H.264/AVC superan a las mismas funciones de los clientes HEVC.

¿Qué significa esto? Significa que con una escalera de dos códecs la descodificación de sólo flujos codificados con HEVC no da lugar automáticamente a la mejor calidad posible. Los clientes que cambian de forma selectiva e inteligente entre flujos H.264/AVC y HEVC pueden conseguir una calidad aún mejor. En el siguiente gráfico se ilustra la calidad que pueden alcanzar estos "clientes de dos códecs".

Foto5

En este ejemplo, el cliente de dos códecs puede realizar nueve pasos de adaptación en lugar de sólo cinco en las escalas de sólo HEVC o H.264. Esto permite un mejor aprovechamiento del ancho de banda de red disponible y una entrega de mejor calidad en general.

COMPATIBILIDAD CON LA FUNCIONALIDAD MULTICODEC EN LOS CLIENTES DE STREAMING EXISTENTES

Como acabamos de ver, la capacidad del cliente de streaming no sólo para descodificar, sino también para cambiar de forma inteligente y sin problemas entre flujos H.264/AVC y HEVC es extremadamente importante. Esto mejora la calidad y permite generar menos secuencias/rendiciones, lo que reduce los costes del streaming.

Sin embargo, no todos los clientes de streaming existentes tienen esa capacidad. Los ejemplos más conocidos de clientes que lo hacen bien son los reproductores nativos de los dispositivos Apple recientes: iPhones, iPads, ordenadores Mac, etc. Pueden descodificar y cambiar entre flujos H.264/AVC y HEVC sin problemas. Las versiones recientes de los navegadores Chrome y Firefox admiten el llamado método de cambio de tipo, que técnicamente permite a los clientes de streaming basados en JavaScript implementar el cambio entre códecs.

Los clientes de streaming de muchas plataformas con descodificadores de hardware, como SmartTV, descodificadores, etc., sólo pueden descodificar flujos H.264/AVC o HEVC, y no cambiarán a otro códec durante una sesión de streaming. Y, naturalmente, hay muchos dispositivos antiguos que sólo pueden descodificar secuencias codificadas en H.264/AVC.

Este espacio fragmentado de clientes de secuencias y sus capacidades debe tenerse en cuenta en la fase de generación de la escalera de codificación, mediante la definición adecuada de manifiestos HLS y DASH, y el diseño del sistema de entrega para secuencias multicodec. En la siguiente sección, repasaremos brevemente cómo hemos abordado todos estos retos en la plataforma Brightcove Video Cloud.

COMPATIBILIDAD MULTICODEC EN LA PLATAFORMA BRIGHTCOVE VIDEOCLOUD

Brightcove Video Cloud es una plataforma de vídeo en línea integral que incluye todos los componentes básicos del sistema de retransmisión de ABR que hemos analizado en esta entrada del blog.

Por ejemplo, la generación de escalas de codificación en este sistema se realiza mediante la tecnología CAE de Brightcove. Para el usuario/operador del sistema, se manifiesta por la presencia de varios perfiles de ingesta CAE preconfigurados que permiten la implantación de secuencias H.264, HEVC y de códecs mixtos.

Captura de pantalla 2021-03-23 a las 8.38.40 AM

Cuando se selecciona el perfil de ingesta de códecs mixtos HEVC ampliado multiplataforma (CAE ), el resultado será una escalera de códecs mixtos, con flujos H.264 y HEVC presentes. Este perfil puede producir de tres a 12 flujos de salida para ambos códecs, cubriendo el rango de resoluciones de 180p a 1080p y con bitrates en el rango de 250Kbps a 4200Kbps. El generador de perfiles CAE define todo lo demás automáticamente, basándose en las características del contenido, así como en las estadísticas de reproducción observadas para la cuenta.

En Video Cloud, los manifiestos y segmentos multimedia se producen de acuerdo con diversos estándares y perfiles de streaming (por ejemplo, HLS v3, HLS v7, MPEG DASH, Smooth, etc.). Todos ellos se generan dinámicamente, en función de las preferencias y capacidades de los dispositivos receptores. Además, también pueden aplicarse determinadas reglas de filtrado(reglas de entrega). Por ejemplo, si una solicitud de reproducción procede de un dispositivo heredado que sólo admite el formato de transmisión H.264/AVC y HLS v3, sólo se ofrecerá un manifiesto HLS v3 junto con segmentos basados en TS, y sólo incluirán secuencias codificadas en H.264/AVC.

Por otra parte, en el caso de los dispositivos más recientes capaces de decidir tanto flujos H.264/AVC como HEVC, el sistema de entrega puede producir un manifiesto que incluya flujos codificados tanto con H.264/AVC como con HEVC. La declaración de flujos de códecs mixtos en los manifiestos se realiza de acuerdo con las directrices de despliegue de HLS y DASH-IF. A continuación se muestran ejemplos conceptuales de este tipo de declaraciones.

Captura de pantalla 2021-03-23 a las 8.38.40 AM

Como se ha observado, en HLS, las variantes de representación con códecs mixtos pueden incluirse en el orden natural en la lista de reproducción maestra. En MPEG DASH, sin embargo, deben enumerarse por separado, en diferentes conjuntos de adaptación, ordenados según cada códec. Para permitir el cambio entre variantes de representación de códecs mixtos en DASH, se incluye un descriptor SupplementalProperty especial en cada conjunto de adaptación.

Para ayudar a los clientes a tomar las decisiones correctas al cambiar entre secuencias codificadas con distintos códecs, se pueden utilizar atributos especiales de calidad relativa. En HLS, se denominan atributos SCORE, y los valores más altos indican mejor calidad. En MPEG DASH, se denominan atributos "Quality Ranking", pero ahora los valores más bajos indican mejor calidad. Sin embargo, ambos atributos son opcionales y sólo los admiten algunos dispositivos cliente existentes. Para garantizar que todos los dispositivos/clientes no se confundan al cambiar entre secuencias multicódec, Brightcove Video Cloud ofrece una opción de filtrado de manifiestos que sólo deja visibles para los clientes las variantes de representación con valores de calidad progresivamente crecientes en los manifiestos finales.

La entrega final de secuencias multicodec en Video Cloud se gestiona mediante una configuración de CDN de dos niveles, lo que garantiza una alta eficiencia (baja tasa de bits de origen) y una alta escala y fiabilidad en la entrega de las secuencias. Encontrará más detalles sobre las distintas configuraciones y técnicas de optimización empleadas por Brightcove Video Cloud en nuestro reciente artículo [3] o en la documentación del producto de Brightcove.

CONCLUSIONES

Con una combinación de todas las funciones y herramientas descritas para la compatibilidad con secuencias multicodec, la habilitación e implantación con Brightcove Video Cloud puede realizarse en cuestión de minutos.

Si distribuye un gran volumen de secuencias a dispositivos Apple u otros móviles y descodificadores compatibles con HEVC, habilitar el uso de HEVC y la transmisión multicodec puede ofrecer una reducción considerable del tráfico/costes de la CDN, sin comprometer el alcance a los dispositivos heredados.

Las herramientas que hemos diseñado garantizan que estas implantaciones se realicen con unos costes mínimos y asegurando una alta calidad y fiabilidad para llegar a todos los dispositivos.

REFERENCIAS

[1] Y. Reznik, K. Lillevold, A. Jagannath, J. Greer y J. Corley, "Optimal design of encoding profiles for ABR streaming", Proc. Packet Video Workshop, Ámsterdam, Países Bajos, 12 de junio de 2018. [2] Y. Reznik, X. Li, K. Lillevold, A. Jagannath y J. Greer, "Optimal Multi-Codec Adaptive Bitrate Streaming", Proc. IEEE Int. Conf. Multimedia and Expo (ICME), Shanghái, China, 8-12 de julio de 2019. [3] Y. Reznik, X. Li, K. Lillevold, R. Peck, T. Shutt y P. Howard, "Optimizing Mass-Scale Multiscreen Video Delivery", SMPTE Motion Imaging Journal, vol. 129, no. 3, pp. 26 - 38, 2020. [4] Y. Reznik, "Average Performance of Adaptive Streaming", Proc. Data Compression Conference (DCC'21), Snowbird, UT, marzo de 2021. [5] Y. Reznik, "Efficient multi-codec streaming" - charla en HPA Tech Retreat 2021.

Compartir

Etiquetas

Brightcove ayudó a un fabricante de equipos de diagnóstico a reducir el tiempo de clase y los gastos, a la vez que mejoraba el éxito ...
Brightcove ayudó al mercado automovilístico más reconocido a gestionar su enorme videoteca heredada y a monetizarla...
Para mantener la integridad de la marca, las marcas minoristas necesitan reproductores de vídeo personalizables que les permitan ajustar los colores, la fuente...

¿PREPARADO PARA EMPEZAR?

Póngase en contacto con nosotros para saber cómo podemos mejorar sus esfuerzos de marketing por vídeo y ayudarle a generar los resultados y el ROI que necesita.