Subtitle framerate converter

Rescales every timestamp from one framerate to another to fix progressive drift. Presets for 23.976, 24, 25, 29.97 and 30. In your browser, no upload.

Runs in your browser. Files never leave your device.

Drop a subtitle file

or ·

SRT, VTT or ASS · processed in your browser · nothing is uploaded

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.

Frequently asked questions

How do I know which framerates to pick?

Source is the framerate the subtitles were timed for; target is your video’s framerate. The classic case is a subtitle made for a 25 fps PAL release played against a 23.976 fps film transfer (or vice-versa). If you’re unsure, the most common mismatch pair is 25 ↔ 23.976.

Framerate conversion vs the subtitle shifter — which do I need?

If the subtitles drift further out the longer the video plays, that’s a framerate problem — use this tool. If everything is off by the same fixed amount, you just need an offset; use the shifter. If you can’t identify the framerates but can mark two correct lines, the shifter’s two-point sync fixes drift too.

What exactly does it change?

Every timestamp is scaled by source ÷ target. Going 25 → 23.976 multiplies times by about 1.043, so the subtitles play slightly slower (later) to match the longer-running film. Text is never touched.

Does this work on VTT and ASS too?

Yes. SRT, VTT and ASS are all supported, and the file is written back in the same format it came in.

Is anything uploaded?

No. The retiming runs in your browser; the file never leaves your device.