CONCATENACIÓN DE VÍDEO CON MANIFIESTOS HLS

Foto de bc_campaign_editor_2
bc_campaign_editor_2
blog-placeholder image

Este artículo se centra en HTTP Live Streaming (HLS), pero los conceptos básicos son válidos también para otros protocolos de streaming basados en HTTP. Un análisis en profundidad del protocolo HLS queda fuera del alcance de este artículo, pero existe abundante información disponible en Internet, incluido el estándar publicado: HTTP Live Streaming.

Concatenación y la antigua usanza

Contenido es igual a valor, así que, en el mundo del vídeo, una forma de crear más valor es tomar un solo vídeo y mezclarlo con otros para crear una nueva pieza de contenido. Muchas veces esto se hace a través de la concatenación, o la capacidad de unir varios vídeos, lo que representa una forma básica de edición. Si a esto añadimos la creación de clips mediante listas de edición, tenemos dos de las funciones más básicas de un editor no lineal.

Por muy prometedora que parezca la concatenación, también puede suponer una carga tanto para la infraestructura como para las operaciones. Imaginemos un portal de vídeo social. Dependiendo de los dispositivos a los que se dirija, podría haber entre un puñado y varias docenas de formatos de salida por vídeo. Si deciden concatenar varios vídeos para ampliar el valor de su biblioteca, también verán un aumento masivo del coste de almacenamiento y de la complejidad de la gestión de activos. Cada vez que se crea una nueva combinación de vídeos, se genera una serie de activos fijos que es necesario almacenar.

HTTP Live Streaming y el Archivo Manifiesto

La introducción de protocolos de streaming basados en HTTP impulsados por manifiestos ha creado un paradigma totalmente nuevo para crear experiencias de visionado dinámicas. Tradicionalmente, la única opción para ofrecer múltiples combinaciones de clips a partir de un único contenido era la edición, lo que implica la creación de activos fijos. Con tecnologías como HLS -dado que el elemento reproducible ya no es un archivo de vídeo, sino un simple archivo de texto-, editar un vídeo es lo mismo que editar un documento en un procesador de textos.

Para una plataforma de vídeo, hay dos formas de tratar el archivo de manifiesto HLS m3u8. La más sencilla es tratar el archivo m3u8 como un activo discreto y reproducible. En este modelo, el m3u8 se almacena en el servidor de origen junto con los archivos TS segmentados y se entrega a los dispositivos. El resultado es sencillo y rápido de implementar, pero el archivo m3u8 sólo puede modificarse mediante un proceso manual.

En cambio, al tratar el manifiesto como algo que se genera dinámicamente, es posible ofrecer a los espectadores una combinación prácticamente ilimitada de clips. En este modelo, el m3u8 se genera sobre la marcha, por lo que no permanece en el servidor, sino que se crea y se entrega cada vez que se solicita.

Generación dinámica de manifiestos

¿Qué es un archivo de manifiesto? Básicamente, es una combinación de algunos metadatos y enlaces a segmentos de vídeo.

  • Vídeo ejemplar A
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Segmento_A_ejemplar-01.ts
  • #EXTINF:10,
  • Segmento_A_ejemplar-02.ts

El m3u8 anterior tiene dos segmentos de vídeo de 10 segundos cada uno, por lo que la duración total del vídeo es de 20 segundos. El vídeo ejemplar A, que, por cierto, es un vídeo realmente genial, dura 20 segundos. Ahora imaginemos que también tenemos

  • Vídeo ejemplar B
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Ejemplar_B_segmento-01.ts
  • #EXTINF:10,
  • Segmento_B_ejemplar-02.ts

Y digamos también que sabemos que a un espectador concreto le encantaría ver una combinación de ambos vídeos, con el Vídeo B en primer lugar y el Vídeo A en segundo lugar:

  • Magnífico vídeo
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10,
  • Ejemplar_B_segmento-01.ts
  • #EXTINF:10,
  • Segmento_B_ejemplar-02.ts
  • #EXT-X-DISCONTINUITY
  • #EXTINF:10,
  • Segmento_A_ejemplar-01.ts
  • #EXTINF:10,
  • Segmento_A_ejemplar-02.ts

Ahora, instantáneamente, sin crear ningún activo permanente que deba almacenarse en origen, y sin haber involucrado a un editor para crear un nuevo activo, hemos generado un nuevo vídeo para el usuario que comienza con el Vídeo B seguido del Vídeo A. Por si fuera poco, el vídeo se reproducirá sin problemas como si fuera un único vídeo.

Habrás notado una pequeña adición al m3u8:

EXT-X-DISCONTINUITY

Al colocar esta etiqueta en el m3u8, se indica al reproductor que el siguiente segmento de vídeo tendrá una resolución diferente o un perfil de audio distinto del anterior. Si todos los vídeos están codificados con la misma resolución, códecs y perfiles, esta etiqueta puede omitirse.

Ampliación del nuevo modelo

Para que una plataforma de vídeo sea capaz de ofrecer experiencias de reproducción personalizadas sobre la marcha, es necesario tratar el manifiesto m3u8 no como un activo fijo, sino como algo que debe generarse en cada solicitud. Esto significa que el backend debe conocer la ubicación de cada segmento de vídeo, el número total de segmentos por elemento y la duración de cada segmento.

Hay formas de hacer esto más sencillo. Por ejemplo, nombrando los archivos de forma coherente, sólo es necesario conocer el nombre del archivo base para todos los segmentos, y la iteración de segmentos puede gestionarse mediante programación. Se puede asumir que todos los segmentos, excepto el segmento final, tendrán la misma duración objetivo, por lo que sólo es necesario almacenar la duración del segmento final. Así, para un único archivo de vídeo con muchos segmentos de vídeo, todo lo que hay que almacenar es la ruta base, el nombre de archivo base, el número de segmentos, la duración media de los segmentos y la duración del último segmento.

Si se considera que incluso los títulos de larga duración son una combinación de escenas, o incluso más, si se considera que las escenas son una combinación de planos, se puede desbloquear una increíble cantidad de potencia mediante la generación dinámica de manifiestos. Si se planifica y construye con antelación, la arquitectura de la plataforma de distribución puede lograr una gran flexibilidad sin el consiguiente aumento de los costes operativos o de infraestructura.

Compartir

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.