Subtitle Time Shifter / Resync

Shift subtitles by a fixed offset or stretch linearly between two anchor points.

Free subtitle resync tool. Apply a constant millisecond offset or a two-point linear sync to SRT, VTT or ASS files to fix captions that are ahead, behind, or drifting. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

When should I use a constant offset versus linear sync?

Use a constant offset when every caption is off by the same amount — for example the whole file is half a second late. Use two-point linear sync when the captions start almost right but drift further out as the video plays, which usually means a frame-rate mismatch.

The subtitle time shifter fixes captions that are out of sync with the audio. It works two ways: a constant offset for a uniform delay, and a two-point linear sync for subtitles that start about right but drift further apart as the video plays. It reads SRT, VTT and ASS files, rewrites every timestamp, and gives you a corrected file in the same format.

How it works

Every subtitle timestamp is converted to milliseconds, transformed with an affine map t' = a·t + b, then written back in the original format. In offset mode the scale a is 1 and the intercept b is simply your chosen delay — so a value of -0.5s subtracts 500 ms from every cue. In linear mode you supply two anchor points: for each you say what the current time is and what it should become. The tool solves for the line through those two points, where the slope is (d2 − d1) / (s2 − s1) and the intercept is d1 − slope·s1. That single line corrects both the starting offset and any gradual drift.

Because the transform is applied to the timestamps only — matched by a format-aware regular expression — the cue text, numbering and structure of the file are left untouched.

Example and tips

Suppose your subtitles are spot-on at the start but a full second late by the one-hour mark. Set anchor 1 to current 0s should-be 0s, and anchor 2 to current 3600s should-be 3599s. The tool computes a scale slightly below 1 and stretches the whole timeline so the captions stay aligned end to end — something a single offset can never do.

Tip: if you only know one error point, use offset mode. If captions are perfectly synced for the first few minutes and then slip, the slip is almost always a frame-rate problem — linear sync fixes it, and the dedicated FPS converter can do the same from frame rates rather than seconds. All processing happens locally in your browser.