WebVTT vs. SubRip (SRT): Timecode Formatting, Encoding, and Cue Parsing Rules
Technical comparison of .srt and .vtt file structures, UTF-8 byte order marks, reading-speed limits (CPS), and line-length standards.
Delivering accessible captions that pass broadcast QC and web player parsers requires adhering to both syntactic file specifications and human reading-speed limits measured in Characters Per Second (CPS).
Structural Differences Between SRT and WebVTT
A compliant SubRip (.srt) cue consists of three lines: a sequential integer starting at 1, a timestamp range formatted as HH:MM:SS,mmm --> HH:MM:SS,mmm using a comma before milliseconds, and one or more lines of caption text followed by a blank line. WebVTT (.vtt) begins with the mandatory string WEBVTT on line 1, makes cue sequence numbers optional, requires a period before milliseconds (HH:MM:SS.mmm), and supports inline cue settings such as line:80% position:50% align:middle appended after the end timestamp.
Broadcast Reading Speed & Line Length Thresholds
| Metric | Adult Program Standard | Children / Fast Action | Technical Reason |
|---|---|---|---|
| Reading Speed (CPS) | 15 to 20 chars/sec max | 12 to 15 chars/sec max | Exceeding 21 CPS forces viewers to read captions without watching the picture. |
| Max Characters per Line | 37 to 42 characters | 32 to 37 characters | Prevents unintended word wrapping and keeps eye movement compact. |
| Max Lines per Cue | 2 lines | 2 lines | Three or more lines obscure the lower third of the video action. |
| Minimum Cue Duration | 833 ms (20 frames @ 24fps) | 1,000 ms (24 frames) | Shorter flashes disappear before the eye can register the text. |