What is lost, or has to be decided, when converting between IMSC/TTML, WebVTT and SCC (CEA-608)?
Converting captions to SCC with pycaption forces them onto the CEA-608 grid: vertical positions become rows 1-15 (bottom-up from 15 without layout), horizontal positions become columns 0-31 snapped to 4-column bases plus tab offsets, long pop-on cues are split by codeword count, and timing is quantised to 30x1000/1001 frames in both drop-frame and non-drop modes. Styling and positions beyond the grid are therefore lost or approximated; a full loss matrix needs CTA-608-E and an executed round trip.
Converting captions to SCC with pycaption forces them onto the CEA-608 grid: vertical positions become rows 1-15 (bottom-up from 15 without layout), horizontal positions become columns 0-31 snapped to 4-column bases plus tab offsets, long pop-on cues are split by codeword count, and timing is quantised to 30x1000/1001 frames in both drop-frame and non-drop modes. Styling and positions beyond the grid are therefore lost or approximated; a full loss matrix needs CTA-608-E and an executed round trip.
Curator qualifications: Code read 2026-10-22; no captions converted. IMSC/WebVTT spec statements per producer; CTA-608-E paywalled.
Limitations: Code read 2026-10-22; no captions converted.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://www.w3.org/TR/ttml-imsc1.2/",
"note": "pycaption/scc/writer.py at ad2ddba L72-78, L195-202, L244-259, L329-362, _microseconds_to_frame"
},
{
"url": "https://github.com/pbs/pycaption/blob/ad2ddba85b8f9a38babb59a69b49846537d6bb67/pycaption/scc/writer.py",
"note": "pycaption/scc/writer.py at ad2ddba L72-78, L195-202, L244-259, L329-362, _microseconds_to_frame"
},
{
"url": "https://www.w3.org/TR/webvtt1",
"note": "cited at https://www.w3.org/TR/webvtt1/; pycaption/scc/writer.py at ad2ddba L72-78, L195-202, L244-259, L329-362, _microseconds_to_frame"
},
{
"url": "https://www.w3.org/TR/webvtt1/",
"note": "observed URL (dated/alias form of the cited catalogue source; canonical identity retained)"
}
]
}Evidence claims
- [sourced_fact] Converting captions to SCC with pycaption forces them onto the CEA-608 grid: vertical positions become rows 1-15 (bottom-up from 15 without layout), horizontal positions become columns 0-31 snapped to 4-column bases plus tab offsets, long pop-on cues are split by codeword count, and timing is quantised to 30x1000/1001 frames in both drop-frame and non-drop modes. Styling and positions beyond the grid are therefore lost or approximated; a full loss matrix needs CTA-608-E and an executed round trip. · locator: pycaption/scc/writer.py at ad2ddba L72-78, L195-202, L244-259, L329-362, _microseconds_to_frame source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |