O que é streaming de vídeo?

Streaming é a entrega de áudio e vídeo pela internet, ao vivo ou sob demanda. Este guia explica essa entrega por dentro. Ele se apoia na documentação de um fabricante e em normas técnicas, nas versões lidas em 2026.

A Apple chama a sua tecnologia de HTTP Live Streaming, ou HLS. Segundo a empresa, o HLS envia áudio e vídeo, ao vivo e sob demanda, a aparelhos da Apple e a computadores. Segundo a Apple, ele usa o mesmo protocolo que sustenta a web, isto é, as regras de conversa entre aparelhos na internet.

Por isso, o conteúdo pode ficar em servidores web comuns (computadores que guardam e enviam arquivos) e em redes de distribuição de conteúdo.

Nos exemplos publicados pela Apple, os arquivos com a extensão .M3U8 servem de índice das transmissões. Já os arquivos .ts são os segmentos de mídia, trechos do vídeo. A empresa oferece ainda uma ferramenta, a Media Streaming Validator Tool, para validar transmissões em HLS.

Como a qualidade se adapta e de que partes o vídeo é feito?

Segundo a Apple, o HLS foi projetado para ser confiável e se adapta de forma dinâmica às condições da rede. Para isso, otimiza a reprodução conforme a velocidade disponível, em conexões com fio e sem fio.

A qualidade também pode ser adaptada de outra forma. Na norma Media Source Extensions, a MSE, o código da página, isto é, o programa que roda nela, acrescenta dados de mídia. Esse código pode adaptar a qualidade do que acrescenta, com base no desempenho do sistema e em outros fatores.

O segmento de inicialização é uma sequência de bytes, ou seja, de unidades de dados do computador. Ela traz todas as informações necessárias para decodificar, isto é, transformar em imagem e som, uma série de segmentos de mídia. Essas informações incluem os dados de inicialização do codec, o componente que codifica e decodifica o áudio e o vídeo.

O segmento de mídia traz dados empacotados e com marcação de tempo para um trecho da linha do tempo da mídia.

A norma define ainda o ponto de acesso aleatório, o random access point. É uma posição, dentro de um segmento de mídia, onde a decodificação e a reprodução contínua podem começar sem depender de dados anteriores do segmento.

A norma também trata de mudanças no tamanho do quadro de vídeo (cada imagem que compõe o vídeo). Nesse caso, o navegador precisa suportar a reprodução contínua, o seamless playback.

O que o navegador faz com os segmentos?

A MSE é uma norma publicada pelo World Wide Web Consortium, o W3C. Ela amplia o elemento de mídia. Esse elemento é a parte da página que toca áudio e vídeo. Com isso, o código da página, escrito em JavaScript, pode gerar fluxos de mídia para reprodução. Segundo o texto, isso facilita usos como o streaming adaptativo e o deslocamento no tempo de transmissões ao vivo, o time shifting.

O MediaSource representa uma fonte de dados de mídia para o elemento. A página cria o MediaSource e o liga ao elemento. Depois, usa peças chamadas SourceBuffer para acrescentar dados à fonte. O elemento busca esses dados no MediaSource quando precisa deles durante a reprodução.

A norma exige que o navegador aceite cada uma destas duas configurações, mas não exige que ele aceite as duas ao mesmo tempo. Na primeira, um único SourceBuffer cuida de uma faixa de áudio e/ou de uma faixa de vídeo. Na segunda, dois SourceBuffers dividem o trabalho: um para a faixa de áudio e outro para a de vídeo.

Entre os objetivos da MSE está deixar o JavaScript montar o fluxo, qualquer que seja a forma de obter a mídia. Outro objetivo é não exigir nenhum formato ou codec em particular. Outro é definir um modelo para juntar trechos e guardar dados temporariamente. Ele deve facilitar o streaming adaptativo, a inserção de anúncios, o deslocamento no tempo e a edição de vídeo.

Em novembro de 2016, a MSE foi publicada como Recomendação do W3C. O rascunho de trabalho da MSE lido em 2026 seguia a trilha que leva a esse status. Esse rascunho é um texto em andamento, que pode mudar a qualquer momento.

Desde então, a MSE ganhou o ManagedMediaSource, voltado a streaming com economia de energia e à limpeza ativa do conteúdo guardado pelo navegador. Ele é um MediaSource que gerencia ativamente o conteúdo da memória. Ao contrário do MediaSource comum, o navegador pode descartar esse conteúdo por qualquer motivo.

Os motivos dependem da implementação, isto é, de como cada navegador põe a norma em prática. Eles incluem limites de memória ou das peças do aparelho. A norma pede que os desenvolvedores não tentem adivinhar por que, como ou quando o conteúdo é descartado. Em vez disso, eles devem escrever o código supondo que o conteúdo é removido de forma constante e aleatória. Assim se evitam travamentos na reprodução.

Com o ManagedMediaSource, o navegador também avalia, o tempo todo, se já tem dados suficientes para tocar sem interrupção. Ele verifica ainda se consegue buscar novos dados de modo eficiente em energia.

O que é um codec?

Um codec é o componente que codifica e decodifica áudio, vídeo e imagens. A norma WebCodecs define meios para o código da página usar codecs que já existem. O texto afirma que ela não especifica nem exige nenhum codec em particular. Cada implementador, isto é, quem põe a norma em prática, é livre para suportar qualquer combinação de codecs ou nenhum.

A norma também incentiva quem escreve a página a verificar antes se há suporte.

A WebCodecs define o key chunk, um trecho codificado que não depende de nenhuma outra imagem do vídeo para ser decodificado. Em inglês, ele também é chamado de key frame, ou quadro-chave.

Ao configurar um codec, o navegador pode reservar recursos do aparelho. A norma cita a memória do processador e da placa de vídeo e o uso exclusivo de peças feitas para decodificar e codificar. Esses recursos podem se esgotar rapidamente e devem ser liberados assim que deixarem de ser usados.

Como o conteúdo é protegido?

A norma Encrypted Media Extensions, a EME, amplia o elemento de mídia com recursos para controlar a reprodução de conteúdo criptografado. Conteúdo criptografado é o que foi embaralhado para que só abra com uma chave. Os usos vão da decifração simples, o ato de abrir o conteúdo com a chave, até o vídeo de alto valor. Para esse último, o navegador precisa ter uma implementação adequada.

A EME não define um sistema de proteção de conteúdo nem de gestão de direitos digitais, o Digital Rights Management. Ela define uma forma comum de descobrir, escolher e usar esses sistemas. Apenas o sistema Clear Key é obrigatório, como base comum. Ele decifra o conteúdo com chaves abertas, que não são criptografadas.

O Content Decryption Module, o CDM, é o componente que oferece funções, entre elas a decifração, para um ou mais sistemas de chaves. Sistema de chaves é o nome genérico que a norma dá a um mecanismo de decifração ou a um fornecedor de proteção de conteúdo. Cada licença é própria de um sistema de chaves e inclui uma ou mais chaves. Cada chave tem um identificador.

A página controla a troca de licenças e chaves. A norma deixa para quem escreve a página funções como a autenticação e a autorização. Autenticar é confirmar quem é o usuário, e autorizar é definir o que ele pode acessar.

Segundo o texto, a página escolhe o sistema de proteção e controla a troca de licenças, sem mudar cada navegador. Segundo o texto, isso permite ao provedor de conteúdo criar uma única solução para todos os dispositivos.

Como boa prática, a norma recomenda criptografar com uma chave diferente cada conjunto de fluxos que exige uma regra de uso diferente. Quando as regras diferem entre duas resoluções de vídeo (dois níveis de nitidez da imagem), cada conjunto recebe a sua chave. Assim, as regras podem ser aplicadas de forma independente.

Uma chave nem sempre pode ser usada. Ela não serve se a licença expirou. Mesmo com a licença válida, a chave não serve se outras condições de uso não estiverem satisfeitas.

Há um detalhe prático. Segundo a versão de 2026 da norma, muitas implementações só suportavam decifrar mídia fornecida por meio da MSE.

O que muda e o que fica de fora?

As duas normas ganharam recursos depois de virarem Recomendação. A MSE foi publicada como Recomendação do W3C em novembro de 2016, e a EME, em setembro de 2017. Em 2026, as versões lidas para este guia eram rascunhos de trabalho, textos que podem mudar a qualquer momento. A da MSE era de 7 de agosto e a da EME, de 7 de julho.

O rascunho da MSE traz o aviso de que a norma não é estável. A WebCodecs, na versão de 21 de setembro de 2026, também era um rascunho. O texto diz que ele pode ser atualizado, substituído ou tornado obsoleto a qualquer momento.

Nas versões de 2026, entre os editores da MSE havia pessoas ligadas à Apple e à Netflix. Entre os da EME, havia pessoas ligadas à Google e à Netflix.

Este guia trata da técnica. Ele não cobre catálogos, preços, direitos de exibição nem a competição entre empresas.