Skip to content
Testaroo

Explore the test library

Find files, editable templates and browser test targets by what you need to make or test. The directory below is cut by format; the two collections under it cut the same library by subject and by workflow.

444 results

Page 14 of 19; 24 results per page.

Show the canonical directory
Preview of Runner on a park path
mp4
399.5 KB
Actual file preview for Runner on a park path

Runner on a park path

A 2.0 second 640x480 H.264 clip at 24 fps, 49 frames. Animated from the still nss-sp-runner_00001_.png, so the first frame is a known image and frame extraction can be checked against it. Measured mean inter-frame change 0.0508 (active). Substantial frame-to-frame change, the end of the range where naive scene detection starts firing. Synthetic footage: two seconds at this size is a decoder and pipeline fixture rather than showcase material, hands degrade in later frames, and no text in shot is legible.

File
MP4 · Generated Clips · 640 × 480 px
Preview of Salon owner at the mirror
mp4
99 KB
Actual file preview for Salon owner at the mirror

Salon owner at the mirror

A 2.0 second 640x480 H.264 clip at 24 fps, 49 frames. Animated from the still nss-owner-salon_00001_.png, so the first frame is a known image and frame extraction can be checked against it. Measured mean inter-frame change 0.0082 (subtle). Motion is deliberate but slight, closer to a living photograph than to action. Synthetic footage: two seconds at this size is a decoder and pipeline fixture rather than showcase material, hands degrade in later frames, and no text in shot is legible.

File
MP4 · Generated Clips · 640 × 480 px
Preview of SBV: YouTube Timing Without Cue Indices
sbv
253 B
Actual file preview for SBV: YouTube Timing Without Cue Indices

SBV: YouTube Timing Without Cue Indices

SubViewer/SBV as YouTube exports it: no cue indices, a comma rather than an arrow between start and end, and single-digit hours. Superficially similar enough to SubRip that format detection by eye fails, which makes it a good test of sniffing logic: a parser that guesses SubRip from the timestamps then trips on the missing index.

File
SBV · Captions Edge · 4 cues
Use case
Subtitle parsingVideo QA· 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 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: 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 SCC, Intentionally Corrupt: Wrong Parity Bytes
scc
115 B
Actual file preview for SCC, Intentionally Corrupt: Wrong Parity Bytes

SCC, Intentionally Corrupt: Wrong Parity Bytes

An intentionally corrupt SCC file whose first caption is valid but whose second carries byte pairs with the wrong parity. CEA-608 requires odd parity in bit 7 of every byte, and broadcast decoders use it to detect transmission errors. Tests whether a decoder checks parity at all, and whether it drops just the bad caption or the whole file.

File
SCC · Captions Corrupt
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SCC: Broadcast CEA-608 Captions
scc
308 B
Actual file preview for SCC: Broadcast CEA-608 Captions

SCC: Broadcast CEA-608 Captions

Broadcast closed captions as Scenarist SCC: SMPTE timecodes followed by hexadecimal CEA-608 byte pairs, with odd parity set on every byte as the standard requires. Uses pop-on mode: RCL to load, ENM to clear non-displayed memory, a preamble address code for row 15, the character pairs, then EOC to display. This is the fixture that exposes decoders which treat captions as text: the parity bits, the two-byte control codes and the frame-accurate timecodes all have to be handled.

File
SCC · Captions Formats
Use case
Subtitle parsingCaption encoding+2· Conversion set
Preview of SCTE-35: Splice Insert (Break End / Return to Network)
xml
472 B
Actual file preview for SCTE-35: Splice Insert (Break End / Return to Network)

SCTE-35: Splice Insert (Break End / Return to Network)

The matching return cue for the break-start splice_insert in this group: the same spliceEventId with outOfNetworkIndicator false, signalling the feed is coming back from the ad break. It carries no BreakDuration because the return is explicit rather than automatic. Pairing start and end cues by event id is exactly what an ad-insertion implementation has to get right, and this is the pair to test it on.

File
XML · Ad Signalling
Use case
Ad insertionStreaming manifests+1· Conversion set
Preview of SCTE-35: Splice Insert (Break Start)
xml
528 B
Actual file preview for SCTE-35: Splice Insert (Break Start)

SCTE-35: Splice Insert (Break Start)

An SCTE-35 splice_insert as XML: the cue that tells a downstream packager a linear ad break starts. outOfNetworkIndicator marks entry into the break, ptsTime is 8 seconds on the 90 kHz PTS clock, and the 30-second break auto-returns. This is the signal a manifest manipulator converts into an HLS EXT-X-CUE-OUT or a new DASH period.

File
XML · Ad Signalling
Use case
Ad insertionStreaming manifests+1· Conversion set
Preview of SCTE-35: Time Signal With Segmentation Descriptor
xml
801 B
Actual file preview for SCTE-35: Time Signal With Segmentation Descriptor

SCTE-35: Time Signal With Segmentation Descriptor

The modern SCTE-35 form: a time_signal command carrying a segmentation descriptor rather than a bare splice_insert. Type 34 marks a provider placement opportunity start, and the delivery restrictions declare that this break may not be filled for web delivery: the field that ad-insertion logic is supposed to honour and frequently ignores. Includes a base64 UPID identifying the content.

File
XML · Ad Signalling · 2700000 (30.0s)
Use case
Ad insertionStreaming manifests+1· Conversion set
Preview of Segmentation Ground Truth: Instance Masks
mp4
19.1 KB
Actual file preview for Segmentation Ground Truth: Instance Masks

Segmentation Ground Truth: Instance Masks

Per-frame instance masks for the orbit plate, colour-coded so the three objects are separable: red is the disc, green the square, blue the centre marker, black the background. Instance identity is stable across frames, which is what makes this usable for video object segmentation and tracking rather than only per-frame segmentation. Note the mask is encoded lossily like every other clip here, so threshold rather than testing for exact equality.

File
MP4 · Segmentation · 640x360
Use case
Video segmentationVideo matting+1· Conversion set
Preview of Segmentation Input: Orbiting Solids
mp4
15.3 KB
Actual file preview for Segmentation Input: Orbiting Solids

Segmentation Input: Orbiting Solids

Two hard-edged objects orbiting in antiphase over a grid, plus a static centre marker. The objects cross in front of the grid and reach the frame edges, so occlusion and boundary handling both get exercised. Every frame has an exact mask in this group.

File
MP4 · Segmentation · 640x360
Use case
Video segmentationVideo QA· Conversion set
Preview of Segmentation Input: Trimap (Foreground / Unknown / Background)
mp4
9.5 KB
Actual file preview for Segmentation Input: Trimap (Foreground / Unknown / Background)

Segmentation Input: Trimap (Foreground / Unknown / Background)

A three-level trimap derived from the instance masks: definite foreground, definite background, and a nine-pixel unknown band around every boundary. This is the input interactive matting and rotoscoping tools actually take, and the band is where all the difficulty lives: a matte is only as good as its handling of that region.

File
MP4 · Segmentation · 640x360
Use case
Video segmentationVideo matting+1· Conversion set
Preview of Shopkeeper behind the counter
mp4
236.6 KB
Actual file preview for Shopkeeper behind the counter

Shopkeeper behind the counter

A 2.0 second 640x480 H.264 clip at 24 fps, 49 frames. Animated from the still nss-owner-shop_00001_.png, so the first frame is a known image and frame extraction can be checked against it. Measured mean inter-frame change 0.0107 (subtle). Motion is deliberate but slight, closer to a living photograph than to action. Synthetic footage: two seconds at this size is a decoder and pipeline fixture rather than showcase material, hands degrade in later frames, and no text in shot is legible.

File
MP4 · Generated Clips · 640 × 480 px
Preview of SMPTE Colour Bars + 1 kHz Tone (MP4)
mp4
71.7 KB
Actual file preview for SMPTE Colour Bars + 1 kHz Tone (MP4)

SMPTE Colour Bars + 1 kHz Tone (MP4)

Standard SMPTE-style colour bars with a 1 kHz reference tone: the classic broadcast test pattern. A fixture for calibrating colour, testing decoders, and verifying audio alongside a known video signal.

File
MP4 · Test Patterns · 480x270
Preview of Soft Subtitles: MKV (SRT track)
mkv
17.6 KB
Actual file preview for Soft Subtitles: MKV (SRT track)

Soft Subtitles: MKV (SRT track)

A clip with a soft (muxed, toggleable) SRT subtitle track in a Matroska container: the subtitles are a separate stream, not burned in. A fixture for testing subtitle extraction, rendering, and toggling.

File
MKV · Subtitles · 480x270
Use case
Conversion testing· Conversion set
Preview of Soft Subtitles: MP4 (mov_text track)
mp4
19 KB
Actual file preview for Soft Subtitles: MP4 (mov_text track)

Soft Subtitles: MP4 (mov_text track)

The same clip with a soft subtitle track as MP4 mov_text (the MP4-native subtitle format): the format twin of the MKV/SRT file, for testing subtitle handling across containers.

File
MP4 · Subtitles · 480x270
Use case
Conversion testing· Conversion set
Preview of SRT, Intentionally Corrupt: End Before Start
srt
127 B
Actual file preview for SRT, Intentionally Corrupt: End Before Start

SRT, Intentionally Corrupt: End Before Start

An intentionally corrupt SubRip file whose first cue ends three seconds before it begins. Nothing is malformed at the text level, so parsers accept it and the problem only surfaces downstream, as a negative duration, a caption that never displays, or a sort that puts the timeline out of order.

File
SRT · Captions Corrupt
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SRT, Intentionally Corrupt: Invalid UTF-8 Byte Sequence
srt
125 B
Actual file preview for SRT, Intentionally Corrupt: Invalid UTF-8 Byte Sequence

SRT, Intentionally Corrupt: Invalid UTF-8 Byte Sequence

An intentionally corrupt SubRip file with a lone UTF-8 continuation byte appended: a byte that can never legally start a character. Both cues are otherwise fine. Exercises the difference between strict decoding, which raises, and lenient decoding, which substitutes a replacement character and continues.

File
SRT · Captions Corrupt · UTF-8 with one invalid sequence
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SRT, Intentionally Corrupt: Missing Timestamp Arrow
srt
122 B
Actual file preview for SRT, Intentionally Corrupt: Missing Timestamp Arrow

SRT, Intentionally Corrupt: Missing Timestamp Arrow

An intentionally corrupt SubRip file: the first cue's timing line is missing the --> separator, so it cannot be parsed as a time range. The second cue is well-formed, which is the point: a robust parser should report the bad cue and still return the good one rather than failing the whole file.

File
SRT · Captions Corrupt
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SRT, Intentionally Corrupt: Non-Numeric Cue Index
srt
177 B
Actual file preview for SRT, Intentionally Corrupt: Non-Numeric Cue Index

SRT, Intentionally Corrupt: Non-Numeric Cue Index

An intentionally corrupt SubRip file with two separate index problems: the first cue is numbered with a word, and index 2 is then used twice. SubRip indices are advisory rather than load-bearing, so this distinguishes parsers that key cues by index (and lose one to the collision) from those that do not.

File
SRT · Captions Corrupt · 3 cues
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SRT, Intentionally Corrupt: Truncated Mid-Cue
srt
133 B
Actual file preview for SRT, Intentionally Corrupt: Truncated Mid-Cue

SRT, Intentionally Corrupt: Truncated Mid-Cue

An intentionally corrupt SubRip file that stops in the middle of the third cue's timestamp, as a truncated download or an interrupted write would. There is no trailing newline. Tests whether a parser returns the two complete cues or discards everything because the tail is unparseable.

File
SRT · Captions Corrupt
Use case
Subtitle parsingVideo QA· Conversion set
Preview of SRT: 500-Cue Throughput File
srt
37.9 KB
Actual file preview for SRT: 500-Cue Throughput File

SRT: 500-Cue Throughput File

Five hundred short sequential cues over four minutes. Small in bytes but long enough to expose quadratic parsing, per-cue DOM churn, and UI that re-renders the whole caption list on every cue change.

File
SRT · Captions Edge · 500 cues
Use case
Subtitle parsingVideo QA· Conversion set