SubFly

How to Fix Subtitle Timing and Sync Drift for Good

Formats & timing · 6 min read · Updated 21 October 2026

Why subtitles run early, late or drift out of sync - offsets, frame-rate mismatches, different cuts - and how to diagnose and fix each one for good.

Few things ruin a viewing faster than subtitles that don't match the dialogue. Sometimes every line is half a second late. Sometimes the first scene is perfect and by the end of the episode the subtitles are ten seconds behind. These are different problems with different fixes, and applying the wrong fix makes things worse. This guide shows how to tell them apart and fix each one so it stays fixed.

First, diagnose: which kind of sync problem is it?

Load the video and the subtitles in a player and check three points: a line near the start, one in the middle, and one near the end. For each, note roughly how early or late the subtitle appears.

What you see What it usually means
Same delay everywhere (e.g. always 1.5 s late) Constant offset
Delay grows steadily over time Speed or frame-rate mismatch
In sync, then suddenly off by a fixed amount Different cut - a scene, recap or ad break was added or removed
Some lines early, some late, no pattern Poor original timing, or a different release entirely

Most problems are one of the first three, and each has a clean fix.

Problem 1: a constant offset

Every subtitle is early or late by the same amount. This happens when the subtitle was timed to a version of the video with a slightly longer or shorter intro, a studio logo, or a few seconds of black at the start.

Quick test in a player. In VLC, press G and H to move subtitles earlier or later in 50 ms steps until they line up. That tells you the offset - but it only lasts for that viewing.

Permanent fix. Shift every timestamp in the file by the offset. In Subtitle Edit, use Synchronization → Adjust all times (show earlier or later). In Aegisub, use Timing → Shift Times, select all lines, and enter the offset. Save, and the file is fixed for good.

Problem 2: drift caused by frame rate

The subtitles start in sync but slowly fall behind (or race ahead) through the episode. By the end, they can be a minute off in a feature film. This is a speed mismatch, almost always caused by frame rates.

The classic case: subtitles timed for a 23.976 fps release, played with a 25 fps release of the same film. European PAL broadcasts were sped up by about 4% to fit 25 fps, so everything - dialogue included - happens slightly sooner. The ratio is 25 ÷ 23.976 ≈ 1.0427, so after 45 minutes the error is close to two minutes.

Fix it by changing the speed, not the offset. Shifting won't help; the timestamps need to be stretched or squeezed by the frame-rate ratio.

  • In Subtitle Edit, use Synchronization → Change frame rate and pick the source and target rates (for example 23.976 → 25).
  • Alternatively, use two-point synchronisation: pick one line near the start and one near the end, tell the tool when each should appear, and it calculates both the offset and the stretch. Subtitle Edit calls this Point sync; it fixes speed and offset in one go.

Common frame rates you'll see: 23.976, 24, 25, 29.97 and 30 fps. If you know both the subtitle's and the video's rate, convert directly. If you don't, two-point sync works without knowing either.

Problem 3: a different cut of the video

The subtitles are perfect until a certain scene, then they're off by a fixed amount for the rest of the episode. Something was added or removed at that point - a recap, an ad break, a censored scene, an extended cut.

Fix it in sections. Find the point where the sync breaks, select every line from there to the end, and shift only those. If there are several breaks (common with broadcast versions that had ad breaks), repeat for each section. In Aegisub, select the lines from the break onwards and use Shift Times on the selection only.

Problem 4: timing that was never right

If lines are early and late with no pattern, the original subtitles were probably timed by ear for a different release, or auto-generated. Shifting and stretching won't fix them.

Options, from quickest to most thorough:

  1. Automatic audio sync. Open-source tools such as ffsubsync compare the subtitle timing to the speech in the video's audio track and re-align the file. They handle offsets and many speed problems automatically, and often rescue badly timed files.
  2. Snap to scene changes. In Aegisub, load keyframes from the video and use the timing post-processor to snap line starts and ends to nearby shot changes. Subtitles that cross a cut are distracting even when they're technically "in time".
  3. Retime by hand. For a release you care about, retime line by line using the audio waveform. It's slow, but it's how professional timing is done.

Don't let translation create new drift

Here's a problem that catches people out: the original subtitles are perfectly timed, and the translation is out of sync. That happens when the translation process changes the structure of the file:

  • two short lines are merged into one, so every following line moves up a slot;
  • a line is dropped or duplicated;
  • timestamps are rewritten, rounded or reformatted on the way through a tool that doesn't understand subtitle files.

This is especially common when a whole file is pasted into a general-purpose chat assistant. The text comes back fluent, but the line count no longer matches and the timing is wrong from that point on.

The fix is to translate with a tool that treats timing as untouchable. SubFly never sends timestamps to the model at all: only the dialogue text is translated, every cue keeps its original start and end time, and each batch must come back with exactly the same number of lines or it's retried. The translated file has the same timing as the source, by construction.

A timing checklist before you publish

  1. Check sync at the start, middle and end of the video.
  2. Identify the type of problem before fixing it.
  3. Use offset for constant delays, speed change for drift, and section shifts for different cuts.
  4. Use audio-based sync for files that were never timed properly.
  5. Translate only after the timing is right, with a tool that preserves it.
  6. Check the start, middle and end again.

For more on getting subtitle files into shape before translation, see the complete guide to translating anime subtitles, and for how timing works in each format, SRT vs ASS vs VTT.

Related guides