How to fix out-of-sync subtitles (the complete guide)
Out-of-sync captions come in two flavours, and each has its own fix. Diagnose which one you have — a constant offset or a growing drift — and the correction is straightforward.
Few things ruin a film faster than captions that arrive a beat late, and the instinct is to nudge them until one line matches and hope the rest follows. Sometimes that works and sometimes it makes things worse, because there are actually two different problems hiding behind the same symptom. Fixing subtitles reliably starts with telling them apart.
This guide shows how to diagnose which kind of desync you have, then applies the right correction: a constant shift for a fixed offset, or a linear resync for gradual drift. Both are quick once you know which one you are looking at.
Which kind of sync problem do I have?
The test takes thirty seconds. Check the timing at the very start of the video, then check it again near the very end. What you find tells you everything.
- If the subtitles are late by two seconds at the start and still late by roughly two seconds at the end, you have a constant offset. The gap never changes.
- If the subtitles are nearly in sync at the start but a full ten seconds off by the end, you have gradual drift. The gap grows the longer it plays.
A constant offset means the file is simply timed against a different starting point — the video has an extra studio logo at the front, or the subtitles were made for a cut that begins a moment earlier. Gradual drift means the subtitle timeline is running at a different speed from the video, which almost always comes down to a frame-rate mismatch.
| Symptom | Likely cause | Fix |
|---|---|---|
| Off by the same amount start to end | Different start point / intro trimmed | Constant shift by the offset |
| In sync early, drifts further off later | Frame-rate mismatch (23.976 vs 25) | Linear resync (stretch/compress) |
| Drift plus a starting gap | Wrong frame rate and wrong start | Anchor two points and resync |
| Fine, then jumps after a scene | Video was recut or ad break removed | Split the file and shift each part |
How do I fix a constant offset?
This is the easy one. Every cue is wrong by the same amount, so you move every cue by that amount in one operation. If the subtitles are 2.5 seconds late, shift the whole file 2.5 seconds earlier; if they run ahead, shift them later.
- Find a clear line of dialogue near the start and note when the subtitle shows versus when the words are actually spoken.
- Measure the gap. Say the caption appears at 00:00:07.0 but the line is spoken at 00:00:04.5 — the subtitles are 2.5 seconds late.
- Shift the entire file earlier by that 2.5 seconds.
- Spot-check a line near the end to confirm the whole file moved correctly.
The subtitle shifter does exactly this: enter a positive or negative offset and it moves every timestamp at once, in your browser, without re-timing anything else. Because the gap is constant, one number fixes the entire file.
Shift subtitle timing by an offsetHow do I fix gradual drift?
Drift cannot be fixed by shifting, because a shift moves every cue by the same amount and the error here is different for every cue — tiny at the start, huge at the end. What you need is to change the speed of the subtitle timeline so it matches the video. This is a linear resync.
The usual root cause is a frame-rate mismatch. Film is often 23.976 frames per second, while a lot of broadcast and PAL content runs at 25. A subtitle file authored for one and played against the other slowly slides out of time, because each second of subtitle timeline maps to slightly more or less than a second of video.
Subtitles made for 25 fps, video is 23.976 fps
Start of file: drift is imperceptible
30 minutes in: ~1.3 seconds off
End of a film: ~5 seconds off and climbingThe clean fix is to give the tool two matching points — the first spoken line and the last — and let it stretch or compress everything in between so both ends line up. Once the endpoints match, every cue in the middle lands correctly too, because the error was linear all along.
- Note the correct time for the first line of dialogue and for the last line of dialogue in the video.
- Feed both the original subtitle times and those two correct times into a linear resync.
- The tool rescales the whole timeline so the first and last cues match, and everything between falls into place.
The subtitle sync fixer handles this two-point resync, and if you already know the exact frame-rate ratio, the subtitle speed changer rescales by a factor such as 23.976/25 directly. Both keep the file on your device.
Resync drifting subtitlesWhat if only part of the file is off?
Sometimes captions are perfect for the first half and then suddenly jump out of sync. That points to the video itself being recut — an advert break removed, a scene trimmed, or two sources spliced together. A global shift or resync will fix one half and break the other.
The answer is to treat the file as two pieces. Split it at the point where the sync breaks, shift each section by its own offset, then rejoin them. You can do this in the full subtitle editor, where you can select a range of cues and move only those. Before you publish anywhere, run the result through the subtitle timing checker to catch any overlaps the edit introduced.
If the ultimate goal is to burn these captions onto a clip once they are in sync, our guide to adding subtitles to a video covers that last step.
Frequently asked questions
My subtitles are exactly a few seconds behind the whole time. What do I do?
That is a constant offset — the simplest case. Measure the gap on one line and shift the entire file by that amount. No resync is needed because the error never changes.
The subtitles start fine but get worse as the film goes on. Why?
That is drift, and it almost always means the subtitle file was made for a different frame rate than your video. Fix it with a linear resync that anchors the first and last lines, or rescale by the frame-rate ratio.
How do I measure the offset precisely?
Pause on a clear line of dialogue and note the player’s current time, then compare it to when the subtitle for that line appears. The difference is your offset. Do this for a line near the start and one near the end to tell an offset apart from drift.
Will fixing the timing change the wording?
No. Shifting and resyncing only move timestamps — the text of every cue is untouched. You are correcting when lines appear, not what they say.