Subtitle FPS Converter
Rescales SRT and VTT timecodes between frame rates like 23.976 and 25, with an optional offset. Runs in your browser.
How it works
Drop an .srt or .vtt file, choose the frame rate the subtitles were written for and the frame rate of the video you actually have. Every timecode is multiplied by the ratio between them. A preview shows the first cues at their new times before you commit, so you can sanity-check the direction of the shift.
Frame rates and custom ratios
The presets are 23.976, 24, 25, 29.97 and 30, which cover film, PAL and NTSC conversions and the pulldown pairs that cause most drift. If your case is not one of them, type the multiplier directly — a ratio is a ratio, and the tool does not care where the number came from.
Offset on top of the scale
Rescaling fixes drift, where subtitles start correct and slide further out as the file plays. A constant lag from a different opening credit sequence is a separate problem, so an offset in milliseconds is applied after the scale. Negative values pull the subtitles earlier. If a converted cue would end before it starts, its duration is clamped to one millisecond rather than inverting.
Why it runs in your browser
This is arithmetic on a text file — a few hundred multiplications — and there has never been a good reason for it to require an upload, an account or a queue. The parser and serializer are TypeScript in this tab, the file is written straight back out, and nothing is retained.