SRT vs VTT: Which Subtitle Format Do You Need?

Published 2026-07-17 · FrameMath Guides

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

DestinationFormat
HTML5 <video> / web playersVTT (the <track> element requires it)
YouTubeAccepts both; VTT preserves styling
Editing software (Premiere, Resolve, Avid)Both; SRT is the safest interchange
Broadcast/OTT delivery specsUsually 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:

  1. Encoding: always save as UTF-8. Subtitle files in legacy encodings display as mojibake (é, å…) on the web.
  2. 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.

← All guides