¿Qué es hls.js?
hls.js es una biblioteca de JavaScript que reproduce flujos HLS mediante Media Source Extensions en navegadores compatibles. Vincula contenido multimedia basado en M3U8 a un elemento de video HTML cuando HLS nativo no está disponible.
Cómo funciona hls.js
hls.js implementa la carga de listas de reproducción, la adaptación, la demultiplexación o el cambio de contenedor, el almacenamiento en búfer y la recuperación mediante la interfaz Media Source Extensions del navegador. Suministra flujos elementales compatibles a objetos SourceBuffer conectados a un elemento de video normal. La biblioteca proporciona la lógica de transmisión, pero depende del navegador para la decodificación final del audio y el video. Los stacks de reproducción web la sitúan entre la entrega HLS y los controles de la aplicación, y recurren de forma selectiva a la reproducción nativa cuando corresponde.
Datos clave
- hls.js no puede añadir un decodificador de códec del que carezca el navegador: Media Source Extensions puede aceptar el flujo de trabajo del contenedor y, aun así, las operaciones de adición de datos pueden fallar por un códec o perfil no compatible.
- Las listas de reproducción, las claves, los datos de inicialización y los segmentos de otros orígenes necesitan respuestas CORS adecuadas porque la biblioteca los obtiene mediante las funciones de red del navegador, en lugar de usar la carga multimedia nativa opaca.
- Las aplicaciones deberían usar los eventos de manifiesto, nivel, almacenamiento en búfer y error de la biblioteca para la telemetría y la recuperación; una vinculación correcta con un elemento de video no demuestra que el flujo pueda reproducirse.
Cuándo es relevante hls.js
Los desarrolladores web usan hls.js para controlar la reproducción adaptativa e inspeccionar los eventos del flujo en navegadores compatibles con MSE. HLS nativo u otra alternativa siguen siendo necesarios donde Media Source Extensions no está disponible.