Een WebM-bestand openen
- Elke computer: sleep het bestand naar een venster van Chrome, Firefox of Edge. De browser speelt het af.
- Windows, Mac, Linux: VLC-mediaspeler speelt WebM af, inclusief VP9- en AV1-video.
- Mac: QuickTime Player opent geen WebM-bestanden; gebruik een browser of VLC.
- Android: de ingebouwde speler en Chrome spelen WebM af.
- iPhone en iPad: de ondersteuning hangt af van de iOS-versie. Speelt een bestand niet af, gebruik dan de VLC-app of converteer het naar MP4.
Wil je een WebM-bestand bewerken of op een tv afspelen, dan is converteren naar MP4 meestal de makkelijkste oplossing.
WebM: een open container voor het web
WebM is een multimediacontainerformaat ontworpen voor het web. Het werd door Google uitgebracht in mei 2010 als onderdeel van het WebM-project, een initiatief om open, royaltyvrije videostandaarden voor HTML5 te vestigen. Het formaat is gebaseerd op de Matroska-container (dezelfde technologie achter MKV-bestanden), specifiek aangepast voor weblevering.
WebM-bestanden bevatten video gecodeerd met de codecs VP8, VP9 of AV1 en audio gecodeerd met Vorbis of Opus. Al deze codecs zijn open source en royaltyvrij, wat betekent dat iedereen WebM-inhoud kan coderen, decoderen en distribueren zonder octrooilicentiekosten te betalen.
Belangrijk punt: WebM is een container, geen codec. Het is de verpakking die de daadwerkelijke video- en audiogegevens bevat. De kwaliteit wordt bepaald door de codec erin (VP8, VP9 of AV1), niet door de WebM-container zelf.
De geschiedenis van WebM
Het verhaal van WebM begint met On2 Technologies, een bedrijf in videocodecs dat de VP-reeks codecs ontwikkelde. Google nam On2 over in februari 2010 voor 124,6 miljoen dollar, voornamelijk vanwege de VP8-codec. In mei 2010 maakte Google VP8 open source onder een BSD-achtige licentie en kondigde het WebM-formaat aan op de Google I/O-conferentie.
De timing was strategisch. In 2010 werd de HTML5-<video>-tag gestandaardiseerd, maar het web had geen royaltyvrije videocodec waar alle browserleveranciers het over eens konden worden. H.264 was octrooibelast via MPEG LA, waardoor het voor gratis en open source software onmogelijk was om deze op te nemen zonder licentieproblemen. Google positioneerde WebM als het open alternatief.
Chrome en Firefox namen de WebM-ondersteuning onmiddellijk over. Opera volgde. Microsofts Internet Explorer en Apples Safari hielden vol en bleven alleen H.264 ondersteunen. De „codec-oorlog" van 2010-2015 vormde het webvideolandschap dat we vandaag hebben — en leidde uiteindelijk tot de ontwikkeling van VP9 (2013) door Google en de gezamenlijke ontwikkeling van AV1 (2018) met de Alliance for Open Media.
Codecs binnen WebM
Een WebM-bestand kan een van de drie videocodecs en een van de twee audiocodecs bevatten:
| Codec | Type | Uitgebracht | Belangrijkste kenmerk |
|---|---|---|---|
| VP8 | Video | 2010 | Eerste WebM-codec; vergelijkbaar met H.264 Baseline |
| VP9 | Video | 2013 | ~30 % kleiner dan H.264 bij gelijke kwaliteit; gebruikt door YouTube voor 4K |
| AV1 | Video | 2018 | ~30 % kleiner dan VP9; open codec van de volgende generatie |
| Vorbis | Audio | 2000 | Open source lossy audio; gekoppeld aan VP8 |
| Opus | Audio | 2012 | Efficiënt van 6 tot 510 kbps; sterk bij lage bitrates |
VP9 is tegenwoordig de meest gebruikte videocodec in WebM-bestanden. YouTube nam VP9 in 2014 in gebruik en gebruikt het voor een groot deel van zijn streams, inclusief 4K, naast H.264 en AV1. VP9 bereikt ongeveer 30 % betere compressie dan H.264 bij dezelfde waargenomen kwaliteit, wat zich vertaalt in aanzienlijke bandbreedtebesparingen op de schaal van YouTube.
AV1 is de nieuwste generatie, gezamenlijk ontwikkeld door de Alliance for Open Media (AOM) — een consortium waartoe Google, Mozilla, Microsoft, Apple, Amazon, Netflix en anderen behoren. AV1 verbetert VP9 met nog eens ~30 %, maar het coderen is aanzienlijk langzamer. De browserondersteuning voor AV1 in WebM groeit snel, waarbij Chrome 70+, Firefox 67+ en Edge 79+ het allemaal ondersteunen.
Opus is een moderne open audiocodec. In openbare luistertests evenaarde of versloeg het AAC, MP3 en Vorbis bij de geteste bitrates, vooral bij lage. Opus verwerkt alles, van spraak met lage bitrate (6 kbps) tot hifi-muziek (510 kbps) met een enkele codec, waardoor het ideaal is voor webvideo.
Waar WebM wordt gebruikt
WebM is diep verankerd in het webecosysteem:
- YouTube: streamt een groot deel van zijn video in VP9, en steeds vaker in AV1. 4K-weergave in Chrome of Firefox gebruikt een van deze twee open codecs.
- Wikipedia / Wikimedia Commons: vereist WebM (of Ogg) voor alle video-uploads. MP4 is expliciet niet toegestaan vanwege zorgen over octrooilicenties.
- WebRTC: de realtime standaard achter videogesprekken in de browser vereist ondersteuning voor VP8 en H.264, en VP9 en AV1 worden veel gebruikt. Gesprekken lopen via RTP en niet in WebM-bestanden, maar opnames in de browser worden meestal als WebM opgeslagen.
- Reddit / Imgur: veel “GIF’s” op Reddit, Imgur en vergelijkbare sites zijn eigenlijk korte, stille MP4- of WebM-video’s, die veel kleiner zijn dan echte geanimeerde GIF’s.
- HTML5 <video>: WebM is een eersteklas formaat voor het HTML5-video-element, native ondersteund door Chrome, Firefox, Edge en Opera sinds hun vroegste versies.
- MediaRecorder API: wanneer webapplicaties video opnemen via de browser (schermopname, webcamopname), gebruiken de meeste browsers standaard het WebM-formaat.
Schaalperspectief: YouTube meldde in 2017 dat er dagelijks meer dan 1 miljard uur video op het platform wordt bekeken, en een groot deel daarvan wordt met VP9 gestreamd. Daarmee is VP9 een van de meest bekeken videocodecs.
Browser- & apparaatondersteuning
WebM-ondersteuning varieert per browser en apparaat:
| Platform | WebM VP9-ondersteuning | Opmerkingen |
|---|---|---|
| Chrome | Volledig | Sinds Chrome 29 (2013) |
| Firefox | Volledig | Sinds Firefox 28 (2014) |
| Edge | Volledig | Sinds Edge 79 (Chromium-gebaseerd, 2020) |
| Opera | Volledig | Sinds Opera 16 (2013) |
| Safari (macOS) | Volledig | Recente versies; oudere versies spelen WebM mogelijk niet af |
| Safari (iOS) | Volledig | Recente iOS-versies; oudere hebben mogelijk een app als VLC nodig |
| Android | Volledig | Sinds Android 4.4 (VP8 sinds 2.3) |
| Smart-tv's | Gedeeltelijk | YouTube-app gebruikt VP9; native afspelen verschilt per fabrikant |
| VLC Player | Volledig | Platformoverschrijdend, bevat VP8/VP9/AV1-decoders |
Vanaf 2026 wordt WebM VP9 wereldwijd ondersteund door meer dan 97 % van de webbrowsers (bron: Can I Use). De laatste grote achterblijver was Safari, die in latere versies WebM-ondersteuning toevoegde. Voor webontwikkelaars is WebM nu een veilig standaardformaat voor HTML5-video.
Technische structuur van WebM-bestanden
WebM is een profiel (subset) van het Matroska-containerformaat. Matroska (MKV) is een zeer flexibele, open source container die vrijwel elke codeccombinatie ondersteunt. WebM beperkt deze flexibiliteit tot een specifieke set open codecs:
- EBML-header: het eerste element in elk WebM-bestand, dat het identificeert als een Matroska-gebaseerd document met het WebM-DocType. Dit is analoog aan het
ftyp-atoom in MP4. - Segment: het hoofdelement dat alle mediagegevens bevat, georganiseerd in clusters.
- Tracks: metadata die elke track beschrijft — videoresolutie, framerate, codec-ID, audiosamplefrequentie en aantal kanalen.
- Clusters: groepen gecodeerde video- en audioframes met tijdstempels. Elke cluster bevat doorgaans 1–5 seconden media.
- Cues: een zoekindex voor willekeurige toegang, vergelijkbaar met de sampletabellen van het
moov-atoom in MP4.
WebM-bestanden kunnen worden geconfigureerd voor streaming door het Cues-element vóór de Clusters te plaatsen (analoog aan faststart in MP4). Hierdoor kan de browser binnen de video navigeren zonder eerst het hele bestand te downloaden.
WebM naar MP4 of MP4 naar WebM converteren
- MP4 naar WebM (de converter hierboven): VP9-video op CRF 30 en Opus-audio op 128 kbps. Het FFmpeg-equivalent is
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -row-mt 1 -cpu-used 3 -pix_fmt yuv420p -c:a libopus -b:a 128k output.webm. - WebM naar MP4: hercodeer naar H.264 en AAC voor apparaten zonder WebM-ondersteuning. Onze WebM-naar-MP4-converter gebruikt deze instellingen:
ffmpeg -i input.webm -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k -movflags +faststart output.mp4.
In beide richtingen wordt de video opnieuw gecodeerd, omdat WebM en MP4 normaal verschillende codecs bevatten. Bewaar het origineel als je het later nog nodig kunt hebben.