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.
Scenarist_SCC V1.0
00:00:01:00 9420 94ae 9470 ce4f d6d5 d320 4558 c1cd d04c 45d3 2043 c1d0 5449 4fce 2046 4958 54d5 5245 942f
00:00:03:15 9420 94ae 9470 d345 434f cec4 20d0 4fd0 ad4f ce20 43c1 d054 494f ce80 942f
00:00:06:00 9420 94ae 9470 54c8 4952 c420 c1ce c420 4649 cec1 4c20 43c1 d054 494f ce80 942f
Specifications
- Standard
- CEA-608 (line 21)
- Mode
- pop-on
- Parity
- odd, bit 7
- Control Codes
- RCL 9420, ENM 94ae, PAC 9470, EOC 942f
- Timecode
- SMPTE non-drop
- Captions
- 3
- Character Set
- ASCII (upper case)
What is a .scc file?
SCC (Scenarist Closed Captions, .scc) is the broadcast interchange format for CEA-608 captions. Each line is an SMPTE timecode followed by pairs of hexadecimal bytes that are the literal 608 control codes and characters, so caption positioning, roll-up versus pop-on style, and italics are all encoded as byte pairs rather than as markup. It is plain ASCII, but it is not human-readable prose.
How to use this file
Use an example .scc file to test broadcast caption ingest, CEA-608 decoders, and conversion to SRT or WebVTT. It is the format that exposes decoders which assume captions are text — parity bits, double-byte control codes, and drop-frame timecodes all have to be handled.
How to use this file for testing
“SCC — Broadcast CEA-608 Captions” is a deterministic Novus Examples fixture for Subtitle parsing, Caption encoding, Conversion testing, Video QA. The same captions across SubRip, WebVTT, ASS/SSA, SBV, and TTML, plus a synced LRC lyric file — for testing subtitle parsers, players, burn-in tools, and format converters against known timings.
Documented properties for this file: SCC · 308 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.
Parse the cues and check timings against the documented count; the same captions ship across subtitle formats so you can diff a converter against a known target.
Code examples
<video controls src="clip.mp4">
<track kind="captions" srclang="en" label="English" src="broadcast.scc" default>
</video>Related files
- assASS — Karaoke Timing and Override TagsAdvanced SubStation Alpha using the features that distinguish it from SubRip: per-syllable \k karaoke timings in centiseconds, a full V4+ style definition with primary and secondary colours, and an \an override that repositions a line. Converting this to SRT necessarily loses all of it, which makes it a good test of whether a converter warns about that or drops it silently.

- csvCSV — Cue Timing ReportPer-cue timings and text metrics for the shared cue list, as a caption QC tool would export them: start, end, duration, line count and character count. Useful as the expected output when testing a caption analyser, and as a quick way to check reading-rate calculations against known values.

- jsonJSON — Timed-Text Suite IndexA machine-readable index of all 67 timed-text, streaming-manifest and ad-signalling fixtures in this wave, with id, format, path and byte size for each. Useful as a work-list when running a parser across the whole suite, and as a manifest to diff against after regenerating.

- lrcLRC — Enhanced Word-Level TimingEnhanced LRC with per-word timings in angle brackets alongside the usual per-line timestamps — the format karaoke and lyric-sync apps consume. Includes the standard metadata tags, an offset field, and a final empty timestamp that clears the display. Simple LRC parsers read only the line timings and silently render the word markers as visible text.

- srtSRT — CJK (Japanese)Japanese captions mixing kana, kanji and full-width punctuation. Full-width characters occupy two columns in a monospaced renderer, so line-length limits computed in code points under-count them.

- srtSRT — CyrillicCyrillic captions — outside ASCII but still single-width and left-to-right, which isolates encoding handling from layout handling.

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