Subtitle FPS Converter
Rescale subtitle timing between frame rates in your browser. Use this free subtitle FPS converter when SRT or VTT subtitles were timed for one frame rate (for example 23.976) but you are playing them against a video at a different frame rate (for example 25). The tool multiplies every timestamp by the correct ratio so cues line up with spoken dialogue from start to end.
Drop your SRT or VTT file
Accepts .srt and .vtt · runs in your browser
Subtitles off by a constant amount instead of drifting?
Use the Subtitle Timing Shift tool instead — FPS conversion is the wrong fix for a uniform delay.
How to Convert Subtitle FPS in 3 Steps
- 1
Drop your SRT or VTT file
Start with the subtitle file you need to rescale. The tool detects SRT and VTT automatically and runs the entire conversion locally so nothing is uploaded.
- 2
Pick source and target FPS
Source FPS is the frame rate the subtitles were originally timed for. Target FPS is the frame rate of the video you are now playing. Common presets cover film, PAL, and NTSC rates; custom values are supported for non-standard frame rates.
- 3
Preview and download
Review the before-and-after preview, then download the rescaled file. The output filename records the FPS conversion so you can tell rescaled copies apart from the original.
Why Frame-Rate Mismatches Happen
Subtitle timestamps are recorded in wall-clock hours, minutes, seconds, and milliseconds — not in frame numbers. But the person who timed them usually worked against a specific video cut. When the same subtitle file is played against a version of the video with a different frame rate, every cue drifts because the video is playing the dialogue at a slightly different pace.
- 23.976 ↔ 25 (film ↔ PAL):Cinema film is typically 23.976 fps. European broadcast (PAL) is 25 fps. Films released on PAL are sped up by about 4%, so subtitles timed for the cinema release drift further behind over a 90-minute film by nearly four minutes if played on a PAL transfer.
- 29.97 ↔ 30 (NTSC drift):True 30 fps and 29.97 fps look identical to the eye but drift apart over long runtimes. The 0.1% difference compounds to several seconds over a feature film, which is enough to notice on the final act of a long movie.
- 23.976 ↔ 29.97 (telecine):Film-to-NTSC conversions apply 3:2 pulldown. Subtitles timed for the theatrical release often need rescaling when paired with an NTSC broadcast or DVD copy.
- High frame rate content:HFR releases at 48, 50, or 60 fps need corresponding subtitle rescaling if the subtitle file comes from a standard-rate master.
How FPS Rescaling Actually Works
Every timestamp in the subtitle file is multiplied by the ratio of source to target FPS. If the source FPS is lower than the target, the ratio is less than one, which pulls cues earlier in the timeline. If the source is higher than the target, the ratio is greater than one and cues move later. The pattern below shows how a single timestamp moves during a 23.976 → 25 conversion.
source_fps = 23.976
target_fps = 25
ratio = source_fps / target_fps = 0.95904
original 00:10:00,000 → rescaled 00:09:35,424
original 01:30:00,000 → rescaled 01:26:18,816
Because the tool rescales every cue in one pass, both start and end times of every line stay internally consistent. No cue is stretched relative to another — the whole timeline just shifts to the new frame rate.
Common Use Cases
- Subtitles from a PAL release paired with an NTSC video:European DVD rips often ship with 25 fps-timed subtitles that drift when paired with a 23.976 NTSC source. Convert 25 → 23.976 to realign them.
- Cinema subtitle files paired with a broadcast cut:A theatrical 23.976 fps subtitle file drifts against a PAL broadcast at 25 fps or an NTSC broadcast at 29.97 fps. Pick the appropriate pair to rescale.
- Blu-ray remux with subtitles from a DVD:DVD subtitles are often authored at 29.97 fps, and Blu-ray remuxes frequently play at 23.976 fps. The mismatch is a classic home-theater FPS conversion case.
- Fan-provided subtitles for the wrong video source:Community-created subtitle files often specify which video source they were timed for. If that does not match what you have, FPS conversion is usually the fix.