SRT vs VTT: Which Subtitle Format Do You Need?
Two subtitle formats dominate modern video work: SRT and WebVTT. They look almost identical, which is exactly why mixing them up causes so many silent failures — a player that expects one will often just show nothing when handed the other.
The formats at a glance
SRT (SubRip) is the veteran, born from a 1990s DVD-ripping tool. A file is just numbered cues:
1
00:00:03,400 --> 00:00:06,200
The train leaves at midnight.
WebVTT is the W3C’s web-native standard, designed for HTML5 video. Nearly the same, with two visible differences — a required header, and dots instead of commas in timestamps:
WEBVTT
00:00:03.400 --> 00:00:06.200
The train leaves at midnight.
That comma-versus-dot detail is the number one cause of “my subtitles won’t load”: hand a player a .vtt file with SRT-style commas (or vice versa) and many will reject the whole file without an error message.
What VTT can do that SRT can’t
- Positioning and alignment per cue (place text top-of-screen during lower-third graphics)
- Styling via CSS classes and inline tags — colors, speaker styling
- Metadata and chapters, cue identifiers, and NOTE comments
<v Speaker>voice tags for accessible speaker identification
SRT supports only basic tags (<i>, <b>) — and even those depend on the player. In practice, most subtitle work uses none of the fancy features, which is why the two formats stay interchangeable for 95% of jobs.
Which platforms want which
| Destination | Format |
|---|---|
HTML5 <video> / web players | VTT (the <track> element requires it) |
| YouTube | Accepts both; VTT preserves styling |
| Editing software (Premiere, Resolve, Avid) | Both; SRT is the safest interchange |
| Broadcast/OTT delivery specs | Usually neither — they want STL/TTML/IMSC, converted from your SRT/VTT master |
| Media servers (Plex, Jellyfin) | Both; SRT is the convention |
The practical workflow: keep an SRT master, convert to VTT when the web needs it. SRT’s simplicity makes it the most portable format ever devised; VTT is one deterministic transformation away.
Converting without breaking anything
Conversion itself is mechanical — rewrite the header, swap the decimal separator. Two things to watch:
- Encoding: always save as UTF-8. Subtitle files in legacy encodings display as mojibake (é, å…) on the web.
- Timing edits belong in the same pass. If the subtitles are also out of sync, fix the timing during conversion rather than in a second tool — every extra round-trip is a chance to corrupt something.
Our subtitle converter does both directions in your browser (files never upload), and can shift or frame-rate-retime the timing in the same pass. If your subtitles are drifting steadily out of sync rather than offset by a constant amount, read our sync-fixing guide first to pick the right repair.