Skip to content
Novus Examples
webm6.3 KB

Intentionally Corrupt — WebM Truncated Mid-Stream

An intentionally corrupt WebM, VP9 in Matroska, cut to 45% of its bytes. Not a valid file by design. The browser-facing member of this group. A truncated WebM starts playing in an HTML5 <video> element and then fires an `error` event mid-stream, which is a genuinely awkward state to handle: your player has already reported success, already hidden the spinner, and already told the user the duration. Use it to check that the error path is wired to something more useful than a frozen frame.

webm

video/webm

6.3 KB
Integrity
intentionally corrupt
Damage
truncated to 45% of its bytes
Video Codec
VP9
Header Intact
true
Original Bytes
14237
Expected Behaviour
browser fires a media error event partway through playback

Binary webm: no in-browser preview. Download it above to open in a compatible application.

Specifications

Integrity
intentionally corrupt
Damage
truncated to 45% of its bytes
Video Codec
VP9
Header Intact
true
Original Bytes
14237
Expected Behaviour
browser fires a media error event partway through playback

Testing contract

Expected to fail
Scenario
Load the file into an HTML5 <video> element and listen for both loadedmetadata and error.
Expected result
Metadata loads and playback starts, then the element fires an error event part way through: the file is 6,406 of the original 14,237 bytes of VP9-in-Matroska. The awkward state is the point - the player has already reported success, hidden its spinner and published a duration - so this fixture checks that the error path does something better than freezing on the last decoded frame.

What is a .webm file?

WebM is a deliberately narrow profile of Matroska, restricted to codecs anyone may implement royalty-free. It keeps Matroska's EBML structure but permits only VP8, VP9, or AV1 video with Vorbis or Opus audio, which is what made it the open counterpart to MP4 in an HTML5 `<video>` element. Google announced it at I/O in 2010 alongside the newly open-sourced VP8 and added VP9 and Opus in 2013. That restriction is also its limit: a WebM cannot carry H.264 or AAC at all.

How to use this file

Use an example WebM to test HTML5 `<video>` playback, EBML demuxing, and VP8/VP9 decoding, checking that a converter turning an MP4 into WebM re-encodes rather than attempting a stream copy, since neither H.264 nor AAC has any place in the container.

How to use this file for testing

“Intentionally Corrupt — WebM Truncated Mid-Stream” is a deterministic Novus Examples fixture for Error handling, Video QA, Video codecs. Deliberately corrupt and invalid files, clearly labelled, for testing how your tool fails.

Documented properties for this file: damage: truncated to 45% of its bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.

Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.

Code examples

<video controls preload="metadata" width="640" src="webm-truncated.webm"></video>

Generated by generation/video_accessibility.py. Free for any use, no attribution required, license.