WebM: um contêiner aberto para a web
WebM é um formato contêiner multimídia projetado para a web. Foi lançado pelo Google em maio de 2010 como parte do Projeto WebM, uma iniciativa para estabelecer padrões de vídeo abertos e livres de royalties para HTML5. O formato é baseado no contêiner Matroska (a mesma tecnologia por trás dos arquivos MKV), adaptado especificamente para entrega web.
Os arquivos WebM contêm vídeo codificado com os codecs VP8, VP9 ou AV1 e áudio codificado com Vorbis ou Opus. Todos esses codecs são de código aberto e livres de royalties, o que significa que qualquer pessoa pode codificar, decodificar e distribuir conteúdo WebM sem pagar taxas de licenciamento de patentes.
Ponto-chave: WebM é um contêiner, não um codec. É o empacotamento que contém os dados reais de vídeo e áudio. A qualidade é determinada pelo codec dentro (VP8, VP9 ou AV1), não pelo próprio contêiner WebM.
A história do WebM
A história do WebM começa com a On2 Technologies, uma empresa de codecs de vídeo que desenvolveu a série de codecs VP. O Google adquiriu a On2 em fevereiro de 2010 por 124,6 milhões de dólares, principalmente pelo codec VP8. Em maio de 2010, o Google abriu o código do VP8 sob uma licença no estilo BSD e anunciou o formato WebM na conferência Google I/O.
O momento foi estratégico. Em 2010, a tag HTML5 <video> estava sendo padronizada, mas a web não tinha um codec de vídeo livre de royalties com o qual todos os fornecedores de navegadores pudessem concordar. O H.264 estava sobrecarregado por patentes através da MPEG LA, tornando impossível para software livre e de código aberto incluí-lo sem preocupações de licenciamento. O Google posicionou o WebM como a alternativa aberta.
Chrome e Firefox adotaram o suporte ao WebM imediatamente. O Opera seguiu. O Internet Explorer da Microsoft e o Safari da Apple resistiram, continuando a suportar apenas H.264. A «guerra dos codecs» de 2010-2015 moldou o cenário de vídeo web que temos hoje — e, em última análise, levou o Google a desenvolver o VP9 (2013) e co-desenvolver o AV1 (2018) com a Alliance for Open Media.
Codecs dentro do WebM
Um arquivo WebM pode conter um dos três codecs de vídeo e um dos dois codecs de áudio:
| Codec | Tipo | Lançado | Principal característica |
|---|---|---|---|
| VP8 | Vídeo | 2010 | Primeiro codec WebM; comparável ao H.264 Baseline |
| VP9 | Vídeo | 2013 | ~30 % menor que H.264 na mesma qualidade; usado pelo YouTube para 4K |
| AV1 | Vídeo | 2018 | ~30 % menor que VP9; codec aberto de próxima geração |
| Vorbis | Áudio | 2000 | Áudio com perdas de código aberto; combinado com VP8 |
| Opus | Áudio | 2012 | Melhor codec de áudio com perdas disponível; supera AAC em todos os bitrates |
VP9 é o codec de vídeo mais amplamente utilizado em arquivos WebM hoje. O YouTube adotou o VP9 em 2014 e o usa para entregar a maior parte do seu conteúdo, incluindo todas as transmissões em 4K. O VP9 alcança compressão aproximadamente 30 % melhor que o H.264 com a mesma qualidade percebida, o que se traduz em economias significativas de largura de banda na escala do YouTube.
AV1 é a geração mais recente, desenvolvida colaborativamente pela Alliance for Open Media (AOM) — um consórcio que inclui Google, Mozilla, Microsoft, Apple, Amazon, Netflix e outros. O AV1 melhora o VP9 em mais ~30 %, mas a codificação é significativamente mais lenta. O suporte do navegador para AV1 em WebM está crescendo rapidamente, com Chrome 70+, Firefox 67+ e Edge 79+ suportando-o.
Opus é amplamente considerado o melhor codec de áudio com perdas existente. Ele supera AAC, MP3 e Vorbis em todos os bitrates em testes de audição às cegas. O Opus lida com tudo, desde fala de baixo bitrate (6 kbps) até música de alta fidelidade (510 kbps) com um único codec, tornando-o ideal para vídeo web.
Onde o WebM é usado
O WebM tornou-se profundamente incorporado no ecossistema web:
- YouTube: serve a maior parte de seu conteúdo de vídeo usando VP9 em contêineres WebM. Quando você assiste a um vídeo do YouTube no Chrome ou Firefox em 4K, quase certamente está assistindo WebM.
- Wikipedia / Wikimedia Commons: requer WebM (ou Ogg) para todos os uploads de vídeo. MP4 explicitamente não é permitido devido a preocupações com licenciamento de patentes.
- WebRTC: o padrão de comunicação em tempo real usado pelo Google Meet, Discord e inúmeros aplicativos de videoconferência usa VP8/VP9 como seu codec de vídeo obrigatório, tipicamente em contêineres WebM.
- Reddit / Imgur: muitas alternativas «GIF» no Reddit e Imgur são, na verdade, vídeos WebM VP9 silenciosos, que são 10–50 vezes menores do que GIFs animados reais.
- HTML5 <video>: WebM é um formato de primeira classe para o elemento de vídeo HTML5, suportado nativamente pelo Chrome, Firefox, Edge e Opera desde suas primeiras versões.
- API MediaRecorder: quando aplicações web gravam vídeo através do navegador (gravação de tela, captura de webcam), a maioria dos navegadores usa o formato WebM por padrão.
Perspectiva de escala: O YouTube sozinho entrega mais de 1 bilhão de horas de vídeo por dia. A maior parte disso é entregue como VP9 WebM. Por tempo de visualização, o WebM é indiscutivelmente o formato de vídeo mais consumido do mundo.
Suporte a navegadores & dispositivos
O suporte ao WebM varia por navegador e dispositivo:
| Plataforma | Suporte WebM VP9 | Observações |
|---|---|---|
| Chrome | Completo | Desde o Chrome 29 (2013) |
| Firefox | Completo | Desde o Firefox 28 (2014) |
| Edge | Completo | Desde o Edge 79 (baseado em Chromium, 2020) |
| Opera | Completo | Desde o Opera 16 (2013) |
| Safari (macOS) | Completo | Desde o Safari 16.4 (março de 2023, macOS Ventura) |
| Safari (iOS) | Completo | Desde o iOS 16.4 (março de 2023) |
| Android | Completo | Desde o Android 4.4 (VP8 desde 2.3) |
| Smart TVs | Parcial | O aplicativo do YouTube usa VP9; a reprodução nativa varia por fabricante |
| VLC Player | Completo | Multiplataforma, inclui decodificadores VP8/VP9/AV1 |
Em 2026, o WebM VP9 é suportado por mais de 97 % dos navegadores web globalmente (fonte: Can I Use). O último grande retardatário foi o Safari, que adicionou suporte ao VP9 em março de 2023. Para desenvolvedores web, o WebM é agora um formato padrão seguro para vídeo HTML5.
Estrutura técnica dos arquivos WebM
WebM é um perfil (subconjunto) do formato contêiner Matroska. Matroska (MKV) é um contêiner de código aberto muito flexível que suporta praticamente qualquer combinação de codecs. O WebM restringe essa flexibilidade a um conjunto específico de codecs abertos:
- Cabeçalho EBML: o primeiro elemento em cada arquivo WebM, identificando-o como um documento baseado em Matroska com o DocType WebM. Isso é análogo ao átomo
ftypno MP4. - Segment: o elemento raiz contendo todos os dados de mídia, organizados em clusters.
- Tracks: metadados descrevendo cada faixa — resolução do vídeo, taxa de quadros, ID do codec, taxa de amostragem de áudio e número de canais.
- Clusters: grupos de quadros de vídeo e áudio codificados com carimbos de data/hora. Cada cluster normalmente contém 1–5 segundos de mídia.
- Cues: um índice de busca para acesso aleatório, semelhante às tabelas de amostras do átomo
moovno MP4.
Os arquivos WebM podem ser configurados para streaming colocando o elemento Cues antes dos Clusters (análogo ao faststart no MP4). Isso permite que o navegador navegue dentro do vídeo sem baixar o arquivo inteiro primeiro.