How to Fix Out-of-Sync Subtitles (Every Cause, Every Fix)
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.
| Symptom | Diagnosis | Fix |
|---|---|---|
| Off by the same amount at start and end | Constant offset | Time shift |
| In sync at start, drifts steadily worse | Frame-rate mismatch | Retime |
| Fine in some scenes, jumps in others | Different cut of the video | New 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.srtnext tomovie.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.