Free tool

Subtitle Frame Rate Converter: 23.976, 25, 29.97 and More

A subtitle frame rate converter fixes subtitles that drift: right in the opening scene, seconds off after half an hour, minutes off by the end. Pick the rate the subtitles were made for and the rate of your video, and every start and end time is multiplied by the ratio between them, using the exact 24000/1001 value for 23.976. The file is processed in your browser and isn't uploaded.

01 — Your file

Choose a subtitle file

02 — Preview

First subtitles

Choose a file to preview the result. Everything runs in this tab.

Using the subtitle frame rate converter

  1. Find your video's frame rate in your player's media or codec information panel, or in the file's properties.
  2. Under "Your video is", pick that rate. The choices are 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 fps.
  3. Under "Subtitles were made for", pick the rate of the release the subtitles were timed against. If you don't know it, run the ratio test further down this page first.
  4. Drop the SRT, VTT or MicroDVD .sub file into the box. For a .sub, the frame numbers are turned into times using the "made for" rate, or the rate written in the file's first line if it has one; changing the "made for" rate afterwards re-reads the file.
  5. Check the preview of the first subtitles. The file card also shows how many subtitles were read and when the last one ends.
  6. Choose SRT or WebVTT under "Save as" and press "Convert frame rate and download". The new file is named after the target rate, for example film-25fps.srt or film-23_976fps.srt.

Why a frame-rate mismatch makes subtitles drift

SRT and VTT files store clock times, not frames, so on their own they don't depend on frame rate. Drift appears when your copy of the video plays at a different speed from the copy the subtitles were timed against. The classic case is the PAL speed-up: a film made at 23.976 frames per second is released at 25 by playing the same frames faster. Every scene runs 25 ÷ 23.976 ≈ 1.043 times as fast, so a 100-minute film lasts about 95 minutes 54 seconds, roughly 4.1% shorter. The dialogue moves earlier by a growing amount, and subtitles timed for the slower version fall further behind.

Here is what that looks like for subtitles made for the 23.976 release and played over the 25 fps copy:

File says 00:10:00,000
The line is spoken at 00:09:35,425, so the subtitle shows 24.6 seconds late
File says 01:00:00,000
The line is spoken at 00:57:32,547, almost two and a half minutes late
File says 01:30:00,000
The line is spoken at 01:26:18,821, more than three and a half minutes late

A constant delay doesn't grow like this. If the gap is the same at the start and the end, the frame rate isn't the problem.

MicroDVD .sub files are different: they count frames, so the same mismatch appears when the frames are read at the wrong rate rather than when the video's speed changed. If all you need is to read a .sub correctly, the SUB to SRT converter with your video's rate does that in one step. Video frame rates explained covers where values like 23.976 and 29.97 come from.

Which conversion do you need? The ratio test

Subtitles rarely say which release they were made for. Instead of guessing, measure it:

  1. Play a line near the start. If it is off by the same amount as a line near the end, it is a constant offset: fix it with shift subtitle timing instead.
  2. Pick a line late in the film. Note the time written in the subtitle file and the time the line is actually spoken in your video.
  3. Divide the spoken time by the file time, both in seconds, and match the result:
About 0.959
Made for 23.976, video is 25. Convert 23.976 → 25. The subtitles get later and later.
About 1.043
Made for 25, video is 23.976. Convert 25 → 23.976. The subtitles get earlier and earlier.
About 0.960 or 1.042
24 and 25. Very close to the two rows above; the difference is 3.6 seconds per hour of film
About 0.999 or 1.001
23.976 and 24, or 29.97 and 30. A slow drift of 3.6 seconds per hour
Any other number
Not a standard frame-rate change. Use two-point sync, or the video was edited differently
Example

A viewer's subtitles look fine in the first scene, but a line timed 01:20:00 in the file (4,800 seconds) is spoken at 01:16:43 (4,603 seconds). 4,603 ÷ 4,800 = 0.959, so the file was made for 23.976 and the video is 25.

A rough shortcut is to compare when the last subtitle ends, shown on the file card, with the length of the video. End credits usually have no subtitles, so treat it as a hint, not a measurement.

The maths, exactly

Every time is multiplied by the "made for" rate divided by the video rate. For 23.976 → 25 that is (24000/1001) ÷ 25 = 24000/25025 ≈ 0.959041; for 25 → 23.976 it is 25025/24000 ≈ 1.042708. The converter swaps the rounded values people type for the exact ones, 24000/1001 for 23.976, 30000/1001 for 29.97 and 60000/1001 for 59.94, and rounds each result to the nearest millisecond. Because the stretch starts from zero, durations change by the same ratio: a 2.5-second subtitle becomes 2.398 seconds on the faster copy.

Before
01:00:00,000 --> 01:00:02,500 We leave at dawn.
After 23.976 → 25
00:57:32,547 --> 00:57:34,945 We leave at dawn.
After 25 → 23.976
01:02:33,750 --> 01:02:36,357 We leave at dawn.

Using 23.976 instead of the exact fraction would only add about 3.6 milliseconds per hour. Mixing up 23.976 and 24 is a far bigger error, a thousand times larger.

What is kept and what changes

  • Kept: the text, line breaks, the order and the number of subtitles.
  • Changed: every start and end time, and therefore every duration, by the same factor.
  • Removed: formatting tags such as italics, which are stripped when the file is read, plus WebVTT cue settings (position and alignment), NOTE and STYLE blocks and cue identifiers. Subtitles are numbered from 1 in the output.
  • A MicroDVD input comes out as SRT or VTT, not as a new .sub.

When frame-rate conversion is the wrong fix

  • A gap that jumps around between scenes means the video was cut differently from the one the subtitles were made for. No single factor fixes that; the guide to syncing subtitles with video explains two-point sync and when re-timing by hand is worth it.
  • A ratio that doesn't match any row above is still a straight-line stretch, but not between two standard rates; two-point sync, which takes the correct time of an early and a late line, handles any ratio plus an offset.
  • If you changed the video itself with the video frame rate changer, leave the subtitles alone. That tool drops or duplicates frames and keeps the running time, so the timing still matches.
  • If the edit no longer matches at all, make new subtitles from the final cut with the AI subtitle generator at 1 credit (0.1¢) per minute: a 96-minute film costs 96 credits (9.6¢). Only the audio track is uploaded for that, and it is deleted within 30 minutes of the job finishing.

Limits

  • One file at a time, up to 20 MB. Text subtitles only.
  • Eight preset rates; there is no field for a custom rate.
  • The converter doesn't look at your video, so it can't detect either rate for you. Use the ratio test.
  • It changes timing only. It never translates the text.

After converting

Open the video with the new file in the free subtitle editor to check a few lines against the picture, nudge individual lines and, if you like, export an MP4 with the subtitles burned in. If accented letters show up as odd symbols, re-save the file as UTF-8 with the subtitle encoding converter before anything else.

More free tools

Turn the file into text

Frequently asked questions

Is a frame-rate conversion the same as stretching the subtitles?

Yes. Every start and end time is multiplied by one factor, measured from zero. Two-point sync is also a straight-line stretch, but it adds an offset, so it can fix a delay and a speed difference together.

My subtitles get later and later. Which way do I convert?

From the lower rate to the higher one, most often 23.976 to 25. Subtitles that get earlier and earlier need the opposite direction, such as 25 to 23.976.

Why does the converted file still drift by a few seconds an hour?

The subtitles were probably made for 24 rather than 23.976, or 30 rather than 29.97; those pairs differ by 0.1%, about 3.6 seconds per hour. Convert the original file again with the other value.

Can I convert a file back to its original frame rate?

Converting back restores the times to within a millisecond or so of rounding. It is cleaner to keep the original file and convert from that each time.

Does this change my video file?

No, only the subtitle file. The video frame rate tool is a separate page, and changing the video's rate there keeps its running time, so subtitles don't need converting afterwards.

Can it save a MicroDVD .sub at the new frame rate?

No. This page reads .sub files but saves SRT or WebVTT, which store clock times and play correctly at any frame rate.