Why framerate breaks subtitle timing
Subtitles store wall-clock times, but those times were calculated against a specific framerate. Play the same subtitles against a video running at a different rate and every cue lands at the wrong moment — and because the error is a ratio, it grows as the film goes on. A line that’s 0.1 s off at the start can be six seconds off by the credits. That telltale widening gap is the signature of a framerate mismatch.
What this tool does
It multiplies every timestamp by source ÷ target. The most common pair is PAL 25 fps versus
film 23.976 fps:
25 → 23.976 fps (× 1.04271…)
01:00:00,000 becomes 01:02:33,754
00:30:00,000 becomes 00:31:16,877 Notice both lines move, but the later one moves more — that’s the proportional correction a constant offset can’t provide. Going the other way (23.976 → 25) divides instead, pulling the timeline tighter.
Picking the right pair
Use the source rate the subtitles were authored for and the target rate of your actual video file. The standard suspects: 23.976 (NTSC film), 24 (true cinema), 25 (PAL), 29.97 (NTSC video) and 30. If you don’t know the source rate but you can spot two lines whose correct times you know, the two-point sync tool derives the same correction without needing the numbers.
Limits
Framerate conversion only fixes drift that is genuinely caused by a rate mismatch. If subtitles are also offset by a fixed amount (different intro length, for instance), apply an offset with the shifter afterwards. Everything runs locally, instantly, with no upload.