Skip to content
Novus Examples

The same footage across codecs, containers, and pixel formats

One source encoded as H.264, HEVC, AV1, VP9, MJPEG, and a ProRes-compatible mezzanine, across 8/10/12-bit and 4:2:0/4:2:2/4:4:4, for testing decoder support, transcode pipelines, and container remuxing.

107 of 107 files
Preview of Base Plate — Gradient — Smooth Sky With Hue Drift
mp4
45.5 KB
Actual file preview for Base Plate — Gradient — Smooth Sky With Hue Drift

Base Plate — Gradient — Smooth Sky With Hue Drift

A smooth vertical gradient whose hue drifts across the clip, with one soft glow for structure. Almost no high-frequency detail, so it provokes banding and blocking in exactly the way flat skies do in real footage — the hardest case for a low-bitrate encoder. One of eight shared base plates: every AI-video suite in this library degrades one of these rather than inventing its own footage, so results across suites are comparable. Encoded at CRF 14 — well above the house CRF 30 — because a reference compressed as hard as the material under test puts the measurement floor above the effect being measured.

File
MP4 · Base Plates · 640x360
Use case
Video denoiseVideo codecs+1· Conversion set
Preview of Base Plate — Colour — 24-Patch Chart in Motion
mp4
31.4 KB
Actual file preview for Base Plate — Colour — 24-Patch Chart in Motion

Base Plate — Colour — 24-Patch Chart in Motion

A 24-patch chart drifting slowly so it is genuinely moving footage rather than a still. Patch values are fixed and documented, so colourisation and colour-management output can be measured per patch. The values are fictional and not a reproduction of any licensed reference chart. One of eight shared base plates: every AI-video suite in this library degrades one of these rather than inventing its own footage, so results across suites are comparable. Encoded at CRF 14 — well above the house CRF 30 — because a reference compressed as hard as the material under test puts the measurement floor above the effect being measured.

File
MP4 · Base Plates · 640x360
Use case
Video codecsVideo QA· Conversion set
Preview of Base Plate — Text — Scrolling Terminal UI
mp4
37.7 KB
Actual file preview for Base Plate — Text — Scrolling Terminal UI

Base Plate — Text — Scrolling Terminal UI

Scrolling monospaced terminal output with a blinking cursor. Thin high-contrast glyph edges are what chroma subsampling and low bitrates destroy first, and legibility after processing is a pass/fail signal that needs no metric. One of eight shared base plates: every AI-video suite in this library degrades one of these rather than inventing its own footage, so results across suites are comparable. Encoded at CRF 14 — well above the house CRF 30 — because a reference compressed as hard as the material under test puts the measurement floor above the effect being measured.

File
MP4 · Base Plates · 640x360
Use case
Video codecsVideo QA· Conversion set
Preview of Compression Reference — gradient-sky at CRF 14
mp4
45.5 KB
Actual file preview for Compression Reference — gradient-sky at CRF 14

Compression Reference — gradient-sky at CRF 14

The high-quality reference for the gradient-sky compression ladder, at CRF 14. Each clip in this group is the SAME source frames encoded at a progressively higher quantiser, so the only variable is the encoder setting. Useful both for artefact-removal models and for calibrating a quality metric against settings whose visual cost is already known.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — gradient-sky at CRF 28
mp4
26.2 KB
Actual file preview for Compression Input — gradient-sky at CRF 28

Compression Input — gradient-sky at CRF 28

The gradient-sky plate at CRF 28 — mild artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — gradient-sky at CRF 36
mp4
20.8 KB
Actual file preview for Compression Input — gradient-sky at CRF 36

Compression Input — gradient-sky at CRF 36

The gradient-sky plate at CRF 36 — clearly visible artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — gradient-sky at CRF 44
mp4
14.7 KB
Actual file preview for Compression Input — gradient-sky at CRF 44

Compression Input — gradient-sky at CRF 44

The gradient-sky plate at CRF 44 — severe artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — gradient-sky at CRF 51
mp4
10.8 KB
Actual file preview for Compression Input — gradient-sky at CRF 51

Compression Input — gradient-sky at CRF 51

The gradient-sky plate at CRF 51 — extreme — the codec's limit artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as banding across the smooth gradient, which is the artefact viewers notice first and metrics score most poorly.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Reference — text-motion at CRF 14
mp4
37.7 KB
Actual file preview for Compression Reference — text-motion at CRF 14

Compression Reference — text-motion at CRF 14

The high-quality reference for the text-motion compression ladder, at CRF 14. Each clip in this group is the SAME source frames encoded at a progressively higher quantiser, so the only variable is the encoder setting. Useful both for artefact-removal models and for calibrating a quality metric against settings whose visual cost is already known.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — text-motion at CRF 28
mp4
17.9 KB
Actual file preview for Compression Input — text-motion at CRF 28

Compression Input — text-motion at CRF 28

The text-motion plate at CRF 28 — mild artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as ringing around glyph edges, where legibility gives a pass/fail signal that needs no metric.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — text-motion at CRF 36
mp4
12.5 KB
Actual file preview for Compression Input — text-motion at CRF 36

Compression Input — text-motion at CRF 36

The text-motion plate at CRF 36 — clearly visible artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as ringing around glyph edges, where legibility gives a pass/fail signal that needs no metric.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — text-motion at CRF 44
mp4
8.1 KB
Actual file preview for Compression Input — text-motion at CRF 44

Compression Input — text-motion at CRF 44

The text-motion plate at CRF 44 — severe artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as ringing around glyph edges, where legibility gives a pass/fail signal that needs no metric.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — text-motion at CRF 51
mp4
5.2 KB
Actual file preview for Compression Input — text-motion at CRF 51

Compression Input — text-motion at CRF 51

The text-motion plate at CRF 51 — extreme — the codec's limit artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the damage shows as ringing around glyph edges, where legibility gives a pass/fail signal that needs no metric.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Reference — detail-chart at CRF 14
mp4
68.3 KB
Actual file preview for Compression Reference — detail-chart at CRF 14

Compression Reference — detail-chart at CRF 14

The high-quality reference for the detail-chart compression ladder, at CRF 14. Each clip in this group is the SAME source frames encoded at a progressively higher quantiser, so the only variable is the encoder setting. Useful both for artefact-removal models and for calibrating a quality metric against settings whose visual cost is already known.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — detail-chart at CRF 28
mp4
38.8 KB
Actual file preview for Compression Input — detail-chart at CRF 28

Compression Input — detail-chart at CRF 28

The detail-chart plate at CRF 28 — mild artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — detail-chart at CRF 36
mp4
20.7 KB
Actual file preview for Compression Input — detail-chart at CRF 36

Compression Input — detail-chart at CRF 36

The detail-chart plate at CRF 36 — clearly visible artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — detail-chart at CRF 44
mp4
10.8 KB
Actual file preview for Compression Input — detail-chart at CRF 44

Compression Input — detail-chart at CRF 44

The detail-chart plate at CRF 44 — severe artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Compression Input — detail-chart at CRF 51
mp4
7.1 KB
Actual file preview for Compression Input — detail-chart at CRF 51

Compression Input — detail-chart at CRF 51

The detail-chart plate at CRF 51 — extreme — the codec's limit artefacts. Encoded from the original frames rather than transcoded from the reference, so it carries exactly one generation of loss and the comparison is clean. On this plate the fine wedges collapse first, showing exactly which spatial frequencies the quantiser discarded.

File
MP4 · Compress · 640x360
Use case
Compression artefactsVideo codecs+1· Conversion set
Preview of Codec — H.264 / AVC
mp4
23.2 KB
Actual file preview for Codec — H.264 / AVC

Codec — H.264 / AVC

The shared pan-city base plate encoded with H.264 (libx264). The universal baseline — decodes everywhere, hardware-accelerated on essentially every device shipped this decade. If a pipeline handles only one codec, this is it. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MP4 · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — HEVC / H.265
mp4
19.6 KB
Actual file preview for Codec — HEVC / H.265

Codec — HEVC / H.265

The shared pan-city base plate encoded with HEVC (libx265). Roughly half the bitrate of H.264 at the same quality, but patent licensing kept it out of browsers. Tagged hvc1 rather than hev1, which is what Safari and QuickTime require — the wrong tag is a common cause of a file that plays everywhere except on Apple hardware. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MP4 · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — AV1
mp4
11.5 KB
Actual file preview for Codec — AV1

Codec — AV1

The shared pan-city base plate encoded with AV1 (libaom-av1). Royalty-free and now decoded by every current browser. Encoding is far slower than H.264, which is why this fixture uses a fast preset; the bitstream is standard regardless. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MP4 · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — VP9
webm
19.7 KB
Actual file preview for Codec — VP9

Codec — VP9

The shared pan-city base plate encoded with VP9 (libvpx-vp9). Google's royalty-free predecessor to AV1, and still the workhorse of WebM delivery. Plays natively in every major browser. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
WEBM · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — VP8
webm
45.3 KB
Actual file preview for Codec — VP8

Codec — VP8

The shared pan-city base plate encoded with VP8 (libvpx). The first WebM codec, now legacy but still what MediaRecorder emits by default in several browsers — so it turns up in user-generated uploads far more often than its age suggests. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
WEBM · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — Theora
ogv
99.7 KB
Actual file preview for Codec — Theora

Codec — Theora

The shared pan-city base plate encoded with Theora (libtheora). The original open web video codec, in an Ogg container. Largely historical, but still the fallback path in older HTML5 players and a good test of whether a pipeline's format detection is driven by content rather than by a hardcoded list. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
OGV · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — MPEG-4 Part 2
avi
90.4 KB
Actual file preview for Codec — MPEG-4 Part 2

Codec — MPEG-4 Part 2

The shared pan-city base plate encoded with MPEG-4 Part 2 (DivX/Xvid-compatible). The DivX/Xvid era, tagged XVID in an AVI. Predates H.264 and is still what a great deal of archived material is stored as, so ingest pipelines meet it constantly. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
AVI · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — MPEG-2
mpg
116 KB
Actual file preview for Codec — MPEG-2

Codec — MPEG-2

The shared pan-city base plate encoded with MPEG-2 (mpeg2video). The DVD and broadcast codec. Intra-heavy and inefficient by modern standards, but it is the format broadcast and archive workflows are still built around. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MPG · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — Motion JPEG
avi
407.8 KB
Actual file preview for Codec — Motion JPEG

Codec — Motion JPEG

The shared pan-city base plate encoded with MJPEG. Every frame is an independent JPEG, with no inter-frame prediction at all. Large, but it makes any frame a clean cut point, which is why cameras and capture cards still emit it. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
AVI · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — FFV1 (Mathematically Lossless)
mkv
518.7 KB
Actual file preview for Codec — FFV1 (Mathematically Lossless)

Codec — FFV1 (Mathematically Lossless)

The shared pan-city base plate encoded with FFV1 level 3 (lossless). Mathematically lossless: decoding reproduces the source pixels bit for bit. Used for archival preservation, and the right reference when you need to prove a processing step, not a codec, caused a change. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MKV · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — ProRes-Compatible Mezzanine
mov
308.8 KB
Actual file preview for Codec — ProRes-Compatible Mezzanine

Codec — ProRes-Compatible Mezzanine

The shared pan-city base plate encoded with FFmpeg prores_ks, profile 0 (proxy). An intra-only 10-bit 4:2:2 mezzanine written by FFmpeg's prores_ks encoder — the interchange shape editorial workflows expect. Described as ProRes-COMPATIBLE deliberately: this is FFmpeg's independent implementation, not Apple's encoder. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
MOV · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — Windows Media Video 8
wmv
91.2 KB
Actual file preview for Codec — Windows Media Video 8

Codec — Windows Media Video 8

The shared pan-city base plate encoded with WMV2. Windows Media in an ASF container. Long obsolete, but it is what a large amount of corporate and archival material was encoded as, and few non-FFmpeg tools read it. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
WMV · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — Sorenson Spark (FLV1)
flv
93.4 KB
Actual file preview for Codec — Sorenson Spark (FLV1)

Codec — Sorenson Spark (FLV1)

The shared pan-city base plate encoded with FLV1 / Sorenson Spark. The Flash video codec. Entirely historical for delivery, but FLV files persist throughout media archives and legacy CMS exports. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
FLV · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Codec — MS-MPEG-4 v3
avi
87.6 KB
Actual file preview for Codec — MS-MPEG-4 v3

Codec — MS-MPEG-4 v3

The shared pan-city base plate encoded with MS-MPEG-4 v3 (msmpeg4v3). Microsoft's non-standard MPEG-4 Part 2 variant — the 'DivX 3' bitstream. Deliberately incompatible with the standard decoder, which makes it a sharp test of whether a pipeline identifies codecs from the bitstream or from the FourCC. Every clip in this group carries the identical picture, so a decoder-support matrix built from them isolates the codec as the only variable.

File
AVI · Codecs · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — MP4 (ISO BMFF)
mp4
23.2 KB
Actual file preview for Container — MP4 (ISO BMFF)

Container — MP4 (ISO BMFF)

One H.264 elementary stream wrapped in MP4 (ISO BMFF). Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. The ISO base media format, and the default for web delivery. Supports faststart, which moves the index to the front so playback can begin before the file has finished downloading.

File
MP4 · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — Matroska
mkv
22.8 KB
Actual file preview for Container — Matroska

Container — Matroska

One H.264 elementary stream wrapped in Matroska. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. The most permissive container in common use: any codec, unlimited tracks, chapters, attachments. Not natively playable in Safari, which is its main practical limitation.

File
MKV · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — QuickTime
mov
23.1 KB
Actual file preview for Container — QuickTime

Container — QuickTime

One H.264 elementary stream wrapped in QuickTime. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. Apple's container, and the direct ancestor of MP4 — the two share the same atom structure, which is why remuxing between them is nearly free.

File
MOV · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — AVI
avi
41.7 KB
Actual file preview for Container — AVI

Container — AVI

One H.264 elementary stream wrapped in AVI. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. Microsoft's 1992 container. No B-frame timestamp support and a 4 GB practical limit, but enormous amounts of archived material still live in it.

File
AVI · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — MPEG Transport Stream
ts
28.5 KB
Actual file preview for Container — MPEG Transport Stream

Container — MPEG Transport Stream

One H.264 elementary stream wrapped in MPEG Transport Stream. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. The broadcast and HLS-segment container. Fixed 188-byte packets and no global index, so it can be cut at any packet boundary and still decode — which is exactly why streaming uses it.

File
TS · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — M4V
m4v
23.2 KB
Actual file preview for Container — M4V

Container — M4V

One H.264 elementary stream wrapped in M4V. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. MP4 under Apple's alternative extension. Byte-identical structure; the extension exists purely so iTunes could distinguish video, and it is a good test of extension-driven format detection.

File
M4V · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Container — 3GP
3gp
23 KB
Actual file preview for Container — 3GP

Container — 3GP

One H.264 elementary stream wrapped in 3GP. Every file in this group was produced from the SAME encode with a stream copy, so the compressed video bytes are identical and the container is genuinely the only difference. The mobile profile of MP4, from the feature-phone era. Still emitted by some Android capture paths, so it turns up in user uploads.

File
3GP · Containers · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 8-bit 4:2:0
mkv
18.2 KB
Actual file preview for Pixel Format — 8-bit 4:2:0

Pixel Format — 8-bit 4:2:0

8-bit 4:2:0 HEVC. The universal delivery format. Chroma is stored at quarter resolution, which is invisible on photographic content and very visible on saturated text and thin graphic edges. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 8-bit 4:2:2
mkv
19.8 KB
Actual file preview for Pixel Format — 8-bit 4:2:2

Pixel Format — 8-bit 4:2:2

8-bit 4:2:2 HEVC. Chroma at half horizontal resolution — the broadcast and mezzanine standard. Survives one round of chroma keying and colour correction far better than 4:2:0. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 8-bit 4:4:4
mkv
17.8 KB
Actual file preview for Pixel Format — 8-bit 4:4:4

Pixel Format — 8-bit 4:4:4

8-bit 4:4:4 HEVC. No chroma subsampling at all. Necessary for screen content and graphics, and the only format where coloured text stays clean, but unsupported by most hardware decoders. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 10-bit 4:2:0
mkv
17.7 KB
Actual file preview for Pixel Format — 10-bit 4:2:0

Pixel Format — 10-bit 4:2:0

10-bit 4:2:0 HEVC. Ten bits per component gives 1024 levels instead of 256, which is what removes banding from smooth gradients. Now the norm for HDR and for high-quality SDR encodes. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 10-bit 4:2:2
mkv
19.2 KB
Actual file preview for Pixel Format — 10-bit 4:2:2

Pixel Format — 10-bit 4:2:2

10-bit 4:2:2 HEVC. The professional acquisition and mezzanine format — enough chroma for keying and enough bit depth for grading. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 10-bit 4:4:4
mkv
17.5 KB
Actual file preview for Pixel Format — 10-bit 4:4:4

Pixel Format — 10-bit 4:4:4

10-bit 4:4:4 HEVC. Full chroma at 10 bits. Effectively an intermediate format only; almost nothing decodes it in hardware. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Pixel Format — 12-bit 4:2:0
mkv
15.4 KB
Actual file preview for Pixel Format — 12-bit 4:2:0

Pixel Format — 12-bit 4:2:0

12-bit 4:2:0 HEVC. Twelve bits, at the top of what HEVC's Main 12 profile supports. Cinema and scientific capture; included as the limit case that finds decoders which silently truncate to 8 bits. Shipped in Matroska rather than MP4 on purpose: an exotic pixel format in an .mp4 would be advertised as browser-playable and then fail to decode. Every clip in this group is the same picture, so the pixel format is the only variable.

File
MKV · Pixel Format · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — All-Intra (Every Frame a Keyframe)
mp4
119.8 KB
Actual file preview for Bitstream — All-Intra (Every Frame a Keyframe)

Bitstream — All-Intra (Every Frame a Keyframe)

Every frame is an I-frame, so any frame is an independent cut point. Much larger, and the shape editing and frame-accurate seeking want. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — Short GOP (8 Frames)
mp4
35.9 KB
Actual file preview for Bitstream — Short GOP (8 Frames)

Bitstream — Short GOP (8 Frames)

A keyframe every 8 frames with scene-cut detection disabled, so the GOP length is exactly what it says. Short GOPs cost bitrate but bound seek latency — the trade-off streaming packagers make explicitly. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — Long GOP (24 Frames, One Per Second)
mp4
23.2 KB
Actual file preview for Bitstream — Long GOP (24 Frames, One Per Second)

Bitstream — Long GOP (24 Frames, One Per Second)

One keyframe per second — the delivery default, and the setting that determines HLS/DASH segment boundaries, since a segment must start on a keyframe. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — Single GOP (One Keyframe Only)
mp4
23.2 KB
Actual file preview for Bitstream — Single GOP (One Keyframe Only)

Bitstream — Single GOP (One Keyframe Only)

Exactly one keyframe, at the start. Maximally efficient and nearly unseekable: a player must decode from frame zero to reach any position, which is what makes long-GOP archives painful to scrub. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — No B-Frames
mp4
29.5 KB
Actual file preview for Bitstream — No B-Frames

Bitstream — No B-Frames

I and P frames only. Required by some low-latency and legacy decoders, and it removes the reordering that makes decode order differ from display order. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Bitstream — Heavy B-Frames (8 Consecutive)
mp4
22.8 KB
Actual file preview for Bitstream — Heavy B-Frames (8 Consecutive)

Bitstream — Heavy B-Frames (8 Consecutive)

Eight consecutive B-frames with a B-pyramid, so decode order and display order diverge sharply and DTS runs well behind PTS. The case that breaks naive timestamp handling and any code that assumes frames arrive in display order. Same picture and same codec as every other clip in this group — only the GOP and frame-type structure differ, so the effect on size and seekability is directly attributable.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of MP4 Layout — Faststart (moov Atom First)
mp4
23.2 KB
Actual file preview for MP4 Layout — Faststart (moov Atom First)

MP4 Layout — Faststart (moov Atom First)

The moov index is relocated to the front of the file, so a player can begin playback after the first few kilobytes. Required for progressive download to work at all. Byte-for-byte the same encode as its twin in this group; only the atom order differs, which is why comparing the two is the clean way to demonstrate the effect.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of MP4 Layout — moov Atom at End
mp4
23.2 KB
Actual file preview for MP4 Layout — moov Atom at End

MP4 Layout — moov Atom at End

The default MP4 layout, with the index written last. A progressive-download player must fetch the entire file before it can start — the classic 'video buffers forever' bug, and invisible unless you look at the atom order. Byte-for-byte the same encode as its twin in this group; only the atom order differs, which is why comparing the two is the clean way to demonstrate the effect.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of MP4 Layout — Fragmented (fMP4 / CMAF)
mp4
23.2 KB
Actual file preview for MP4 Layout — Fragmented (fMP4 / CMAF)

MP4 Layout — Fragmented (fMP4 / CMAF)

Fragmented MP4: an empty moov followed by independent moof/mdat fragment pairs, rather than one monolithic index. This is what CMAF streaming actually delivers, and what makes a segment playable without the rest of the file. Parsers written against progressive MP4 frequently fail here, because there is no sample table to read up front.

File
MP4 · Structure · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Scan — Progressive
mkv
24.6 KB
Actual file preview for Scan — Progressive

Scan — Progressive

Whole frames, captured and displayed at once — the reference for this group and how essentially all modern video is shot. In Matroska rather than MP4 so the catalog renders a poster instead of advertising an inline player — combing artefacts are best judged from a still anyway.

File
MKV · Scan · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Scan — Interlaced, Top Field First
mkv
28.7 KB
Actual file preview for Scan — Interlaced, Top Field First

Scan — Interlaced, Top Field First

Alternate lines carry alternate instants, with the top field displayed first — the HD broadcast convention. Shown progressively it combs on every moving edge. In Matroska rather than MP4 so the catalog renders a poster instead of advertising an inline player — combing artefacts are best judged from a still anyway.

File
MKV · Scan · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Scan — Interlaced, Bottom Field First
mkv
28.5 KB
Actual file preview for Scan — Interlaced, Bottom Field First

Scan — Interlaced, Bottom Field First

The same interlacing with the opposite field order, the DV and SD convention. Deinterlacing with the wrong field order makes motion jitter backwards — a subtle, very common bug that this pair makes reproducible. In Matroska rather than MP4 so the catalog renders a poster instead of advertising an inline player — combing artefacts are best judged from a still anyway.

File
MKV · Scan · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Rotation Metadata — 90°
mp4
23.2 KB
Actual file preview for Rotation Metadata — 90°

Rotation Metadata — 90°

A 90-degree rotation carried in the container's display matrix while the coded pixels stay in their original orientation — exactly what a phone writes when you record holding it sideways. A player that ignores the matrix shows this 270x480 clip as 480x270, on its side. Thumbnailers and transcoders that read dimensions from the video stream rather than the display matrix get this wrong constantly.

File
MP4 · Rotation · H.264 (libx264)
Use case
Video codecsConversion testing+1· Conversion set
Preview of Rotation Metadata — 180°
mp4
23.2 KB
Actual file preview for Rotation Metadata — 180°

Rotation Metadata — 180°

A 180-degree rotation carried in the container's display matrix while the coded pixels stay in their original orientation — exactly what a phone writes when you record holding it sideways. A player that ignores the matrix shows it upside down. Thumbnailers and transcoders that read dimensions from the video stream rather than the display matrix get this wrong constantly.

File
MP4 · Rotation · H.264 (libx264)
Use case
Video codecsConversion testing+1· Conversion set
Preview of Rotation Metadata — 270°
mp4
23.2 KB
Actual file preview for Rotation Metadata — 270°

Rotation Metadata — 270°

A 270-degree rotation carried in the container's display matrix while the coded pixels stay in their original orientation — exactly what a phone writes when you record holding it sideways. A player that ignores the matrix shows this 270x480 clip as 480x270, on its side. Thumbnailers and transcoders that read dimensions from the video stream rather than the display matrix get this wrong constantly.

File
MP4 · Rotation · H.264 (libx264)
Use case
Video codecsConversion testing+1· Conversion set
Preview of Alpha Channel — VP9 in WebM
webm
44.4 KB
Actual file preview for Alpha Channel — VP9 in WebM

Alpha Channel — VP9 in WebM

Video with a real per-pixel alpha channel: VP9 yuva420p in WebM, the one alpha path browsers decode natively. Composite it over a page background and the transparency is genuine, not a chroma key. Roughly 90% of each frame is fully transparent. Two traps this file exists to expose. First, auto-alt-ref must be disabled at encode time or libvpx silently drops the alpha plane, producing a valid file with no transparency and no error. Second, WebM stores VP9 alpha in BlockAdditional and signals it with AlphaMode=1, so FFmpeg's NATIVE vp9 decoder reports pix_fmt yuv420p and decodes fully opaque — you must force `-c:v libvpx-vp9` to see the alpha at all. Probing this file with default settings and concluding it has no alpha is the expected mistake.

File
WEBM · Alpha · 480x270
Use case
Video codecsVideo matting+2· Conversion set
Preview of Alpha Channel — Opaque VP9 Twin
webm
22.1 KB
Actual file preview for Alpha Channel — Opaque VP9 Twin

Alpha Channel — Opaque VP9 Twin

The same codec and container with NO alpha plane, as the control for the alpha clip in this group. Useful for checking that alpha detection reads the pixel format rather than assuming every WebM is transparent — and for confirming a compositing bug is in the alpha handling rather than in the player.

File
WEBM · Alpha · 480x270
Use case
Video codecsConversion testing+1· Conversion set
Preview of Colour Signalling — BT.709 (HD SDR)
mkv
26.2 KB
Actual file preview for Colour Signalling — BT.709 (HD SDR)

Colour Signalling — BT.709 (HD SDR)

The HD standard, and what a player assumes when a file says nothing. The reference member of this group: every other clip carries identical pixels and different signalling. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

File
MKV · Hdr · 640x360
Use case
Video codecsCompression artefacts+1· Conversion set
Preview of Colour Signalling — BT.601 (SD)
mkv
26 KB
Actual file preview for Colour Signalling — BT.601 (SD)

Colour Signalling — BT.601 (SD)

The standard-definition matrix. Decoding BT.601 content as BT.709 (or the reverse) shifts every colour subtly — greens and reds most visibly. It is the single most common colour bug in transcode pipelines, and this pair reproduces it on demand. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

File
MKV · Hdr · 640x360
Use case
Video codecsCompression artefacts+1· Conversion set
Preview of Colour Signalling — BT.2020 SDR (Wide Gamut)
mkv
25.7 KB
Actual file preview for Colour Signalling — BT.2020 SDR (Wide Gamut)

Colour Signalling — BT.2020 SDR (Wide Gamut)

Wide-gamut primaries with a conventional SDR transfer — wide colour without HDR. Frequently mishandled because tooling assumes BT.2020 always implies PQ or HLG. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

File
MKV · Hdr · 640x360
Use case
Video codecsCompression artefacts+1· Conversion set
Preview of Colour Signalling — HDR10 (PQ, BT.2020, 10-bit)
mkv
25.7 KB
Actual file preview for Colour Signalling — HDR10 (PQ, BT.2020, 10-bit)

Colour Signalling — HDR10 (PQ, BT.2020, 10-bit)

HDR10 signalling: BT.2020 primaries with the SMPTE ST 2084 perceptual quantiser, 10-bit. Be clear about what this fixture is — the picture is ordinary SDR content TAGGED as HDR, so it is a test of metadata handling and tone-mapping paths, not a reference for HDR image quality. A player that ignores the transfer function will render it washed out and far too dark, which is precisely the failure worth reproducing. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

File
MKV · Hdr · 640x360
Use case
Video codecsCompression artefacts+1· Conversion set
Preview of Colour Signalling — HLG (Hybrid Log-Gamma)
mkv
25.7 KB
Actual file preview for Colour Signalling — HLG (Hybrid Log-Gamma)

Colour Signalling — HLG (Hybrid Log-Gamma)

Hybrid Log-Gamma, the broadcast HDR transfer designed to stay watchable on an SDR display. As with the HDR10 fixture, the picture itself is SDR content carrying HLG signalling, so this tests transfer-function detection and the SDR fallback path rather than HDR rendering. Every clip in this group carries the SAME picture and differs only in its colour signalling, so any difference in how a player renders them is entirely a metadata-handling difference.

File
MKV · Hdr · 640x360
Use case
Video codecsCompression artefacts+1· Conversion set
Preview of HLS VOD — CMAF Init Segment (init_0.m4s)
m4s
830 B
Actual file preview for HLS VOD — CMAF Init Segment (init_0.m4s)

HLS VOD — CMAF Init Segment (init_0.m4s)

A CMAF initialisation segment: the moov box carrying codec configuration and track metadata, with no media samples. A player must fetch this before any media segment of the same rendition, and switching renditions mid-stream means fetching the new rendition's init first — the step ABR implementations most often get wrong.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — CMAF Init Segment (init_1.m4s)
m4s
830 B
Actual file preview for HLS VOD — CMAF Init Segment (init_1.m4s)

HLS VOD — CMAF Init Segment (init_1.m4s)

A CMAF initialisation segment: the moov box carrying codec configuration and track metadata, with no media samples. A player must fetch this before any media segment of the same rendition, and switching renditions mid-stream means fetching the new rendition's init first — the step ABR implementations most often get wrong.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — CMAF Init Segment (init_2.m4s)
m4s
830 B
Actual file preview for HLS VOD — CMAF Init Segment (init_2.m4s)

HLS VOD — CMAF Init Segment (init_2.m4s)

A CMAF initialisation segment: the moov box carrying codec configuration and track metadata, with no media samples. A player must fetch this before any media segment of the same rendition, and switching renditions mid-stream means fetching the new rendition's init first — the step ABR implementations most often get wrong.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Master Playlist (Playable Package)
m3u8
370 B
Actual file preview for HLS VOD — Master Playlist (Playable Package)

HLS VOD — Master Playlist (Playable Package)

The entry point to a COMPLETE and genuinely playable HLS package: a 3-rung ladder (320x180 at 300 kbps, 480x270 at 700 kbps, 640x360 at 1400 kbps) with real CMAF segments alongside it in this group. Point hls.js or Safari at this URL and it plays — it is served inline with permissive CORS from /files/stream/, so it works cross-origin without re-hosting. Unlike the hand-authored HLS fixtures elsewhere in the catalog, which are parser tests that reference placeholder segment names on purpose, everything this playlist references actually exists.

File
M3U8 · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-0-000.m4s)
m4s
15.7 KB
Actual file preview for HLS VOD — Media Segment (seg-0-000.m4s)

HLS VOD — Media Segment (seg-0-000.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-0-001.m4s)
m4s
19.3 KB
Actual file preview for HLS VOD — Media Segment (seg-0-001.m4s)

HLS VOD — Media Segment (seg-0-001.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-1-000.m4s)
m4s
39.2 KB
Actual file preview for HLS VOD — Media Segment (seg-1-000.m4s)

HLS VOD — Media Segment (seg-1-000.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-1-001.m4s)
m4s
60.9 KB
Actual file preview for HLS VOD — Media Segment (seg-1-001.m4s)

HLS VOD — Media Segment (seg-1-001.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-2-000.m4s)
m4s
30.8 KB
Actual file preview for HLS VOD — Media Segment (seg-2-000.m4s)

HLS VOD — Media Segment (seg-2-000.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Segment (seg-2-001.m4s)
m4s
58.1 KB
Actual file preview for HLS VOD — Media Segment (seg-2-001.m4s)

HLS VOD — Media Segment (seg-2-001.m4s)

A one-second fragmented-MP4 media segment (moof + mdat) from the playable ladder. It starts on a keyframe, so it decodes independently once the matching init segment has been loaded — which is what makes mid-stream quality switching possible at all.

File
M4S · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Playlist (0)
m3u8
205 B
Actual file preview for HLS VOD — Media Playlist (0)

HLS VOD — Media Playlist (0)

One rendition of the playable HLS ladder, listing its own CMAF init segment and media segments. Referenced by the master playlist in this group. Generated by ffmpeg's own HLS muxer, so the segment durations, the EXT-X-MAP and the ENDLIST are exactly what a real packager emits rather than what a human thinks one emits.

File
M3U8 · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Playlist (1)
m3u8
205 B
Actual file preview for HLS VOD — Media Playlist (1)

HLS VOD — Media Playlist (1)

One rendition of the playable HLS ladder, listing its own CMAF init segment and media segments. Referenced by the master playlist in this group. Generated by ffmpeg's own HLS muxer, so the segment durations, the EXT-X-MAP and the ENDLIST are exactly what a real packager emits rather than what a human thinks one emits.

File
M3U8 · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of HLS VOD — Media Playlist (2)
m3u8
205 B
Actual file preview for HLS VOD — Media Playlist (2)

HLS VOD — Media Playlist (2)

One rendition of the playable HLS ladder, listing its own CMAF init segment and media segments. Referenced by the master playlist in this group. Generated by ffmpeg's own HLS muxer, so the segment durations, the EXT-X-MAP and the ENDLIST are exactly what a real packager emits rather than what a human thinks one emits.

File
M3U8 · Vod Hls
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream0-00001.m4s)
m4s
16 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream0-00001.m4s)

DASH VOD — Media Segment (chunk-stream0-00001.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream0-00002.m4s)
m4s
19.2 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream0-00002.m4s)

DASH VOD — Media Segment (chunk-stream0-00002.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream1-00001.m4s)
m4s
39.9 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream1-00001.m4s)

DASH VOD — Media Segment (chunk-stream1-00001.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream1-00002.m4s)
m4s
61 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream1-00002.m4s)

DASH VOD — Media Segment (chunk-stream1-00002.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream2-00001.m4s)
m4s
32.2 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream2-00001.m4s)

DASH VOD — Media Segment (chunk-stream2-00001.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Media Segment (chunk-stream2-00002.m4s)
m4s
61.7 KB
Actual file preview for DASH VOD — Media Segment (chunk-stream2-00002.m4s)

DASH VOD — Media Segment (chunk-stream2-00002.m4s)

A one-second DASH media segment, addressed by the manifest's $Number$ template. The same underlying CMAF structure as the HLS segments in the sibling package — which is the whole point of CMAF, and something a fixture set should let you verify rather than take on trust.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Init Segment (init-stream0.m4s)
m4s
818 B
Actual file preview for DASH VOD — Init Segment (init-stream0.m4s)

DASH VOD — Init Segment (init-stream0.m4s)

A DASH initialisation segment carrying codec configuration for one representation. Named by the manifest's $RepresentationID$ template, so this file also exercises whether a client resolves template variables correctly rather than pattern-matching filenames.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Init Segment (init-stream1.m4s)
m4s
818 B
Actual file preview for DASH VOD — Init Segment (init-stream1.m4s)

DASH VOD — Init Segment (init-stream1.m4s)

A DASH initialisation segment carrying codec configuration for one representation. Named by the manifest's $RepresentationID$ template, so this file also exercises whether a client resolves template variables correctly rather than pattern-matching filenames.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Init Segment (init-stream2.m4s)
m4s
818 B
Actual file preview for DASH VOD — Init Segment (init-stream2.m4s)

DASH VOD — Init Segment (init-stream2.m4s)

A DASH initialisation segment carrying codec configuration for one representation. Named by the manifest's $RepresentationID$ template, so this file also exercises whether a client resolves template variables correctly rather than pattern-matching filenames.

File
M4S · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of DASH VOD — Manifest (Playable Package)
mpd
2.2 KB
Actual file preview for DASH VOD — Manifest (Playable Package)

DASH VOD — Manifest (Playable Package)

A complete, playable MPEG-DASH manifest for the same 320x180 at 300 kbps, 480x270 at 700 kbps, 640x360 at 1400 kbps ladder as the HLS package, produced from the same encoder run — so the two can be compared directly as packaging rather than as content. Every segment it references exists in this group. Served inline as application/dash+xml with permissive CORS, so dash.js can load it cross-origin.

File
MPD · Vod Dash
Use case
Streaming manifestsVideo codecs+1· Conversion set
Preview of Multi-Track Audio — Dual Language (MKV)
mkv
156.3 KB
Actual file preview for Multi-Track Audio — Dual Language (MKV)

Multi-Track Audio — Dual Language (MKV)

Two audio tracks with distinct language tags, and English flagged as the default. The two tracks are different pitches — 440 Hz and 659 Hz, a perfect fifth apart — so which track a player selected is audible immediately rather than something you have to inspect the file to determine. That is the whole design. Dual-language fixtures that carry the same tone on both tracks cannot distinguish 'switched correctly' from 'ignored the switch', which is the one thing you want to test.

File
MKV · Audio Tracks · 480x270
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — Audio Description (MKV)
mkv
156.3 KB
Actual file preview for Multi-Track Audio — Audio Description (MKV)

Multi-Track Audio — Audio Description (MKV)

A main audio track plus an audio-description track for blind and low-vision viewers, carrying the `visual_impaired` disposition. The description track is an octave and a bit below the main track, so selecting it is audible. Matroska has exactly one flag for this — there is no separate `descriptions` flag as there is in MP4 and in HTML's own track kinds — so a converter that maps `kind="descriptions"` onto Matroska has to pick this one, and a converter going the other way has to infer it. Both tracks are tagged `eng`, which is the realistic case and the awkward one: a picker that lists tracks by language shows two identical entries, and only the flags tell them apart. Broadcast and streaming compliance regimes increasingly require this track to be present and correctly flagged, and the flags are exactly what a naive `ffmpeg -c copy` remux drops.

File
MKV · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — 5.1 Surround, One Tone per Channel (MKV)
mkv
216.5 KB
Actual file preview for Multi-Track Audio — 5.1 Surround, One Tone per Channel (MKV)

Multi-Track Audio — 5.1 Surround, One Tone per Channel (MKV)

A 5.1 track with a different pitch in every channel: an A-major triad across L, R and C, a 60 Hz rumble in the LFE, and two higher tones in the surrounds. Channel order is the standard L, R, C, LFE, Ls, Rs. This makes channel-mapping bugs audible instead of theoretical. Downmix it to stereo and you should hear the triad plus the surrounds; if the centre and the LFE swap — a classic WAV-to-container ordering mistake — the result is unmistakable. Most 5.1 test files play the same content everywhere and cannot detect that at all.

File
MKV · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — Single Mono Track (MP4)
mp4
93.5 KB
Actual file preview for Multi-Track Audio — Single Mono Track (MP4)

Multi-Track Audio — Single Mono Track (MP4)

One mono audio track — the shape most phone recordings, voice notes and screen captures actually arrive in, and the one that catches pipelines that hardcode a stereo buffer or index channel 1 without checking that it exists.

File
MP4 · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — No Audio Track At All (MP4)
mp4
26.8 KB
Actual file preview for Multi-Track Audio — No Audio Track At All (MP4)

Multi-Track Audio — No Audio Track At All (MP4)

A video file with no audio track whatsoever. Pair it with the silent-track file in this group: the two sound identical and are structurally completely different. Code that asks 'does this have audio?' by reading a level meter says no to both. Code that asks the container says no to this one and yes to the other. Whichever answer your pipeline needs, you need both files to know which question it is actually asking.

File
MP4 · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — Present but Digitally Silent (MP4)
mp4
32.8 KB
Actual file preview for Multi-Track Audio — Present but Digitally Silent (MP4)

Multi-Track Audio — Present but Digitally Silent (MP4)

An audio track that exists, declares stereo, and contains nothing but zero samples. The twin of the no-audio-track file in this group, and the reason that file exists. This is the fixture that catches the false negative in every 'is the audio missing?' check built on a container probe: `ffprobe` reports a healthy AAC stereo track, the duration is right, the bitrate is plausible, and the viewer hears nothing. Detecting it requires decoding and measuring, not inspecting. The language is deliberately `und`, which is what encoders emit when nobody set one — another thing worth being able to reproduce.

File
MP4 · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Multi-Track Audio — Commentary Track (MKV)
mkv
156.3 KB
Actual file preview for Multi-Track Audio — Commentary Track (MKV)

Multi-Track Audio — Commentary Track (MKV)

A feature track and a commentary track, separated only by the `comment` disposition. The third member of this group's flag set alongside audio description and dual language, and the one that most often ends up auto-selected by mistake — a player that picks the last matching English track rather than the default one starts the film on the commentary.

File
MKV · Audio Tracks · 8s
Use case
Media accessibilityVideo QA+2· Conversion set
Preview of Intentionally Corrupt — MP4 Truncated Mid-mdat
mp4
7 KB
Actual file preview for Intentionally Corrupt — MP4 Truncated Mid-mdat

Intentionally Corrupt — MP4 Truncated Mid-mdat

An intentionally corrupt MP4, cut off at 55% of its length in the middle of the `mdat` box — the shape of an interrupted download or a copy from a failing disk. Not a valid file by design. The interesting property is that it opens perfectly. Because the file was written with faststart the `moov` index sits before the media data, so a probe reads a complete track list and a duration within a tenth of a second of the original, and only decoding reveals that most of the samples the index points to are not there. Tools that validate by probing pass it; tools that validate by decoding do not. The seek bar will happily let you scrub past the end of the data that exists.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — MP4 With the moov Atom Removed
mp4
11.1 KB
Actual file preview for Intentionally Corrupt — MP4 With the moov Atom Removed

Intentionally Corrupt — MP4 With the moov Atom Removed

An intentionally corrupt MP4 with the entire `moov` box cut out and the surrounding bytes rejoined. The `ftyp` header and all of the compressed media in `mdat` are untouched. Not a valid file by design. This is the classic 'moov atom not found' failure, and in practice the most common way an MP4 dies: the index is written last, so any recording that stops without a clean finalise — a crashed encoder, a phone that ran out of battery mid-capture — ends up exactly like this. The media is all still there, which is why recovery tools can sometimes rebuild it, and this is the file to test one against. Contrast with the truncated file in this group, which has an index and no data.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — MP4 Header Fragment Only
mp4
869 B
Actual file preview for Intentionally Corrupt — MP4 Header Fragment Only

Intentionally Corrupt — MP4 Header Fragment Only

An intentionally corrupt MP4 cut off half way through its `moov` box: the `ftyp` header survives, the index does not, and there is no media data at all. Not a valid file by design. Just enough for content sniffing to succeed and everything after that to fail. A `file`-style magic check reports ISO Media, a MIME sniffer says video/mp4, and then the box walk runs off the end of the buffer part way through the index. Useful for testing the gap between format detection and format validation — and for the upload path, where the two are frequently the same check. Distinct from the two other truncations in this group: the mid-mdat file has a complete index and missing media, this one has a broken index and no media, and a length-based cut deep enough to matter is the only way to tell those code paths apart.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — Zero-Byte MP4
mp4
0 B
Actual file preview for Intentionally Corrupt — Zero-Byte MP4

Intentionally Corrupt — Zero-Byte MP4

An intentionally corrupt MP4 containing nothing at all — zero bytes, with a `.mp4` extension. Not a valid file by design. The degenerate case, and one that reaches production more often than any other: a failed upload, a `touch`ed placeholder, a copy that never started. It is worth having because so much code divides by duration, reads the first N bytes without checking N, or reports 'unsupported format' for a file that has no format to support. Note that content sniffing cannot help here — there are no magic bytes — so anything that must classify this file has only the extension to go on.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — MP4 With Bit Rot in the Media Payload
mp4
12.7 KB
Actual file preview for Intentionally Corrupt — MP4 With Bit Rot in the Media Payload

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.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — Matroska Truncated Mid-Cluster
mkv
7.2 KB
Actual file preview for Intentionally Corrupt — Matroska Truncated Mid-Cluster

Intentionally Corrupt — Matroska Truncated Mid-Cluster

An intentionally corrupt Matroska file cut to 60% of its length, part way through a cluster. Not a valid file by design. Matroska degrades very differently from MP4, which is the reason to have both. Its header is at the front and its clusters are independently framed, so a truncated MKV usually plays right up to the cut and then simply ends — no index to contradict, because the Cues element that would have carried it was at the end and is gone. Duration is reported as unknown or estimated, and seeking past the cut behaves differently in every player.

File
MKV · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — WebM Truncated Mid-Stream
webm
6.3 KB
Actual file preview for Intentionally Corrupt — WebM Truncated Mid-Stream

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.

File
WEBM · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Intentionally Corrupt — Matroska Bytes With an .mp4 Extension
mp4
12.1 KB
Actual file preview for Intentionally Corrupt — Matroska Bytes With an .mp4 Extension

Intentionally Corrupt — Matroska Bytes With an .mp4 Extension

An intentionally corrupt fixture of a different kind: the bytes are a perfectly valid Matroska file, and the extension says `.mp4`. Nothing is damaged — the file simply lies about what it is. Not a valid MP4 by design. This is what a user's 'converted' file usually turns out to be after a rename, and it separates two kinds of code cleanly. Anything that sniffs the first four bytes finds `1A 45 DF A3`, identifies EBML and plays it. Anything that dispatches on the extension hands it to an MP4 demuxer that immediately fails to find `ftyp`. Note the catalog records this entry's MIME as video/mp4, matching the extension rather than the content — deliberately, because that is precisely the mismatch being reproduced.

File
MP4 · Containers Corrupt
Use case
Error handlingVideo QA+1· Conversion set
Preview of Convert v2 RealMedia Motion Source
rm
1020 B
Actual file preview for Convert v2 RealMedia Motion Source

Convert v2 RealMedia Motion Source

RealMedia container with a short deterministic RealVideo motion pattern for download-only legacy demux and transcode coverage. Stable P8 artifact p8-convert-legacy-rm.

File
RM · P8 Convert · 160x128