Subtitle FPS Converter

Reframe subtitle timing between frame rates like 23.976 and 25 fps.

Ad placeholder (leaderboard)

The subtitle FPS converter resyncs captions after a video has been converted between frame rates. The most common case is the 23.976-versus-25 fps PAL/NTSC mismatch: a subtitle made for one speed will drift when played over the other. This tool multiplies every timestamp by the correct ratio so the captions stay aligned for the entire runtime, not just at the start.

How it works

When a subtitle authored for a source frame rate is played over a video running at a target frame rate, real time scales by sourceFps ÷ targetFps. The tool multiplies every cue timestamp by that factor. For example, converting a 23.976 fps subtitle to match a 25 fps video uses a factor of 23.976 ÷ 25 ≈ 0.959, slightly compressing the timeline; the reverse direction stretches it.

Because the error from a frame-rate mismatch is multiplicative rather than a fixed offset, it grows the further you get into the video — a few milliseconds early on, but potentially a second or more by the end. Scaling every timestamp by the ratio corrects the drift uniformly across the whole file. The tool detects SubRip or WebVTT, rewrites only the timestamps, and leaves the cue text and numbering untouched.

Example and notes

A cue at 00:10:00,000 in a 23.976 fps subtitle, reframed to 25 fps, becomes about 00:09:35,424 — and the offset keeps growing in proportion to the time. That progressive correction is exactly what a single constant offset cannot achieve.

Note: if your captions are off by the same fixed amount everywhere and never drift, you want a plain time offset instead. The convenient swap button reverses the source and target frame rates in one click. Everything runs locally in your browser.

Ad placeholder (rectangle)