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]
WebM video
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]
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]
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.
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.