Neste artigo
Ao terminar, você vai entender:
- Por que um .m3u8 não é um arquivo de vídeo
- A diferença entre playlist mestre e playlist de mídia
- O que muda entre um manifesto ao vivo e um de VOD
- Por que um link .m3u8 copiado para de funcionar
O que é um arquivo M3U8?
Um M3U8 é um arquivo de índice que descreve um vídeo em streaming: ele lista todas as versões de qualidade disponíveis e os endereços dos segmentos curtos que compõem cada uma. Quando o player inicia um stream adaptativo, o manifesto é a primeira coisa que ele baixa.
A confusão mais comum é achar que o .m3u8 é o vídeo. Não é. O material fica em dezenas ou centenas de segmentos separados; o manifesto é o texto leve que diz ao player que eles existem, em que qualidade cada um está e em que ordem tocar. São alguns kilobytes ao lado de gigabytes de vídeo — mas nada toca sem ele.
O nome vem do formato M3U de listas de reprodução de áudio, com o «8» indicando codificação UTF-8. É por isso que abrir um .m3u8 num editor de texto funciona: por dentro é texto puro.
O que tem dentro
Um stream HLS usa dois níveis de manifesto, e entender essa divisão explica como a troca de qualidade realmente acontece.
Uma por versão. Lista os segmentos daquela versão em ordem, com a duração exata de cada um, o tamanho-alvo do segmento e — em stream criptografado — um ponteiro para a chave.
O fluxo é: buscar a mestre, escolher a versão que cabe na banda medida, buscar a playlist de mídia daquela versão, baixar os segmentos e, quando a banda mudar, saltar para outra versão no próximo segmento. Tudo guiado por números que o manifesto expõe.
M3U8 e MPD
| Formato | Protocolo | Tipo | Estrutura |
|---|---|---|---|
| .m3u8 | HLS | Texto puro | Playlist mestre → playlists de mídia |
| .mpd | DASH | XML | Um único Media Presentation Description |
Setups modernos geram os dois a partir dos mesmos segmentos, para cobrir todo aparelho — HLS para o mundo Apple, DASH no resto e em conteúdo com DRM.
Manifesto ao vivo e manifesto de VOD
| Aspecto | VOD | Ao vivo |
|---|---|---|
| Lista de segmentos | Completa e fixa | Cresce conforme os segmentos são produzidos |
| Marca de fim | #EXT-X-ENDLIST presente | Ausente — a transmissão continua |
| Comportamento do player | Lê uma vez | Rebusca para achar segmentos novos |
Numa transmissão ao vivo, o player fica relendo o manifesto para descobrir os segmentos mais recentes; num VOD, uma leitura basta, porque a marca de fim avisa que o vídeo está completo.
Por que um link .m3u8 copiado para de funcionar
Quem encontra um endereço .m3u8 nas ferramentas do navegador costuma descobrir duas coisas na sequência: ele abre num player externo, e algumas horas depois não abre mais.
O motivo é que o endereço não é permanente. Numa entrega protegida ele é uma URL assinada: carrega uma assinatura e um prazo, e a camada de entrega confere os dois antes de servir qualquer coisa. Passado o prazo, o link vira lixo — o vídeo continua lá, o mapa para ele é que caducou.
É por isso que URL assinada é a resposta padrão a hotlinking e a link repassado, e por que ela resolve um problema diferente do DRM: uma controla por quanto tempo o mapa vale, a outra deixa o próprio arquivo inútil sem licença. Num catálogo pago, as duas costumam andar juntas.
Como o Kinescope resolve isso
Os manifestos são gerados para você. Quando o Kinescope transcodifica um upload, ele escreve os manifestos HLS (e DASH para DRM), mantém tudo em sincronia com os segmentos e serve da própria CDN. No ao vivo, o manifesto é atualizado em tempo real. Você embute um player e não toca em nada disso.
Ler a documentação do KinescopePerguntas frequentes
O que é um arquivo M3U8?
É o arquivo de índice de um stream HLS: um texto de poucos kilobytes que lista as versões de qualidade disponíveis e os endereços dos segmentos de cada uma. É a primeira coisa que o player baixa ao iniciar um stream adaptativo.
Um .m3u8 é um arquivo de vídeo?
Não. É apenas o índice. O vídeo em si está em dezenas ou centenas de segmentos separados; o .m3u8 diz ao player quais existem, em que qualidade e em que ordem tocar.
Qual a diferença entre .m3u8 e .mpd?
São os formatos de manifesto dos dois protocolos principais. O .m3u8 é a playlist do HLS, em texto puro; o .mpd é o Media Presentation Description do DASH, em XML. Descrevem a mesma coisa — versões disponíveis e seus segmentos.
O que é playlist mestre e playlist de mídia?
No HLS, a playlist mestre lista as versões de qualidade com banda, resolução e codecs, e aponta uma playlist de mídia para cada uma. Cada playlist de mídia lista os segmentos daquela versão em ordem, com as durações. O player lê a mestre primeiro e depois busca os segmentos da versão que couber na conexão.
Por que meu link .m3u8 parou de funcionar?
Porque provavelmente era uma URL assinada. Ela carrega uma assinatura e um prazo de validade, e a camada de entrega confere os dois antes de servir. Passado o prazo, o link não vale mais — é assim que se impede que um endereço copiado da página continue circulando.
Preciso criar manifestos manualmente?
Não, se você usa uma plataforma de hospedagem. O Kinescope gera os manifestos HLS (e DASH para DRM) automaticamente ao transcodificar o upload, mantém tudo em sincronia com os segmentos e serve da própria CDN.
Leia mais
- M3U — Wikipédia — origem do formato de playlist.
- Apple — HTTP Live Streaming — a especificação da playlist HLS.
- HLS — o protocolo que usa esses manifestos.
Leia também
HLS
Protocolo de streaming adaptativo da Apple. Usa manifestos .m3u8 e entrega em segmentos; suportado em praticamente todo navegador…
Ler →StreamingBitrate adaptativo (ABR)
Ajusta a qualidade do vídeo em tempo real conforme a conexão de cada espectador — reprodução fluida de 480p a 4K, sem travamentos.
Ler →EntregaCDN
Rede de servidores que entrega cada segmento de vídeo de um ponto próximo ao espectador — é o que mantém o início rápido e sem…
Ler →