Skip to content
Novus Examples
scc308 B

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.

Preview — first 8 linesscc
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>

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