Free tools · browser-only · nothing uploaded

Subtitle sync & shift.

If subtitles appear 2 s late enter -2, if early enter +2. If they start in sync but drift apart, it is a frame-rate mismatch (23.976 ↔ 25 fps) — fix it with the stretch factor, e.g. 1.043 to fit 25 fps subtitles to a 23.976 video. You get the same format back.

Drop subtitle files here

or click to choose · SRT, VTT, SBV, ASS/SSA, SMI · up to 20 files

25 → 23.976 fps: 1.043 · 23.976 → 25 fps: 0.959

Need this file in another language? Translate it into 36 languages with the timing intact. First file free.

Translate

Questions

How do I know how much to shift?
Compare the time of the first spoken line in the video with the first cue in the file. If the cue says 00:00:05 and the line is spoken at 00:00:03, enter -2.
They match at the start but drift later.
That is a frame-rate mismatch. Use the stretch factor instead of shift: 1 ± (seconds off at the end ÷ video length in seconds).
What if a cue goes below zero?
Times are clamped at 0. Reduce the shift slightly so the first cue is not cut off.