poka.sh

Docs

WEBM

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

WebM video player (EBML/Matroska marker).

At a glance

Original creator Google, with the Alliance for Open Media
First published 2010
Purpose An open, royalty-free media container for the web: a restricted subset of Matroska, holding VP8 or VP9 video, Vorbis audio and WebVTT text.
Extensions .webm
Poka parser poka-webm
Viewer none: the parser draws its own preview
Depth tier Standalone parser (see Depth tiers)
Breadth tier B5 Identification (see Breadth tiers)

How much Poka reads

B5 Identification. The format is recognised and a few properties are shown (name, size, version string). Nothing of the content is decoded.

Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-webm/src/main.rs (90 lines, no tests): checks the 1A 45 DF A3 EBML magic and then searches the first 4096 bytes for the text webm or matroska, then emits POKA_MEDIA|video; playback is the browser video element (desktop preview.js, web app.js). Corpus has artcraft-effectcraft-webm-*.webm and an ESO black-hole .webm, but no test reads their structure. Judgement: B5 because no EBML element is parsed; playback is delegated. Covers WebM and Matroska-doctype files routed under .webm.

What Poka does not read

  • EBML elements are not parsed: duration, track list, codecs (VP8, VP9, AV1, Vorbis, Opus), resolution
  • title and tags, chapters and cover art are not shown
  • WebVTT subtitle tracks and multiple audio tracks (no selection)
  • DocType is not read as an element (a string search is used)
  • codecs the webview cannot decode give only an unsupported note
  • .mkv is not routed to this module

Background

Wikipedia dates the first release to 18 May 2010. The Library of Congress describes WebM as a constrained version of Matroska, itself built on EBML, without attachments and without several Matroska elements. Poka checks the EBML signature and looks for the webm or matroska document type by a string search of the first 4096 bytes, then hands the original file to the frontend, which plays it in the browser's video element.

Versions

Version Identifier Poka Note
WebM (Matroska subset) 1A 45 DF A3, DocType webm Not recorded Played by the browser, so the codecs that play are the browser's.
  • WebM audio (.weba): Has its own row in FILE_FORMATS.csv.

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • oxideav-mkv (candidate; MIT; Rust; https://github.com/OxideAV/oxideav-mkv) — Pure-Rust Matroska/WebM demuxer and muxer returning raw packets; v0.0.11, early. Licence from README badge.
  • webm-iterable (candidate; MIT; Rust; https://github.com/austinleroy/webm-iterable) — Iterator over WebM/Matroska EBML tags from any Read source, with a writer; v0.7.1.
  • symphonia-format-mkv (candidate; MPL-2.0; Rust; https://github.com/pdeljanov/Symphonia) — Pure Rust MKV/WebM demuxer (a part of project Symphonia).; v0.6.1, updated 2026-08-13; matched on lib.rs, not tested
  • nom-exif (candidate; non-standard; Rust; https://github.com/mindeng/nom-exif) — Exif/metadata parsing library written in pure Rust, both image (jpeg/heif/heic/jpg/tiff etc.) and video/audio (mov/mp4/3gp/webm/mkv/mka, etc.) files are supported.; v3.8.0, updated 2026-09-07; matched
  • matroska-demuxer (candidate; Zlib OR MIT OR Apache-2.0; Rust; https://github.com/hasenbanck/matroska-demuxer) — A demuxer that can demux Matroska and WebM container files.; v0.8.1, updated 2026-08-07; matched on lib.rs, not tested

Sources