Last updated: September 26, 2026
How to Fix Out-of-Sync Subtitles
Nothing breaks immersion like captions that arrive a second late — or start fine and slowly slide away from the dialogue. The good news: nearly every sync problem is one of two patterns, and both are fixable in minutes once you know which one you're looking at.
First, diagnose: constant offset or progressive drift?
Play the video and watch three points: the beginning, the middle, and the end.
- Constant offset: every caption is late (or early) by the same amount — say 1.5 seconds — from start to finish. The gap never grows. This is the easy one.
- Progressive drift: captions start in sync but the error grows over time — fine at minute one, half a second off at minute five, two seconds off at minute ten. This needs a different fix.
Fixing a constant offset
A constant offset means all timestamps need the same nudge. Measure the error: pause on a sharp, unmistakable sound (a clap, a door slam, the first word of a sentence) and note how far the caption is from it. Then shift every cue by that amount.
- In a text editor: open the SRT and shift all timestamps with find-and-replace logic, or use Subtitle Edit's Synchronization → Adjust all times with a positive or negative value.
- In Premiere Pro: select all captions on the caption track and drag the whole block earlier or later on the timeline.
- In VLC (playback only): press
Gto delay subtitles orHto advance them in 50 ms steps — handy for testing, not a permanent fix. - In Aegisub: Timing → Shift Times applies an offset to selected or all lines.
Fixing progressive drift
Drift almost always comes from a frame-rate mismatch: the subtitles were timed for 25 fps but the video plays at 24 fps (or 30 vs 29.97, and so on). Over minutes, the tiny per-frame difference accumulates into seconds.
- Confirm the cause: check the video's actual frame rate (VLC → Tools → Codec, or your editor's sequence settings) and compare it with what the subtitle file assumed.
- Rescale the timing. In Subtitle Edit: Synchronization → Change frame rate, entering the "from" and "to" rates. In Aegisub: use the frame-rate transform under Timing. This stretches or compresses all timestamps proportionally — the correct fix for drift.
- Verify at three points again (beginning, middle, end). If the error is gone at all three, you're done. If a small constant offset remains on top of the fixed drift, apply a shift as described above.
Other causes worth knowing
- Variable frame rate (VFR) phone footage. Phones record VFR to save battery; editors expect constant frame rate. Transcode to CFR (HandBrake does this free) before generating or syncing subtitles.
- Trimmed or re-encoded video. Cutting the head off a video without re-timing the SRT leaves every caption late by the trimmed amount — a constant offset, fixed by shifting.
- Wrong subtitle file entirely. It happens more than anyone admits: the SRT belongs to a different edit of the video. Check durations match before troubleshooting further.
Preventing sync problems
Generate subtitles from the final video file — the exact export you will publish — not from a rough cut. AI tools like SubEasy timestamp against the audio they actually hear, so generating from the final file eliminates most sync issues at the source. And when you must re-edit after captioning, keep the SRT open beside the timeline and re-check the head and tail after every structural change.
Quick reference
| Symptom | Likely cause | Fix |
|---|---|---|
| Same delay everywhere | Offset / trimmed head | Shift all timestamps |
| Error grows over time | Frame-rate mismatch | Rescale timing (change frame rate) |
| Random jumps | VFR footage / wrong file | Transcode to CFR / verify file |