Subtitle FPS Converter

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

Free subtitle FPS converter. Rescales every cue timestamp by the source-to-target frame-rate ratio to resync SRT or VTT subtitles after a video was converted between frame rates. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Why do subtitles drift after a frame-rate conversion?

When a film is converted from, say, 25 fps to 23.976 fps, its real-time duration changes, but subtitle timestamps made for the original speed are not. The result is a small error that grows steadily: captions start almost right, then slip further out of sync as the video plays.

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.

The PAL/NTSC mismatch explained

Film and television have historically run at different speeds. Film and modern streaming commonly use 23.976 fps (technically 24000/1001). European PAL television runs at 25 fps. When a film mastered at 23.976 fps is broadcast on PAL at 25 fps, the video runs approximately 4.2% faster than intended. A subtitle file made for the 23.976 version starts nearly in sync but drifts further out with every passing minute — potentially several minutes off by the end of a feature film.

The fix is to multiply every timestamp by 23.976 ÷ 25 = 0.9590, compressing the subtitle timeline by the same 4.2%.

How to identify the problem: drift versus fixed offset

These two symptoms look similar at first but require different fixes:

  • FPS mismatch (use this tool): captions start nearly right but slip progressively as the video plays. The error at 10 minutes is noticeably different from the error at 90 minutes.
  • Fixed offset (use a time shifter instead): every caption is off by exactly the same amount throughout, from the opening scene to the closing credits.

Common frame-rate pairs

SourceTargetScale factorTypical scenario
23.976250.9590Film subtitle on PAL broadcast
2523.9761.0427PAL rip played on 24 fps source
29.9723.9760.7992NTSC TV sub on film video
24250.9600True 24 fps content on PAL

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.