Captions, subtitles and their kinds
| Term | Plain meaning | Why it matters |
|---|---|---|
| Captions | Text of the speech and non-speech audio needed to understand the content, in the same language | The accessibility version; W3C uses this definition [1] |
| Subtitles | Usually spoken audio translated into another language; some regions use subtitles for same-language text too | W3C notes translated subtitles are not directly an accessibility accommodation [1] |
| Closed captions | Captions viewers can turn on or off | Most platform captions are closed [1] |
| Open captions | Always displayed and cannot be turned off | Burned into the picture; no file to upload [1] |
| SDH | Subtitles for the deaf and hard of hearing: subtitles plus speaker IDs and sound descriptions | Netflix's English style guide gives separate SDH rules for speaker IDs, sound effects and music [4] |
| Forced narrative (FN) | Subtitles for plot-pertinent on-screen text, such as a sign, labeled (FN) in Netflix examples | Netflix: include only if plot-pertinent, in all caps, never combined with dialogue in one subtitle [4] |
| Speaker ID | A label naming who is talking when it is not visible | Netflix SDH style: lowercase in brackets, for example [man 1], only when the speaker cannot be seen [4] |
File formats
If you are new to caption files, YouTube recommends starting with SRT or SBV, which need only basic timing and can be edited in a plain text editor. [2]
| Format | What it is | Styling and positioning on YouTube |
|---|---|---|
| SRT (.srt) | Plain-text numbered cues with start and end times | Neither; YouTube requires plain UTF-8 and ignores style markup [2] |
| SBV or SUB | SubViewer, a simple text format; YouTube treats it like SRT | Neither [2] |
| WebVTT (.vtt) | W3C web caption format; file starts with WEBVTT, UTF-8, MIME type text/vtt | Positioning yes; styling limited to bold, italic and underline [2][3] |
| TTML and DFXP | XML timed text; iTunes Timed Text is a subset; DFXP is read as TTML | Styling and positioning supported [2] |
| SAMI (.smi) | Older timed text with simple markup | Simple markup only; no positioning [2] |
| SCC (.scc) | An exact representation of CEA-608 broadcast caption data | YouTube's preferred format for CEA-608-based captions, displayed as on TV [2] |
| EBU-STL (.stl) | European Broadcasting Union subtitle format | Accepted by YouTube, displayed as if on TV [2] |
Broadcast standards: CEA-608 and 708
CEA-608 is a broadcast caption data standard. YouTube describes SCC as its exact file representation and lists other broadcast formats, such as Cheetah and NCI .cap files, that support 608 features. [2] TTML can carry 608 features through SMPTE-TT extensions. [2]
The 708 standard covers digital television captions. US FCC rules for digital TV receivers require them to decode captions delivered under EIA-708-B, and require decoders to let viewers choose among eight fonts, pick pen sizes and set foreground and background colors and opacity, with settings that persist when the TV is turned off. [7]
For online video, the FCC rule for IP-delivered programming applies to programming shown on US television with captions, and to IP-delivered clips from that programming. It treats delivery in SMPTE Timed Text format as meeting the program owner's caption-delivery duty. [6] The rule's scope is programming that aired on US television with captions, so it does not describe original web-only uploads; check the accessibility rules that apply to your organization.
Inside a caption file: cues and timing terms
| Term | Plain meaning | Typical values |
|---|---|---|
| Cue | One caption event: a start time, an end time and its text | In WebVTT the timing line uses an arrow, and the end time must be later than the start [3] |
| Timestamp | Time a cue appears or disappears | WebVTT: hours optional unless non-zero, then mm:ss and three-digit milliseconds after a full stop [3] |
| Cue settings | Placement instructions after the timing | WebVTT: vertical, line, position, size, align and region [3] |
| Characters per line (CPL) | Maximum characters in one line | Netflix English: 42 [4] |
| Reading speed | Characters per second a viewer must read | Netflix English: up to 20 for adult and 17 for children's programs [4] |
| Minimum and maximum duration | Shortest and longest time one subtitle stays up | Netflix: 5/6 of a second minimum, 7 seconds maximum [5] |
| Line count | Lines on screen at once | Netflix: 2 maximum [5] |
Which tools accept which formats
- Sources: YouTube supported formats [2], FlexClip supported formats [9], Descript subtitle export [8].
- For a YouTube upload, SRT is the safe default; switch to WebVTT only if you need positioning, for example to keep captions away from lower-third graphics. [2]
| Tool | Imports | Exports |
|---|---|---|
| YouTube | SRT, SBV, SUB, MPsub, LRC, SAMI, RealText, WebVTT, TTML, DFXP, SCC, EBU-STL and other broadcast formats | Not covered on the formats page |
| FlexClip | SRT, VTT, SSA, ASS, SUB, SBV | SRT, VTT, SSA, ASS, SUB, SBV, TXT, CSV |
| Descript | Not covered here | SRT or VTT, with speaker labels, max characters per line and max lines per card |
Practical checklist before you deliver captions
- Same-language captions should include the non-speech sounds needed to follow the video, not just dialogue. [1]
- Save SRT and VTT as UTF-8; YouTube requires plain UTF-8 for SRT, and WebVTT must be UTF-8. [2][3]
- Keep lines at or under about 42 characters and cues on screen at least about 5/6 of a second if you follow Netflix-style rules. [4][5]
- Use brackets for sound effects and speaker IDs in SDH, and never italicize them, per Netflix's English guide. [4]
- If a client asks for 608-compatible captions, deliver SCC. [2]
Questions before you decide
What is the difference between SRT and VTT?
Both are timed text files. On YouTube, SRT supports neither styling nor positioning, while WebVTT supports positioning with styling limited to bold, italic and underline. WebVTT files start with WEBVTT and must be UTF-8.
What does SDH mean?
Subtitles for the deaf and hard of hearing. Netflix's English style guide gives SDH-specific rules, such as lowercase speaker IDs and sound effects in brackets, used only when the speaker or sound cannot be identified visually.
What is an SCC file?
YouTube describes SCC as an exact representation of CEA-608 broadcast caption data and the preferred format whenever captions are based on CEA-608 features.
What are forced narratives?
Subtitles for plot-pertinent on-screen text, such as a sign, labeled (FN) in Netflix examples. Netflix's English guide says to include them only if plot-pertinent, set them in all caps and never combine them with dialogue in one subtitle.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- W3C WAI: Captions/Subtitles Accessed 30 Oct 2026
- YouTube Help: Supported subtitle and closed caption files Accessed 30 Oct 2026
- W3C: WebVTT: The Web Video Text Tracks Format Accessed 30 Oct 2026
- Netflix Partner Help: English (USA) Timed Text Style Guide Accessed 30 Oct 2026
- Netflix Partner Help: Timed Text Style Guide: General Requirements Accessed 30 Oct 2026
- 47 CFR 79.4: Closed captioning of video programming delivered using Internet protocol (Cornell LII) Accessed 30 Oct 2026
- 47 CFR 79.102: Closed caption decoder requirements for digital television receivers (Cornell LII) Accessed 30 Oct 2026
- Descript Help: Exporting subtitles Accessed 30 Oct 2026
- FlexClip Help: Supported video, audio, image, font, subtitle and LUT file formats Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.
