How to fix out-of-sync subtitles

Subtitles that run ahead of or behind the audio come from one of two problems, and each has its own fix. Before you change anything, work out which one you have, because the wrong fix will not help. The quick test: check how far off the subtitles are near the start, then check again near the end.

Case 1: the whole file is off by the same amount

If a line near the start is two seconds late and a line near the end is also about two seconds late, the file is off by a constant offset. This is the common case, and it usually means the subtitles were made for a slightly different cut of the video, one with a longer intro, extra logos, or a different starting point. The fix is to slide every cue by that amount. Open the Shift tool, enter the offset, and nudge until a few lines land. Push later with a positive number when the text is early, pull earlier with a negative number when it lags.

Case 2: the gap grows as the video plays

If the subtitles are close at the start but drift further out the longer it runs, a single shift will not save you, because the error is not constant. This is almost always a framerate mismatch: the subtitles were timed against a version of the video running at a different frame rate, such as 23.976 against 25, so a tiny per-frame error piles up over the runtime. Fix it with the Framerate tool, which scales the timing to the correct rate instead of moving it by a fixed amount.

Case 3: only one stretch is off

Sometimes the start of the file is perfect and everything after a certain point is shifted, or the reverse. That points to an edit in one version and not the other, like an advert break, a trimmed recap, or an added scene, which knocks everything after it out of place. Rather than shifting the whole file and breaking the good part, move only the affected range with the Partial Shift tool.

The one-minute diagnosis

Do not guess. Check the offset at the start and again near the end. Same gap in both places means a constant offset, so use Shift. A gap that grows means drift, so use Framerate. A gap that appears only after a certain point means a single section moved, so use Partial Shift. Everything runs in your browser, and your file is never uploaded.

FAQ

How do I know if it is a constant offset or drift?

Check the gap in two places. Note how far off a line is near the start, then check a line near the end. If both are off by the same amount, it is a constant offset and a single shift fixes the whole file. If the gap is small at the start and larger by the end, the timing is drifting, which needs the Framerate tool instead.

Which direction do I shift?

If the text appears before it is spoken, it is early, so push it later with a positive offset. If it lags behind the audio, it is late, so pull it earlier with a negative offset. Nudge in small steps and watch a couple of lines until they land.

The subtitles start in sync but drift further off as it plays. Why?

That is almost always a framerate mismatch: the subtitles were timed for a version of the video running at a different frame rate, so a small error compounds over the runtime. A constant shift cannot fix it because the error is not constant. Convert the framerate with the Framerate tool, which scales the timing rather than moving it.

Only part of the file is off. What then?

That usually means a section was cut or added, so everything after that point is shifted while the rest is fine. Move just the affected range with the Partial Shift tool rather than shifting the whole file.