SubToolbox

Shift Subtitles — Offset, Resync & Frame-Rate Fix

Fix subtitles that show too early or too late — shift everything by an offset, or resync with two sync points. In-browser.

Quick answer: If captions are uniformly early or late, enter an offset (for example −2.5 seconds) and shift everything. If they drift — right at the start, wrong at the end — use two sync points and the timings are stretched or squeezed linearly between them.

Drop a subtitle file here, or browse — it stays on your device

Core facts
Constant offset± hours:minutes:seconds,ms applied to every cue
Two-point resync“At 1:02 the line should show at 1:00; at 45:00 → 44:30” → linear fix
Frame-rate fix23.976 ↔ 24 ↔ 25 ↔ 29.97 — the PAL-speedup class of errors
Works onSRT, VTT, ASS/SSA, SBV, TTML, .sub (auto-detected)
PrivacyRuns in the browser; no upload

What this tool does

Out-of-sync subtitles come in three shapes. A constant offset — everything is exactly two seconds late — happens when a release has a different intro or a streaming bumper; one global shift fixes it. Drift — perfect at the start, worse as the film runs — means the subtitle's clock runs at the wrong rate: a PAL-speedup transfer (23.976→25 fps) or a different cut; the fix is linear rescaling between two points where you know the truth (“this line is spoken at 1:02, this one at 45:00”). And frame-rate mismatch is drift's most common cause, so the direct 23.976↔25 conversion is provided too. This tool does all three locally: pick the mode, see the first and last cues before and after, and download only when the numbers look right.

Common uses

  • Subtitles consistently 2 seconds late after a streaming ad bumper
  • Perfect at minute 1, five seconds off by minute 90 — the drift case
  • A 25 fps PAL transfer paired with a 23.976 fps subtitle file
  • Merged episodes where part two needs a one-hour push forward

Why two points, not one

A single “this line should be at X” fixes an offset only. Real drift needs a rate change, and a rate plus an offset is exactly what two point-pairs define: the line through them maps every other timestamp. This is the same maths Subtitle Edit and Aegisub apply with their synchronization tools, doing it here without installing anything.

Frequently Asked Questions

How do I know whether to shift or resync?
Note the error at two places. If it is the same (2 s late at minute 2 and at minute 80), a constant shift fixes it. If it grows (0.5 s late at the start, 6 s at the end), the rate is wrong — use two sync points or the frame-rate conversion.
What exactly do the two sync points mean?
Each point is a pair: the time the line currently appears in the subtitle, and the time it should appear in the video. Two pairs define a linear mapping that shifts and scales every cue between and beyond them.
Which frame rate conversion do I need?
Match the subtitle's assumed frame rate to the video's actual rate. The classic case: subtitles timed for 23.976 fps film played with a 25 fps PAL-speedup video — converting 23.976→25 compresses times by 4% and restores sync.
Can I preview before saving?
Yes — the first, middle and last cues are shown with their before and after times, so you can sanity-check the direction and magnitude before downloading.

More subtitle timing tools