Test cases
163 verified test files: 52 edge cases that break real players, and 111 baseline files across the codec and container grid. Each comes with a fact sheet.
Edge cases
18 of the 52 are described here. The rest, and how each one is built, come with a token.
- Orientation and aspect 6 cases
- Timing and sync 9 cases
- Frame rate and frames 5 cases
- Colour and pixel formats 10 cases
- Audio formats and channels 13 cases
- Subtitles 4 cases
- Structure and seeking 5 cases
Orientation and aspect 2 of 6
- Anamorphic videoMP4The pixel aspect is ignored and the picture is shown squeezed: everyone looks thin.
- Portrait video rotated by the display matrixMP4Players that ignore the flag show the video sideways, or squeezed into the wrong aspect.
Timing and sync 4 of 9
- Audio that starts after the videoMP4The delay is dropped and the sound plays early, out of sync with the picture.
- Opus in Matroska audioMatroska audioThe delay is ignored: the start is cut, or the timing is a few milliseconds off.
- MPEG-TS timestamps wrapping aroundMPEG-TSPlayback freezes, jumps or stops at the wrap, and the duration comes out wrong.
- MPEG-TS that doesn't start at zeroMPEG-TSThe duration shows as zero or nonsense, and the seek bar is unusable.
Frame rate and frames 3 of 5
- Low frame rate videoMP4Frames are dropped, stretched or shown late, and the last one goes missing.
- One picture for the whole videoMP4Nothing is shown, the duration is wrong, or seeking fails.
- Variable frame rate screen recordingMP4Frames are dropped or held where the rate changes, and audio and video drift apart.
Colour and pixel formats 4 of 10
- HDR10 AV1MatroskaThe HDR tags are ignored: washed-out, flat colours, or no tone mapping on an SDR screen.
- Uncompressed RGB video in AVIAVIRare in modern pipelines, so it's handled badly: the picture comes out upside down, skewed, or not at all.
- H.264 in RGBMP4The picture is decoded as if it were YUV: green or false colours.
- HEVC 4:2:2, 10-bitMP4Many hardware decoders only handle 4:2:0: the file is refused, falls back to slow software decoding, or shows wrong colours.
Audio formats and channels 2 of 13
Subtitles 2 of 4
- Forced subtitles that aren't the default trackMatroskaForced subtitles should show anyway; many players show none.
- MP4 subtitles in Chinese, Japanese and KoreanMP4Garbled characters, missing glyphs, or no subtitles at all.
Structure and seeking 1 of 5
- Matroska without an indexMatroskaThe duration shows as zero, and seeking is slow or impossible.
Baseline files
The grid every player should handle. Fact sheets and recipes are public.
-
Video codecs17 files
The video codecs and containers most pipelines meet: H.264, HEVC, AV1, VP8, VP9 and ProRes, in MP4, MOV, Matroska and WebM. When one of these fails, the problem is basic support.
-
Audio codecs18 files
Common audio codecs next to the same H.264 or VP9 video, and files with no audio track at all, which some players treat as broken.
-
Audio-only files7 files
Audio-only files in their usual containers: M4A, FLAC, MP3, Ogg and WAV.
-
Channel layouts4 files
AAC in mono, stereo, 5.1 and 7.1, next to the same video.
-
Sample rates13 files
16-bit PCM from 8 kHz to 192 kHz, including the 44.1 kHz family (11.025, 22.05, 88.2 and 176.4 kHz) that resamplers see less often.
-
Frame rates10 files
Frame rates from 23.976 to 240 fps, including the NTSC rates (23.976, 29.97 and 59.94) whose timestamps never land on round numbers.
-
Resolutions8 files
From 360p to 2160p, plus portrait and square video, as phones and social apps produce.
-
Pixel formats7 files
Bit depth, chroma subsampling and range: 10-bit H.264, HEVC and AV1, 4:2:2 and 4:4:4, full-range and BT.601 video. Wrong colours start here.
-
HDR2 files
HEVC with HDR10 (PQ) and HLG transfer, as phones and cameras record.
-
Interlaced video2 files
Interlaced H.264, top field first and bottom field first, as broadcast and camcorder material is.
-
Alpha channel2 files
Video with transparency: ProRes 4444 and VP9 with an alpha channel, as motion graphics use.
-
MP4 layout3 files
The same MP4 three ways: index first (faststart), index at the end, and fragmented. Players that stream or seek over HTTP depend on the difference.
-
HLS4 files
HLS with MPEG-TS and fMP4 segments, an audio-only stream, and a three-rendition bitrate ladder.
-
DASH1 file
DASH with fMP4 segments.
-
Subtitles6 files
Subtitles in the formats players meet: SRT, ASS, WebVTT and MP4 text, in the file and as sidecar files.
-
Tracks1 file
Two audio languages in one file, to check track selection.
-
Durations6 files
From 2 seconds to 30 minutes, to check duration, seeking and memory over a long file.
testsrc is in early access. Free for open-source projects, $99/month per organisation for companies.
Get early access