Skip to main content
SubtitleMatrix

Fix 25 fps Subtitles to 23.976 fps

TimingFrame rate conversion
Or paste subtitle text

Options

Which frame rate the timings are counted in. On the format pages this is what MicroDVD needs, because it stores timing as frame numbers. On the frame rate pages it is the rate the file was timed against — the version the subtitles were made for — and the page's second box takes the rate of the video you are going to use them with. 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 are the common ones. Getting it wrong shifts the whole timeline, and on the frame rate pages it shifts it by a ratio rather than by a fixed amount.

The frame rate of the version you are going to use the subtitles with — the video you are actually going to play. The factor applied is the first box divided by this one, so 24 into 25 gives 0.96: a film runs 4% faster on PAL, and a 100-minute feature fits a 96-minute tape. Getting the two boxes the wrong way round shifts the whole timeline in the wrong direction by the same amount.

This page takes a subtitle file timed against a 25 fps PAL version and puts it on a 23.976 fps version. Every timestamp is multiplied by 25 divided by 23.976, which is 1.0427094, so the whole timeline comes out 4.271 percent later and every cue is given 4.271 percent more time on screen. The two boxes are already filled in; change them if your file is timed against something else.

The case this page exists for is the trip back from PAL. A European disc or broadcast at 25 fps has the pictures going 4.271 percent faster than the film they came from, so a file timed against the PAL version is compressed by that much and has to be spread back out to sit on the film version. Which film version is the whole question — 23.976 is what an NTSC release of a film uses, and it is 24000/1001, not 24. If your target is a film master running at a true 24, the pair you want is 25 to 24 and the factor is 1.0416667; the two differ by 0.1 percent, which is 3.5 seconds an hour.

One warning worth reading before anything else. People who search for this page are usually trying to put PAL subtitles on an NTSC video, and the pair they reach for is 25 and 29.97 — a factor of 0.83417, which would shrink the timeline by a sixth. That number has no physical story behind it: 29.97 is the rate an NTSC signal runs at, not a speed the pictures are played at, and film inside it is stretched back out with repeated frames that leave the duration alone. The honest route from PAL to NTSC goes through the film rate, and it starts here.

The ratio is applied to the distance from zero, so a cue ten minutes in moves 25.6 seconds later and one an hour in moves 2 minutes 33.7 seconds later. Both edges of every cue move, so a two-second line is given 2.085 seconds and the reading speed of every line drops slightly rather than rising. Nothing is uploaded, and a whole season goes through the queue in one pass — SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON and CSV files are read as what they actually are rather than as the extension suggests.

Examples

A short cue and a long one

Input

1
00:00:01,000 --> 00:00:03,000
Hello there.

2
00:01:00,000 --> 00:01:02,000
One minute in.

Output

1
00:00:01,043 --> 00:00:03,128
Hello there.

2
00:01:02,563 --> 00:01:04,648
One minute in.

1.0427094 is 25 divided by 23.976. The cue at one second moves 43 ms later and the cue at a minute moves 2,563 ms later — sixty times the distance from zero, sixty times the movement. A page using the clean 24 and 25 pair would have produced 1.0416667 and left that minute cue 63 ms earlier than this.

The correction grows with the clock

Input

1
00:10:00,000 --> 00:10:02,000
Ten minutes in.

2
01:00:00,000 --> 01:00:02,000
An hour in.

Output

1
00:10:25,626 --> 00:10:27,711
Ten minutes in.

2
01:02:33,754 --> 01:02:35,839
An hour in.

Twenty-five seconds at the ten-minute mark, two and a half minutes at the hour. A file that appears to drift further and further behind as it goes is the signature this pair fixes, and the growth is the proof it is a ratio problem rather than an offset one: a fixed shift would line up either the beginning or the end, never both.

A MicroDVD file keeps its frame numbers

Input

{1}{1}25
{50}{100}Hello

Output

{1}{1}23.976
{50}{100}Hello

MicroDVD counts in frames, and the frames are the same pictures either way — frame 50 is frame 50 whether it is played at 25 or at 23.976. So the only edit is the declared rate on the first line, which the player uses to turn those frame numbers back into seconds. Rewriting the frame numbers instead would apply the 4.271 percent twice.

Frequently asked questions

My PAL subtitles need to work with an NTSC video — is 25 to 23.976 the pair?

Usually yes, because NTSC and PAL are not two speeds of the same thing: a film on NTSC runs at 23.976 and on PAL at 25, so the honest step from a PAL timeline to an NTSC one is back to the film rate first — 25 divided by 23.976 is 1.0427094. The pair people reach for instead is 25 and 29.97, which multiplies by 0.83417 and takes a sixth off the file. That number has no physical story: 29.97 is the rate the signal runs at, and film inside it is padded out with repeated frames that leave the running time unchanged.

Why is the factor 1.0427094 and not 1.0416667?

Because 23.976 is 24000/1001 and not 24, so 25 divided by 23.976 is 1.0427094 while 25 divided by 24 is 1.0416667. The difference is 0.104 percent: 3.5 seconds an hour, and 5.9 seconds over a 95-minute film. Use the page for the rate your target actually runs at — if the version you are putting the subtitles on is an NTSC film release it is 23.976, and if it is a film master it is a true 24.

How much later does the last subtitle land?

A quarter of an hour in, about 38 seconds later; ten minutes in, 25.6 seconds later; an hour in, two minutes 33.7 seconds later; and a 95-minute PAL file comes out at 99 minutes 3 seconds. The correction is a fixed proportion of the clock, so the last cue always moves furthest. That also means the file gets longer while the video stays the same length — which is the point, since the timings were too early to begin with.

The subtitles are still out at the end after converting — what else could it be?

A PAL disc that has had scenes removed. Many European releases run a few seconds short because frames or whole shots were cut, and if the cuts are anywhere but the end, no single ratio can line the file up: the error jumps at each cut instead of growing smoothly. That needs a point sync, where you give two reference points and the tool works out the ratio and the offset between them, rather than a frame rate conversion.

Can a subtitle file time a PAL disc that was sped up from a 24 fps master?

Yes, and the arithmetic is the same shape with a slightly different number. If the version you are going back to is a film master at a true 24, the pair is 25 to 24 and the factor is 1.0416667; if it is an NTSC release of a film, the rate is 23.976 and the factor is 1.0427094. Both boxes on this page accept either, and each has its own page explaining when it is the right one.

Does anything else about the file change besides the timings?

No. Text, line breaks and whatever styling the format carries are untouched, and the order of the cues cannot change: multiplying every timestamp by the same positive number is monotone, so two cues that did not overlap before cannot start overlapping now. Each cue does get 4.271 percent more time on screen, which is the one direction in this group where the reading speed of a line goes down instead of up.

Related tools