How to Fix Out-of-Sync Subtitles (Every Cause, Every Fix)

Published 2026-07-17 · FrameMath Guides

Out-of-sync subtitles have exactly three causes. Diagnose which one you have — it takes under a minute — and the fix is mechanical. Guess wrong, and you’ll chase your tail adjusting offsets that never quite work.

Step 1: Diagnose

Jump to a line of clear dialogue near the start of the video and measure how far off the subtitle is. Then do the same near the end.

SymptomDiagnosisFix
Off by the same amount at start and endConstant offsetTime shift
In sync at start, drifts steadily worseFrame-rate mismatchRetime
Fine in some scenes, jumps in othersDifferent cut of the videoNew subtitles (no global fix)

Fix 1: Constant offset → shift

The subtitle file was made for a version with a different head — an extra logo, recap, or rating card. Every cue is off by the same amount.

Measure the offset once (dialogue appears 2 seconds after it’s spoken = subtitles are 2000 ms late), then shift the entire file by that amount: −2000 ms moves them earlier, +2000 ms later. Our subtitle sync tool applies the shift and shows a live preview of the first cues so you can sanity-check before downloading.

Players like VLC can shift live (H/G keys), but the change isn’t saved — fixing the file itself fixes it everywhere, permanently.

Fix 2: Progressive drift → frame-rate retime

This is the one most people get stuck on, because shifting feels like it almost works — you sync the beginning, and ten minutes later it’s wrong again.

The cause: the subtitles were timed against a version of the video running at a different frame rate. The classic pairing is a subtitle file made for a 25 fps PAL broadcast versus a 23.976 fps web/Blu-ray master. The same content plays about 4.3% slower at 23.976, so subtitle timing falls behind ~2.6 seconds per minute of runtime — a full 4.3 seconds by the one-hour mark.

The fix is multiplying every timestamp by the ratio of the two rates (25 ÷ 23.976 ≈ 1.0427). No amount of shifting can substitute — the error grows with time, and a shift is constant. In our tool, set “subtitles made for” and “your video runs at,” and the retime applies the exact ratio. You can combine a retime and a shift in the same pass, which is the normal case: retime to kill the drift, then a small shift to align the head.

Fix 3: Different edit → stop adjusting

If sync is perfect for a stretch and suddenly jumps at a scene change, the subtitle file was made for a different cut — an extended edition, a version with scenes trimmed for broadcast, or one with ad-break blacks removed. Global math can’t fix per-scene differences. Find subtitles made for your exact cut, or re-conform the file cue by cue in a subtitle editor.

Avoiding it next time

  • Keep subtitle files with the exact video file they were timed against — rename them to match (movie.2160p.v2.srt next to movie.2160p.v2.mkv).
  • When delivering to others, state the frame rate in the filename or a note.
  • Convert formats and fix timing in a single pass rather than round-tripping through several tools; see our SRT vs VTT guide for the format side.

← All guides