Skip to content
Utilerio

SRT vs VTT and Why Subtitles Drift Out of Sync

Two subtitle formats encode the same idea with small, incompatible differences — and the usual reason subtitles fall out of sync has nothing to do with the format at all.

· 2 min read

SRT and VTT do the same job — a numbered list of text blocks, each with a start and end time — and they're similar enough that it's easy to assume one is just a renamed version of the other. They're not quite compatible, and the differences are exactly the kind of thing that stays invisible until a video player rejects the file outright.

What's actually different

An SRT cue looks like this:

1
00:00:01,000 --> 00:00:04,000
Hello world

A VTT cue looks almost identical:

WEBVTT

1
00:00:01.000 --> 00:00:04.000
Hello world

Two differences, both small, both decisive: VTT requires a WEBVTT header line before anything else, and a period instead of a comma as the millisecond separator. A player built for one format usually rejects the other outright rather than gracefully downgrading — a , where a strict VTT parser expects a . is a hard parse error, not a warning.

Sync drift is rarely about the format

Converting between the two formats doesn't fix timing — a file can be perfectly valid VTT and still run two seconds ahead of the audio for its entire duration. That kind of drift almost always comes from somewhere upstream of the subtitle file itself:

  • A frame rate different from the one subtitles were written against — 23.976fps versus 24fps is a small enough difference per second, but it compounds into several seconds of drift by the end of a two-hour file.
  • A trimmed intro — if two seconds were cut from the start of a video after the subtitles were already timed against the original, every subtitle needs to shift two seconds earlier to match.
  • A different regional cut — subtitles made for a version of a film with a scene the copy you have doesn't include.

The fix is the same for all of them: shift every timestamp by one uniform, fixed offset without touching the text or the cues' relative timing. Subtitle Converter & Sync does both operations — converting between SRT and VTT, and applying a millisecond offset to every cue — so a two-second delay is fixed by entering -2000 once instead of hand-editing dozens of timestamps. A negative offset near the very start of a file clamps to zero rather than going negative, since a subtitle can't reasonably start before the video does.

If the drift is actually a side effect of editing the audio itself — trimming a clip's intro with Audio Trimmer or combining several tracks with Audio Joiner — the exact amount trimmed or added is usually the exact offset the subtitles need next.