Skip to content
Novus Examples
mp412.7 KB

Intentionally Corrupt — MP4 With Bit Rot in the Media Payload

An intentionally corrupt MP4 in which 48 individual bytes inside the `mdat` payload have been inverted, leaving every box header, the index and the file length exactly as they were. Not a valid file by design. Structurally this file is perfect — it will pass any container-level validation you throw at it — and the damage is entirely in the compressed bitstream. Expect the decoder to log errors and the picture to break up and then recover at the next keyframe, which is what makes it the right fixture for testing that a transcode pipeline actually surfaces decoder errors rather than shipping a corrupted output and reporting success. The corruption sites are fixed, so the file is reproducible byte for byte.

mp4

video/mp4

12.7 KB
Integrity
intentionally corrupt
Damage
48 bytes XORed with 0xFF inside the mdat payload
Structure Intact
true
Size Unchanged
true
Bytes
13016
Expected Behaviour
parses and plays; decoder emits errors and visible artefacts

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

Specifications

Integrity
intentionally corrupt
Damage
48 bytes XORed with 0xFF inside the mdat payload
Structure Intact
true
Size Unchanged
true
Bytes
13016
Expected Behaviour
parses and plays; decoder emits errors and visible artefacts
Deterministic
fixed offsets — regenerating reproduces the same file

Testing contract

Expected to fail
Scenario
Run a container-level structural validation, then decode the file and watch the decoder's error output.
Expected result
Structural validation passes completely: every box header, the index and the 13,016-byte file length are unchanged, and only 48 bytes inside the mdat payload have been inverted with XOR 0xFF. The decode must emit errors and visible artefacts that clear at the next keyframe. A transcode pipeline that reports success on this input is swallowing decoder errors. The damage sites are fixed, so the file is byte-for-byte reproducible.

What is a .mp4 file?

MP4 (MPEG-4 Part 14) is the dominant container for digital video, holding video, audio, subtitle, and metadata tracks in a tree of typed boxes. `ftyp` declares the brand, `moov` carries the sample tables that make seeking possible, and `mdat` holds the media; when an encoder writes `moov` last, playback cannot begin until the file has fully downloaded, which a faststart remux fixes. It derives from Apple's QuickTime format, generalized by ISO into the ISOBMFF base that MOV, 3GP, and HEIF share.

How to use this file

Use an example MP4 to test box parsing and track detection, seeking, range-request streaming, and transcode or thumbnail pipelines: verifying that a file with a trailing `moov` box is still handled, and that codec support is checked per track rather than inferred from the extension.

How to use this file for testing

“Intentionally Corrupt — MP4 With Bit Rot in the Media Payload” 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: 48 bytes XORed with 0xFF inside the mdat payload. 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="mp4-bit-rot.mp4"></video>

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