O que é hls.js?
hls.js é uma biblioteca JavaScript que reproduz fluxos HLS por meio de Media Source Extensions em navegadores compatíveis. Ela associa mídia baseada em M3U8 a um elemento de vídeo HTML quando HLS nativo não está disponível.
Como hls.js funciona
hls.js implementa carregamento de playlists, adaptação, demultiplexação ou transmultiplexação, armazenamento em buffer e recuperação em torno da interface Media Source Extensions do navegador. Ela fornece fluxos elementares compatíveis a objetos SourceBuffer conectados a um elemento de vídeo comum. A biblioteca fornece a lógica de streaming, mas depende do navegador para a decodificação final de áudio e vídeo. Os stacks de reprodução na web a posicionam entre a entrega HLS e os controles da aplicação, recorrendo seletivamente à reprodução nativa quando apropriado.
Informações essenciais
- hls.js não pode adicionar um decodificador de codec que o navegador não tenha: Media Source Extensions pode aceitar o fluxo de trabalho do contêiner, mas as operações de anexação ainda podem falhar devido a um codec ou perfil sem suporte.
- Playlists, chaves, dados de inicialização e segmentos de outras origens precisam de respostas CORS adequadas porque a biblioteca os busca usando os recursos de rede do navegador, em vez do carregamento nativo e opaco de mídia.
- As aplicações devem usar os eventos de manifesto, nível, armazenamento em buffer e erro da biblioteca para telemetria e recuperação; uma associação bem-sucedida a um elemento de vídeo não comprova que o fluxo possa ser reproduzido.
Quando hls.js é relevante
Desenvolvedores web usam hls.js para controlar a reprodução adaptativa e inspecionar eventos do fluxo em navegadores compatíveis com MSE. O uso de HLS nativo ou de outra alternativa continua necessário onde Media Source Extensions não estão disponíveis.