WebM és un format multimèdia obert i lliure desenvolupat per Google i orientat per usar-se amb HTML5. És un projecte de programari lliure, sota una llicència permissiva similar a la llicència BSD. Està compost pel códec de vídeo VP8 (desenvolupat originalment per On2 Technologies) i el códec d'àudio Vorbis dins d'un contenidor multimèdia Matroska.[1][2]
Va ser anunciat sota el marc de la conferència Google I/O el maig de 2010 i compta amb contribucions i suport oficial d'empreses com «Mozilla, Opera, Google, a part d'altres 40 editors i fabricants de programari i maquinari» en un esforç combinat per a utilitzar el VP8 com format multimèdia estàndard en el llenguatge web HTML5.[3][4][5][6]Microsoft va anunciar que la seva més recent versió del navegador Internet Explorer 9 també seria capaç de suportar els fitxers WebM sempre que el códec VP8 estigués instal·lat en l'equip.[7] El códec es pot usar en la versió de YouTube HTML5, activada per defecte. A més a més, Adobe va declarar que el seu programari Flash Player rebria una actualització per afegir suport al nou format.[8]
Nomenclatura
Nom del contenidor del format: WebM
Extensió de fitxer: .webm
Tipus ACARONI: video/webm
Tipus ACARONI només per a l'àudio: àudio/webm
Nom del Códec de Vídeo: VP8
Nom del Códec d'Àudio: Vorbis
Directrius per al desenvolupament de WebM
Directrius per WebM
Aquestes directrius s'han creat actualment per a transmissions de fitxers sobre una connexió HTTP, i indiquen les àrees en les quals WebM és més estricte, en comparació de l'especificació més permissiva de Matroska.[9]
Directrius per al multiplexor i demultiplexor
El tipus de document ha de ser "WebM".
El còdec de vídeo ha de ser VP8.
El còdec ID ha de ser "V_VP8".
No hi ha dades per CodecPrivate per VP8.
El còdec d'àudio ha de ser Vorbis.
El projecte desenvoluparà una orientació específica sobre com Vorbis ha de ser desplegat en WebM (perfil, el bitrate, canals)
La versió inicial de WebM no suporta subtítols.
WHATWG / W3C RFC proporcionarà orientació sobre els subtítols HTML5 <video> en un futur pròxim. WebM té la intenció de seguir aquesta orientació.
DocReadTypeVersion ha de seguir l'especificació Matroska.
Directrius per al multiplexor
Aquestes directrius tenen l'objectiu de fomentar la coherència a través de fitxers WebM en el món real.
WebM ha de contenir l'element SeekHead.
Motiu: Permet al client saber si el fitxer conté un element Cues, un element que aglutina una altra sèrie d'elements per fer la cerca més ràpida.
Els fitxers WebM han d'incloure un únic element Cues de fotogrames.
L'element Cues deu contenir únicament fotogrames de vídeo, per disminuir la mida de la capçalera del fitxer.
Es recomana que Cues es trobi abans que les agrupacions, perquè el client pugui accedir a un punt en les dades que encara no s'ha descarregat en una sola operació de recerca.
Tots els codis de temps absoluts (bloc + agrupació) han de ser estrictament creixents.
Tots els codis de temps s'associen a l'hora d'inici del bloc.
L'element TimecodeScale s'ha d'establir en un valor predeterminat de 1.000.000 nanosegons.
Motiu: Permet que cada agrupació tingui blocs amb valors positius de fins a 32.767 segons.
Els fotogrames clau s'han de col·locar al principi de les agrupacions.
Al tenir fotogrames clau a l'inici de les agrupacions es fa la cerca més ràpida i fàcil per a l'usuari.
Els blocs d'àudio que contenen el codi de temps del fotograma clau han de trobar en la mateixa agrupació que el bloc de fotogrames clau de vídeo.
Els blocs d'àudio que contenen el mateix codi de temps absolut que els blocs de vídeo han de ser escrits abans dels blocs de vídeo.
Els fitxers WebM només han de suportar píxels de l'element DisplayUnit.
Els fotogrames en VP8 han de ser multiplexats en un element SimpleBlock.
Directrius per al demultiplexor
El demultiplexor només ha d'obrir els fitxers de tipus WebM.
Una vegada que el demultiplexor validi la capçalera i les metadades del fitxer WebM i el reproductor comenci la reproducció del fitxer, el demultiplexor ha de fer tot el possible per analitzar el fitxer, de manera que la reproducció es pugui produir el més correctament possible.
La cerca es desactivarà si el fitxer WebM no té un fotograma "element de sincronisme".
El projecte està considerant suportar una cerca sense la necessitat de tenir element de sincronisme.