Subtitle FPS Converter
BetaRescale every subtitle timestamp from one frame rate to another, such as 23.976 to 25, to fix captions that drift further out of sync the longer a video plays. Drop SRT or VTT files and download them retimed. Nothing is uploaded.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Factor 0.95904 · the track plays about 4.1% shorter
Common uses
Film subtitles against a PAL copy
PAL subtitles against a film-rate copy
NTSC broadcast captions
A whole season at once
Why do subtitles drift?
Subtitle FPS Converter rescales the timings in a SubRip (.srt) or WebVTT (.vtt) caption file from one frame rate to another, entirely in your browser. Every timestamp is multiplied by the source frame rate divided by the target: converting 23.976 to 25 gives a factor of 0.95904, so a cue at ten seconds moves to 9.590, and one at an hour moves to 57 minutes 32 seconds.
That growing gap is the signature of a frame-rate problem, and it is what separates this from a subtitle delay. A delay adds the same number of milliseconds to every cue, which is right when a track is uniformly early or late. When a video has been converted between frame rates the error is proportional to elapsed time instead, so no single delay can line up both the first scene and the last. Multiplying by the ratio corrects the whole file at once.
Files are read with the File API and rescaled in the tab, so nothing is uploaded and nothing is stored. Cue text, line breaks and WebVTT cue settings are copied through exactly as read — only the timestamps change. If several files need the same correction, drop them together and download the set as a ZIP. For a constant offset rather than drift, use the Subtitle Shifter; to join files that were exported in parts, use the Subtitle Merger.
How it compares
Subtitle Edit has done this for years and does it well, with the caveat that it is a Windows desktop install. So does Aegisub, and so does a short Python script if you are comfortable writing one. All three are reasonable answers when the machine is yours and the job comes up often.
The case for a page is the other situation: one file, someone else's laptop, no install. Frame-rate conversion is arithmetic on a text file, which is exactly the kind of work a browser can do without sending anything anywhere. This tool reads the file locally, multiplies the timestamps and hands the result straight back, which means it also works offline once the page has loaded.
It deliberately does not re-encode video, detect the frame rate of a video file for you, or guess which conversion you need. Reading the rate from your player takes a few seconds and is reliable; guessing it from a subtitle file is not.
Tips
- If the subtitles start correct and drift further out as the video plays, frame rate is the cause and this is the right tool. If they are out by the same amount from the first line to the last, use the Subtitle Shifter instead.
- The most common pair by far is 23.976 and 25, in one direction or the other. Try that first before hunting for exact rates.
- 23.976 is really 24000/1001 and 29.97 is 30000/1001. The presets use the rounded decimals, which are accurate to well under a millisecond across a feature-length file.
- The drift figure next to each file is how far its last cue moved. If it is close to zero, the two rates you picked are nearly the same and probably not the problem.
- Frame rate and a constant offset can both be wrong at once. Fix the frame rate here first, then shift the result, because shifting first means re-doing it after the rescale.
- The output keeps the format it came in as, so a .vtt stays a .vtt with its cue settings intact.