Subtitle shifter & converter
All tools

How to Sync Subtitles With a Video

Out-of-sync subtitles almost always have one of two problems: a constant delay or a gradual drift. Work out which one you have, and the fix takes about a minute.

By the Feeed team · · 5 min read

To sync subtitles with a video, first check whether the subtitles are off by the same amount everywhere (a constant offset, fixed with a single time shift) or whether the gap grows as the video plays (drift, fixed by stretching the timing with two-point sync).

Most subtitle files you download were timed against one specific release of a film or episode. If your copy has a few extra seconds of studio logos, a different frame rate, or a slightly different edit, the text no longer lines up with the speech. The good news is that timing errors follow simple patterns, and once you know which pattern you are looking at, the repair is mechanical.

Step 1: Diagnose offset vs. drift

Play the video with the subtitles at three points: near the start, around the middle, and near the end. At each point, find a line of dialogue with a clear beginning, such as a character speaking after a pause, and estimate how early or late the subtitle appears.

  • Same gap everywhere (for example, always about 2 seconds late): you have a constant offset. It usually comes from a different intro, a removed logo, or a recording that started earlier.
  • Gap grows over time (fine at the start, 30 seconds off by the end): you have drift. This is almost always a frame-rate or speed difference between the release the subtitles were made for and the one you have.
  • Fine, then suddenly off by a fixed amount: part of the video is missing or added, such as an ad break, a recap, or a scene that exists in only one version. The fix is a partial shift.
Constant offset: every subtitle is late by the same amount DialogueSubtitles
Constant offset: every subtitle is late by the same amount, so one shift moves the whole track into place.

Write down the direction as well as the size. If the subtitle appears before the actor speaks, the cues must move later. If it appears after the line is spoken, the cues must move earlier.

Step 2: Fix a constant offset with a shift

A constant offset is the easiest case. Every cue moves by the same amount, so a single number fixes the whole file. In the subtitle shift tool, open your SRT, VTT, ASS, or SSA file, enter the amount, choose earlier or later, and save. A subtitle that shows at 00:10:04,500 with a 2.5-second later shift becomes 00:10:07,000, and every other cue moves the same way.

To find the exact amount, pick one line, note the time its subtitle appears, then note the time the words are actually spoken. The difference is your shift. Half a second of error is noticeable, so it is worth being precise; stepping through the video slowly around the line helps.

Step 3: Fix drift with two-point sync

When the gap grows, a single shift only helps one part of the film. You need to stretch or compress the whole timeline instead. Two-point sync does this with just two reference lines, one near the beginning and one near the end. You enter when each of those two cues should appear, and the tool works out both the offset and the speed difference at once.

Drift: the gap grows as the video plays DialogueSubtitles
Drift: the gap between speech and subtitles grows as the video plays, so the timeline has to be stretched, not just shifted.

The math is a straight line through your two points. Call the current times of the two reference cues a1 and a2, and the times they should appear b1 and b2. Then:

  • factor = (b2 − b1) ÷ (a2 − a1)
  • new time = b1 + (t − a1) × factor, applied to every cue time t

Here is a worked example. The first reference cue is at 00:01:40 but should be at 00:01:42. The second is at 01:25:00 but should be at 01:28:22. In seconds, that gives a factor of (5302 − 102) ÷ (5100 − 100) = 5200 ÷ 5000 = 1.04. A cue currently at 00:43:20 (2600 seconds) moves to 102 + (2600 − 100) × 1.04 = 2702 seconds, or 00:45:02.

A factor close to 1.04 is a strong hint that the subtitles were made for a 25 fps release and your video runs at 23.976 fps; the frame rate drift guide explains why. If you already know both frame rates, the FPS converter applies the exact factor without any measuring.

Pick reference lines that are far apart, ideally within the first and last ten minutes, and that start cleanly after a silence. The farther apart they are, the smaller the effect of any measuring error.

When only part of the file is off

TV recordings and alternate cuts often produce subtitles that are perfect up to a point and then jump. A recorded broadcast might include a three-minute ad break that the original release did not have, or an extended edition might add a scene halfway through. In these cases, shift only the cues from the first wrong one onward:

  1. Find the first cue that is out of sync, for example cue 412.
  2. Measure how far off it is, as in Step 2.
  3. Apply a partial shift starting at cue 412, leaving everything before it untouched.
  4. Keep watching. If there is another break later, repeat from that cue.

If a scene was removed rather than added, shift the later cues earlier. The subtitles that belonged to the missing scene may then need to be deleted in the subtitle editor so they do not pile up on top of the next lines.

Checking the result

After any fix, spot-check again at the start, middle, and end. In SubTweak's cue editor you can load your local video file next to the subtitles to preview the timing; the video stays on your device, just like the subtitle file. Good timing means each subtitle appears within a fraction of a second of the speech and disappears when the line ends.

If the start is now right but the end is still off, the problem is drift rather than offset, so use two-point sync. If cues now overlap or flash too briefly, the Fix tab can clean up overlaps and minimum durations; the timing guidelines suggest sensible values.

Temporary fix: adjust the delay in your player

If you just want to watch tonight, most players can delay subtitles on the fly. This only lasts for the current session and only corrects a constant offset, not drift, but it is also a quick way to measure how much shift you need.

PlayerSubtitles earlierSubtitles laterStep per key press
VLCGH50 ms
mpvzx100 ms

These are the default shortcuts; if they do nothing, check the hotkey list in your player's preferences. The delay shown on screen is the number to use for a permanent fix: a VLC subtitle delay of +1500 ms means shifting the file 1.5 seconds later.

Quick answers

Why are my subtitles perfect at first and then slowly fall behind? That is drift, usually caused by a frame-rate mismatch. A shift cannot fix it; use two-point sync or a frame-rate conversion.

Will syncing change the text? No. Only the start and end times change.

Do I need to upload my video? No. SubTweak runs in your browser, and neither the subtitle file nor the optional preview video leaves your device.

Sync your subtitles →