Desafío dirigido a estudiantes que deseen desarrollar su TFG/TFM, sin miedo a lo desconocido. Con iniciativa, buena capacidad de aprendizaje, ganas de aprender y asumir nuevos retos. No es necesario disponer de conocimientos previos/concretos.
Perfiles técnicos. Telecomunicaciones, Informática, con capacidad de síntesis y habilidades para el desarrollo de SW experimental.
Los servicios de streaming de vídeo (Netflix, Amazon Prime, HBO Max, etc) copan actualmente una cantidad muy importante del tráfico que se distribuye a través de las redes de un operador como Telefónica. Y las previsiones indican que el contenido de vídeo pueda llegar a ser el 90% del tráfico que se mueve por nuestras redes.
Estos servicios utilizan diferentes protocolos que permiten esta distribución del vídeo a múltiples dispositivos (Smartphone, tablets, SmartTV, Set-Top-Box). Uno de estos protocolos es el conocido como
MPEG-DASH, que utiliza un fichero de descripción en XML (MPD), que permite al reproductor conocer cómo debe acceder a los distintos fragmentos del vídeo, así como otros elementos como, por ejemplo, la capacidad de que un servidor MPEG-DASH envíe información de eventos al reproductor. Estos eventos podrían utilizarse para modificar el comportamiento del reproductor de vídeo en función de una determinada lógica definida en el servicio.
El protocolo MPEG-DASH se basa en un descriptor en XML plano (denominado MPD), y un conjunto de fragmentos de vídeo. Un reproductor que quiere acceder a un contenido de vídeo de este tipo se descarga el fichero MPD y lo interpreta.
El descriptor incluye elementos como:
- Tipo de contenido: En vivo (Live) o bajo demanda (VoD).
- La forma de calcular qué fragmento de vídeo tiene que solicitar el reproductor, ya sea mediante plantillas (Time based o Numbered based) o con el listado de los propios fragmentos (SegmentList).
- Información para permitir la sincronización entre servidor y reproductor.
- Eventos: Aviso al reproductor de que se pueden generar eventos para una determinada funcionalidad como, por ejemplo, la inserción de publicidad, o para forzar una actualización del descriptor.
Por ejemplo, en un contenido bajo demanda (VoD), el reproductor se descargará una sola vez el descriptor, ya que el contenido está prefijado y no cambia durante la reproducción. Por tanto, si se quiere poder cambiar el comportamiento del reproductor durante la reproducción, no se puede hacer mediante el descriptor, sino que debe hacerse mediante eventos.
En cambio, para el contenido en vivo, el reproductor está continuamente descargando el descriptor (normalmente para cada fragmento), ya que el contenido lineal puede cambiar (inicio de nuevo programa, de bloque publicitario, etc). Aun así, el 90% del tiempo el descriptor no cambia, provocando un comportamiento muy ineficiente que podría mejorarse utilizando eventos.
Por todo ello, el uso de eventos en MPEG-DASH es una herramienta poderosa pero que actualmente está muy infrautilizada.
¿Te apetece llevar el streaming de vídeo un paso más allá?
El desafío consiste en explorar las capacidades del protocolo MPEG-DASH para la comunicación servidor-reproductor mediante el uso de estos eventos, tanto in-band como out-of-band.
- Análisis profundo de las opciones de uso de eventos en el protocolo MPEG-DASH; el uso de eventos in-band (es decir, embebidos en el propio contenido de vídeo) y out-of-band (en el descriptor).
- Planteamiento de casos de uso para los eventos (inserción de publicidad, forzar la actualización del descriptor, etc).
- Pequeña prueba de concepto consistente en:
Generador de eventos in-band periódicos que fuercen el refresco del descriptor por parte del player.
Adaptación del MPD de un contenido en vivo para señalizar los eventos.
Utilización de un player open-source, de tal manera que atienda a los eventos para realizar el refresco del fichero MPD.