Delivering video content across languages and platforms demands far more than translating dialogue. Subtitle and caption files must conform to precise timing constraints, reading-speed limits, format specifications, and accessibility standards, all while remaining invisible enough that viewers stay immersed in the content. A single frame-rate mismatch or a poorly segmented line can derail comprehension, trigger compliance failures, or force costly rework. This guide covers the full engineering stack: file formats and their tradeoffs, timing and typographic rules, accessibility requirements, and the validation workflow that ensures clean delivery to YouTube, OTT platforms, and social channels. Whether you manage a library of thousands of hours or a single high-stakes launch, these specifications form the foundation of scalable subtitle quality.
If your team is navigating these complexities at scale, explore how Ollang streamlines subtitle and caption engineering across formats, languages, and platforms.
Subtitle and Caption Formats Compared
SRT: Simplicity and Limitations
SubRip (SRT) remains the most widely supported subtitle format. Its plain-text structure, sequential index, timecode pair, and text block, makes it easy to author and parse. However, SRT supports no native styling, positioning metadata, or speaker identification. Any formatting (bold, italic) relies on informal HTML-like tags that renderers may ignore. SRT uses comma-separated millisecond timecodes (HH:MM:SS,mmm), which creates conversion friction when moving to frame-based workflows. Use SRT when the delivery platform explicitly requires it or when no advanced styling is needed.
WebVTT: Web-Native Flexibility
Web Video Text Tracks (WebVTT) extends SRT's simplicity with CSS-like cue styling, vertical text support, and positioning via line/position/align properties. It uses period-separated millisecond timecodes (HH:MM:SS.mmm). WebVTT is the native caption format for HTML5 <video> and is required by most web players. Its NOTE blocks allow metadata comments, and its ::cue pseudo-element enables platform-consistent typography. Choose WebVTT for web delivery, progressive web apps, and any context where you need positioning control without a full broadcast spec.
TTML/IMSC: Broadcast and Streaming Compliance
Timed Text Markup Language (TTML) and its constrained profile IMSC (Internet Media Subtitles and Captions) are XML-based formats used by major streaming platforms and broadcast networks. IMSC is the W3C recommendation for internet subtitle interchange. These formats support:
- Region-based positioning with pixel or percentage coordinates
- Full typographic control (font family, size, color, background, outline)
- Ruby annotations for East Asian languages
- Embedded or referenced images for bitmap subtitles
TTML/IMSC is required for Netflix, Disney+, and many European broadcasters. The complexity of the XML schema means authoring typically requires dedicated tools, but the precision is unmatched for multi-platform delivery.
EBU-STL: Legacy Broadcast Standard
EBU-STL (European Broadcasting Union Subtitle Transfer Language) is a binary format defined in EBU Tech 3264. It encodes timecodes as frame-based values, supports teletext and open subtitle modes, and carries metadata about language, display standard, and character set. While largely a legacy format, EBU-STL remains mandatory for many European terrestrial and cable deliveries. Its binary nature makes it opaque to text editors, requiring specialized conversion tools.
| Format | Timecode Basis | Styling | Positioning | Primary Use Case |
|---|---|---|---|---|
| SRT | Milliseconds | Minimal (informal tags) | None | Universal fallback |
| WebVTT | Milliseconds | CSS cues | Line/position/align | Web and mobile players |
| TTML/IMSC | Frame or clock | Full XML styling | Region-based | OTT and broadcast |
| EBU-STL | Frames | Teletext attributes | Row/column | European broadcast |
Timing Rules and Reading-Speed Standards
Characters per Second by Content Type and Market
Reading speed is the single most critical parameter governing subtitle quality. It determines whether viewers can comfortably absorb text while following visual action. The industry standard for adult entertainment content sits between 15 and 17 characters per second (CPS), with some platforms specifying a maximum of 17 CPS for many languages. Children's content typically requires 13 CPS or lower to accommodate developing reading skills.
Market-specific norms vary. Scandinavian markets, where subtitle literacy is high, tolerate speeds near the upper bound. Markets with complex scripts, Arabic, Thai, Japanese, require adjusted calculations that account for character density and reading direction. For educational or accessibility-focused content, many guidelines recommend staying at or below 15 CPS regardless of market.
Minimum and Maximum Duration Constraints
Beyond reading speed, individual subtitle events need duration guardrails:
- Minimum duration: 0.7-1.0 seconds. Anything shorter creates a flash that viewers cannot register.
- Maximum duration: 7 seconds for a two-line subtitle. Longer durations cause viewers to re-read text, breaking immersion.
- Gap between subtitles: A minimum of 2 frames (approximately 80 ms at 25 fps) ensures the eye registers a subtitle change. Some platforms require a full 120 ms gap.
These constraints interact: a short utterance still needs minimum screen time, while a dense line must be split rather than displayed at excessive speed.
Line-Breaking and Segmentation Heuristics
How text is divided across lines and subtitle events directly affects comprehension. Core segmentation principles:
- Break at clause or phrase boundaries, never mid-phrase
- Keep articles, prepositions, and conjunctions with the noun or clause they introduce
- Prefer a longer top line and shorter bottom line (inverted pyramid) for visual stability
- Never separate a modifier from its head noun across lines
- Limit to two lines per subtitle event; three lines only where platform and content type explicitly allow it
Example of an unnatural break:
I told her that we should
leave before the storm.
Corrected to keep the verb phrase intact:
I told her
that we should leave before the storm.
Positioning, Typography, and Platform Constraints
Safe Areas and UI Avoidance
Subtitles must avoid overlapping with player controls, channel bugs, lower thirds, and platform UI elements. The traditional broadcast safe area (roughly 90% of frame width, 80% of height) provides a starting point, but modern platforms impose tighter constraints:
- YouTube's progress bar and controls occupy roughly the bottom 10-12% of the player during interaction
- Mobile players with gesture zones require additional vertical margin
- Social platforms with persistent UI (likes, comments, share buttons) demand positioning in the center or upper third of the frame
When subtitles must move to avoid on-screen text or graphics, use TTML regions or WebVTT position/line properties to shift cues vertically. Burned-in subtitles require re-rendering if positioning changes after delivery.
Typography Across Renderers
Font rendering varies dramatically across platforms. A subtitle that looks clean in a desktop browser may become illegible on a smart TV at viewing distance. Key typographic decisions:
- Font choice: Sans-serif faces (Arial, Roboto, Noto Sans) ensure legibility across devices. Noto Sans covers virtually all Unicode scripts.
- Size: Typically 5-8% of video height for readability at standard viewing distances.
- Outline and shadow: A 1-2 pixel dark outline or drop shadow ensures contrast against variable backgrounds. Avoid relying solely on semi-transparent boxes, which can obscure image content.
- Background box: Some platforms mandate a semi-transparent background for accessibility. Others allow outline-only styling.
IMSC profiles define these parameters precisely, ensuring consistent rendering across compliant players.
Sidecar vs. Open Captions vs. Forced Narratives
Sidecar subtitles are delivered as separate files alongside the video asset. They can be toggled on or off by the viewer, updated without re-encoding video, and swapped between languages. This is the standard approach for OTT and web delivery.
Open (burned-in) captions are rendered directly into the video frame during encoding. They cannot be turned off. Use open captions only when:
- The platform does not support sidecar tracks (some social feeds)
- Regulatory requirements mandate always-visible captions
- Creative intent requires specific typographic treatment that no player can replicate
Forced narrative subtitles are a distinct track that displays only when foreign-language dialogue or on-screen text appears within an otherwise same-language program. They are flagged as "forced" in container metadata (e.g., the forced flag in MKV or MP4 subtitle tracks) so players display them automatically without the viewer enabling full subtitles. Forced narratives require careful authoring to include only genuinely untranslated elements.
