Какво е WEBM файл?
Файл с разширение .webm е видео файл, базиран на отворения, безплатен файлов формат WebM. Той е проектиран за споделяне на видео в мрежата и дефинира структурата на файловия контейнер, включително видео и аудио формати. WebM е 100% безплатна, внедрявайки високо качество, базирано на отворени технологии като HTML, HTTP и TCP/IP, които са отворени за внедряване от всеки. WebM е специално проектиран за обслужване на видео в мрежата, което го прави оптимизиран за стрийминг с нисък изчислителен отпечатък. Това го прави подходящ за възпроизвеждане на видеоклипове на всяко устройство, особено на нетбуци с ниска мощност, преносими компютри и таблети.
WEBM файлов формат
Файловата структура на WebM се основава на подмножество на файловия формат на контейнера Matroska MKV. Видео потоците, налични в WebM файл, се компресират с помощта на технологиите за компресиране VP8 или VP9, които са високоефективни при компресиране. По подобен начин аудио потоците в WebM файл се компресират с помощта на кодеците Vorbis или Opus, разработени от Xiph Foundation. Всички тези видео и аудио кодеци са безплатни и могат да се използват без никакви такси.
Следват обобщените спецификации за файловия формат WebM.
| Поле | Описание | 
|---|---|
| MIME-тип | video/webm | 
| Само аудио MIME тип | audio/webm | 
| Униформен типов идентификатор | org.webmproject.webm | 
| Име на видео кодек | VP8 или VP9 | 
| Име на аудиокодек | Vorbis или Opus | 
WebM елементи
WebM, като подмножество от спецификациите на Matroska, осигурява поддръжка за някои от функционалностите на Matroska. Следва описание на поддържаните елементи.
EBML
| Име | Описание | 
|---|---|
| EBML | Задайте EBML характеристиките на данните, които да следват. Всеки EBML документ трябва да започва с това. | 
| EBMLVersion | Версията на EBML анализатора, използван за създаване на файла. | 
| EBMLReadVersion | Минималната EBML версия, която анализаторът трябва да поддържа, за да прочете този файл. | 
| EBMLMaxIDLength | Максималната дължина на идентификаторите, които ще намерите в този файл (4 или по-малко в Matroska). | 
| EBMLMaxSizeLength | Максималната дължина на размерите, които ще намерите в този файл (8 или по-малко в Matroska). Това не отменя размера на елемента, посочен в началото на елемент. Елементи, които имат указан размер, който е по-голям от позволеното от EBMLMaxSizeLength, се считат за невалидни. | 
| DocType | Низ, който описва типа документ, който следва този EBML хедър (“webm” в нашия случай). | 
| DocTypeVersion | Версията на интерпретатора на DocType, използвана за създаване на файла. | 
| DocTypeReadVersion | Минималната версия на DocType, която интерпретаторът трябва да поддържа, за да прочете този файл. | 
Глобални елементи
В момента се поддържа само елементът Void, който се използва за анулиране на повредени данни, за да се избегнат неочаквани поведения при използване на повредени данни. Съдържанието се изхвърля. Използва се и за резервиране на място в поделемент за по-късна употреба.
Сегмент
Този елемент съдържа всички други елементи от най-високо ниво (ниво 1). Обикновено Matroska файлът се състои от 1 сегмент.
Информация за търсене на мета
Следната информация за търсене се поддържа.
| Име на елемент | Описание | 
|---|---|
| SeekHead | Съдържа позицията на друг елемент от ниво 1. | 
| Seek | Съдържа единичен запис за търсене към EBML елемент. | 
| SeekID | Двоичният идентификатор, съответстващ на името на елемента. | 
| SeekPosition | Позицията на елемента в сегмента в октети (0 = първи елемент от ниво 1). |