WebM: un container aperto per il web
WebM è un formato container multimediale progettato per il web. È stato rilasciato da Google nel maggio 2010 come parte del progetto WebM, un'iniziativa per stabilire standard video aperti ed esenti da royalty per HTML5. Il formato si basa sul container Matroska (la stessa tecnologia dietro i file MKV), adattato specificamente per la distribuzione web.
I file WebM contengono video codificato con i codec VP8, VP9 o AV1 e audio codificato con Vorbis o Opus. Tutti questi codec sono open source ed esenti da royalty, il che significa che chiunque può codificare, decodificare e distribuire contenuti WebM senza pagare costi di licenza brevettuale.
Punto chiave: WebM è un container, non un codec. È la confezione che contiene i dati video e audio effettivi. La qualità è determinata dal codec all'interno (VP8, VP9 o AV1), non dal container WebM stesso.
La storia di WebM
La storia di WebM inizia con On2 Technologies, un'azienda di codec video che ha sviluppato la serie di codec VP. Google ha acquisito On2 a febbraio 2010 per 124,6 milioni di dollari, principalmente per il codec VP8. A maggio 2010, Google ha reso VP8 open source sotto una licenza in stile BSD e ha annunciato il formato WebM alla conferenza Google I/O.
Il tempismo era strategico. Nel 2010, il tag HTML5 <video> stava per essere standardizzato, ma il web non aveva un codec video esente da royalty su cui tutti i fornitori di browser potessero concordare. H.264 era gravato da brevetti attraverso MPEG LA, rendendo impossibile per software libero e open source includerlo senza problemi di licenza. Google ha posizionato WebM come alternativa aperta.
Chrome e Firefox hanno adottato il supporto WebM immediatamente. Opera ha seguito. Internet Explorer di Microsoft e Safari di Apple hanno resistito, continuando a supportare solo H.264. La «guerra dei codec» del 2010-2015 ha plasmato il panorama video web che abbiamo oggi — e alla fine ha portato Google a sviluppare VP9 (2013) e a co-sviluppare AV1 (2018) con l'Alliance for Open Media.
Codec all'interno di WebM
Un file WebM può contenere uno dei tre codec video e uno dei due codec audio:
| Codec | Tipo | Rilasciato | Caratteristica chiave |
|---|---|---|---|
| VP8 | Video | 2010 | Primo codec WebM; paragonabile a H.264 Baseline |
| VP9 | Video | 2013 | ~30 % più piccolo di H.264 a parità di qualità; usato da YouTube per il 4K |
| AV1 | Video | 2018 | ~30 % più piccolo di VP9; codec aperto di nuova generazione |
| Vorbis | Audio | 2000 | Audio con perdita open source; abbinato a VP8 |
| Opus | Audio | 2012 | Miglior codec audio con perdita disponibile; batte AAC a ogni bitrate |
VP9 è oggi il codec video più utilizzato nei file WebM. YouTube ha adottato VP9 nel 2014 e lo usa per distribuire la maggior parte dei suoi contenuti, inclusi tutti gli stream 4K. VP9 raggiunge una compressione circa il 30 % migliore di H.264 a parità di qualità percepita, il che si traduce in notevoli risparmi di banda su scala YouTube.
AV1 è l'ultima generazione, sviluppata in collaborazione dall'Alliance for Open Media (AOM) — un consorzio che include Google, Mozilla, Microsoft, Apple, Amazon, Netflix e altri. AV1 migliora VP9 di un altro ~30 %, ma la codifica è significativamente più lenta. Il supporto del browser per AV1 in WebM sta crescendo rapidamente, con Chrome 70+, Firefox 67+ ed Edge 79+ che lo supportano tutti.
Opus è ampiamente considerato il miglior codec audio con perdita esistente. Supera AAC, MP3 e Vorbis a ogni bitrate nei test di ascolto alla cieca. Opus gestisce tutto, dal parlato a basso bitrate (6 kbps) alla musica ad alta fedeltà (510 kbps) con un unico codec, rendendolo ideale per il video web.
Dove viene usato WebM
WebM è diventato profondamente integrato nell'ecosistema web:
- YouTube: distribuisce la maggior parte dei suoi contenuti video usando VP9 in container WebM. Quando guardi un video YouTube in Chrome o Firefox in 4K, quasi sicuramente stai guardando WebM.
- Wikipedia / Wikimedia Commons: richiede WebM (o Ogg) per tutti i caricamenti video. MP4 non è esplicitamente consentito a causa di problemi di licenza brevettuale.
- WebRTC: lo standard di comunicazione in tempo reale usato da Google Meet, Discord e innumerevoli app di videoconferenza usa VP8/VP9 come codec video obbligatorio, tipicamente in container WebM.
- Reddit / Imgur: molte alternative ai «GIF» su Reddit e Imgur sono in realtà video WebM VP9 silenziosi, che sono 10–50 volte più piccoli dei GIF animati reali.
- HTML5 <video>: WebM è un formato di prim'ordine per l'elemento video HTML5, supportato nativamente da Chrome, Firefox, Edge e Opera dalle loro prime versioni.
- API MediaRecorder: quando le applicazioni web registrano video attraverso il browser (registrazione dello schermo, acquisizione webcam), la maggior parte dei browser utilizza per impostazione predefinita il formato WebM.
Prospettiva di scala: Solo YouTube distribuisce oltre 1 miliardo di ore di video al giorno. La maggior parte di questo viene distribuito come VP9 WebM. Per tempo di visione, WebM è probabilmente il formato video più consumato al mondo.
Supporto browser & dispositivi
Il supporto WebM varia per browser e dispositivo:
| Piattaforma | Supporto WebM VP9 | Note |
|---|---|---|
| Chrome | Completo | Da Chrome 29 (2013) |
| Firefox | Completo | Da Firefox 28 (2014) |
| Edge | Completo | Da Edge 79 (basato su Chromium, 2020) |
| Opera | Completo | Da Opera 16 (2013) |
| Safari (macOS) | Completo | Da Safari 16.4 (marzo 2023, macOS Ventura) |
| Safari (iOS) | Completo | Da iOS 16.4 (marzo 2023) |
| Android | Completo | Da Android 4.4 (VP8 da 2.3) |
| Smart TV | Parziale | L'app YouTube usa VP9; la riproduzione nativa varia per produttore |
| Lettore VLC | Completo | Multipiattaforma, include decoder VP8/VP9/AV1 |
A partire dal 2026, WebM VP9 è supportato da oltre il 97 % dei browser web a livello globale (fonte: Can I Use). L'ultimo grande ritardatario era Safari, che ha aggiunto il supporto VP9 a marzo 2023. Per gli sviluppatori web, WebM è ora un formato predefinito sicuro per video HTML5.
Struttura tecnica dei file WebM
WebM è un profilo (sottoinsieme) del formato container Matroska. Matroska (MKV) è un container open source molto flessibile che supporta praticamente qualsiasi combinazione di codec. WebM limita questa flessibilità a un insieme specifico di codec aperti:
- Intestazione EBML: il primo elemento in ogni file WebM, che lo identifica come documento basato su Matroska con il DocType WebM. Questo è analogo all'atomo
ftypin MP4. - Segment: l'elemento radice contenente tutti i dati multimediali, organizzati in cluster.
- Tracks: metadati che descrivono ogni traccia — risoluzione video, frame rate, ID del codec, frequenza di campionamento audio e numero di canali.
- Cluster: gruppi di frame video e audio codificati con timestamp. Ogni cluster contiene tipicamente 1–5 secondi di media.
- Cues: un indice di ricerca per accesso casuale, simile alle tabelle di campioni dell'atomo
moovin MP4.
I file WebM possono essere configurati per lo streaming posizionando l'elemento Cues prima dei Cluster (analogo a faststart in MP4). Ciò consente al browser di spostarsi all'interno del video senza scaricare prima l'intero file.