SHIFT · STRETCH · FRAMERATE FIX
Drop an .srt or .vtt file here or click to browse
SubRip (.srt) and WebVTT (.vtt) · nothing is uploaded — the file is read on your device
A subtitle file that does not match its video is almost always wrong in one of two ways, and telling them apart takes ten seconds. Play the first minute: if the subtitles are out by, say, two seconds there and still out by two seconds an hour later, it is a delay, and one offset fixes the whole file. If they are nearly right at the start and a minute out by the end, it is a framerate mismatch, and shifting will never fix it — the file has to be stretched.
Subtitle Sync does both, and does them in the browser. The file is read on your device, the timestamps are recalculated there, and the corrected file is written there. Nothing is uploaded, which also means it works on a file you would rather not send anywhere.
Film is shot at 24 frames per second, and the digital masters that follow it run at 23.976. European television runs at 25. The cheapest way to get one onto the other is simply to play the film faster — the PAL speed-up — so a 24-frame second becomes a 25-frame second and the whole film finishes about 4% early.
Subtitles timed against the slower copy therefore fall further behind the faster one with every minute that passes: about 2.5 seconds after a minute, 25 seconds after ten, and roughly three and a half minutes by the end of a two-hour film. Multiplying every timestamp by 23.976 ÷ 25 puts them back. That is exactly what the PAL preset does, and why it fixes files that no amount of shifting will.
Only the timestamps change. The text of every line, its line breaks and its ordering are written back exactly as they were read. WebVTT cue settings such as line:90% or align:start are positioning rather than timing and are carried through untouched, along with NOTE and STYLE blocks. Converting to SRT drops those, because SRT has nowhere to put them — that is a property of the format, not a loss in the tool.
A negative offset: -2. Late subtitles need to be moved earlier in the file, and the offset is added to every timestamp, so moving them earlier means adding a negative number. If they appear before the line is spoken, use a positive offset instead.
The file was timed against a copy of the video running at a different framerate, most often 23.976 fps against 25 fps. The error is proportional to elapsed time, so it is invisible in the first scene and enormous in the last. Use the Framerate tab, or the Two points tab if you do not know which framerates are involved.
None, in the file itself — SRT stores times, not frames. The difference is the video each set of times was measured against. A 23.976 fps master and a 25 fps PAL transfer of the same film are the same footage played at different speeds, so a given line of dialogue happens at a different clock time in each. Multiplying every timestamp by 23.976 ÷ 25 (or the reverse) converts between them.
No. The file is read, recalculated and written entirely in your browser. It is never sent to KlipTools or anywhere else, and the tool keeps working if you go offline after the page has loaded.
Yes. The download format is a separate choice from the file you loaded, so you can load an SRT and save a WebVTT, or the reverse. SRT output is renumbered from 1 and uses comma decimals; VTT output uses full stops and keeps its header.
No. Files are read and written as UTF-8, and the subtitle text is copied through untouched — only the numbers on the timestamp lines are recalculated.
A cue that would begin before 00:00:00 is moved to the start of the file rather than written with a negative time, which most players reject. A cue that would finish before 00:00:00 is dropped, because there is no valid place to put it. Both counts are reported above the preview so you can see whether anything you cared about was affected.
Use the helper on the Shift tab. Pick a line from the list, play the video until you hear it, pause, and type the player's time. The offset is filled in from the difference. Doing the same thing at the start and at the end — on the Two points tab — also corrects any drift between them.
Not yet. Subtitle Sync reads SubRip (.srt) and WebVTT (.vtt), which is what streaming sites, players and video editors accept. Convert other formats to SRT first, resync, and convert back if you need to.
Not in one pass. A file where the error changes abruptly — usually because a scene was cut from one release and not the other — needs each section handled separately. Split the file, correct the parts independently, and join them. Shift and stretch both assume a single steady relationship between the subtitles and the video.