Media Source Extensions

Adaptive Streaming Using the Web

Media Source Extensions

La reproducción de video y audio ha estado disponible en aplicaciones web sin complementos desde hace unos años, pero las características básicas ofrecidas realmente solo han sido útiles para reproducir pistas completas individuales. No podemos, por ejemplo, combinar / dividir arraybuffers. Hasta hace poco, la transmisión de medios ha sido dominio de Flash, con tecnologías como Flash Media Server que sirve transmisiones de video utilizando el protocolo RTMP.

The MSE Standar

Con Media Source Extensions (MSE), esto está cambiando. MSE nos permite reemplazar el src valor habitual de pista única alimentado a elementos de medios con una referencia a un MediaSource objeto, que es un contenedor de información como el estado listo de los medios para reproducirse y referencias a múltiples SourceBuffer objetos que representan los diferentes fragmentos de medios que conforman toda la secuencia. MSE nos da un control más detallado sobre cuánto y con qué frecuencia se obtiene el contenido, y algo de control sobre los detalles del uso de la memoria, como cuando se desalojan los buffers. Sienta las bases para que los clientes de transmisión de velocidad de bits adaptable (como los que usan DASH o HLS) se construyan en su API extensible.

Crear activos que funcionen con MSE en los navegadores modernos es un proceso laborioso, que requiere mucho tiempo, potencia informática y energía. Se requiere el uso de utilidades externas para masajear el contenido en un formato adecuado. Si bien el soporte del navegador para los diversos contenedores de medios con MSE es irregular, el uso del códec de video H.264, el códec de audio AAC y el formato del contenedor MP4 es una línea de base común. MSE también proporciona una API para la detección en tiempo de ejecución de contenedores y códec.

Si no requiere un control explícito de la calidad del video a lo largo del tiempo, la velocidad a la que se obtiene el contenido o la velocidad a la que se desaloja la memoria, entonces las etiquetas <video><source>pueden ser una solución simple y adecuada.