字 AI-SRTSub

What 23.976 / 24 / 25 / 30 fps really mean

The 0.1% gap between 23.976 and 24 is a leftover from television history. Together with PAL's 4%, it is the reason subtitles drift further out of sync as a film goes on.

Updated 2026-10-17Troubleshooting guides

What each number is

Frame rate is how many pictures are shown in one second. The four you meet most often:

  • 24 fps — the rate films are shot and projected at; cinemas run at 24
  • 23.976 fps — the rate once a film enters NTSC television, 0.1% slower than 24
  • 25 fps — the television rate for PAL regions (Europe, China, Australia and other 50 Hz mains countries)
  • 29.97 fps / 30 fps — the rate for NTSC television programmes, carrying that same 0.1% gap

Where the 0.1% comes from

23.976 = 24 × 1000/1001, and 29.97 = 30 × 1000/1001. That 1000/1001 is a leftover from adding colour to NTSC: to squeeze the colour subcarrier in without breaking existing black-and-white receivers, the field rate was dropped from 60 Hz to 59.94 Hz (60 × 1000/1001), and frame rate went down with it.

The result: films air at 23.976 in NTSC regions instead of 24. The difference is 0.1%, or 3.6 seconds over an hour — barely noticeable on its own, but do not confuse it with the 4% below and never combine the two in one calculation.

Where the 4% comes from

PAL regions screen at 25 fps. Films are shot at 24 fps and simply played at 25 — not one frame added or removed, so playback runs 4% faster (25/24 ≈ 1.0417). A 100-minute film runs 96 minutes in its PAL version.

That is the root of progressive drift: subtitles made against the original and video in the PAL version match exactly at the start and are four minutes apart by the credits. No global shift can save that; it has to be rescaled by ratio.

Timing page speed section: the ratio input box
Rescale by ratio — one value covers the whole film

How to convert

Conversion means multiplying by a single ratio that applies across the whole film:

  • 24 → 25 (PAL speed-up): × 0.96
  • 23.976 → 25: × 0.959 (the exact value is 23.976/25 = 0.95904)
  • 25 → 23.976: × 1.0427
  • 23.976 ↔ 24: × 1.001 or × 0.999 — only 0.1% either way
  • 0.96 and 0.959 differ by 0.1%, under 6 seconds across a whole film — if you cannot tell whether your source is 24 or 23.976, 0.96 works and two-point anchoring cleans up the rest

Telling which one you have

Rather than guessing the ratio, find two moments whose correct timing you are sure of — usually the first and last lines of dialogue — and tell the tool "this line should be at 00:00:12 and that one at 01:35:40"; it stretches the whole film linearly between those two points. That is "two-point anchoring", and it needs no frame rate arithmetic from you.

To confirm the frame rate yourself, check your player or a media info tool. When a filename like `1080p.WEB` carries no frame rate hint, two-point anchoring is the safer route.

Timing page two-point anchor section: two rows of timestamp inputs
Two-point anchoring needs no frame rate — just two timestamps

Related tools and guides

Frame rate conversion itself — Subtitle frame rate conversion; speed adjustment — Subtitle speed conversion; unsure whether it is a global offset or progressive drift — Subtitles drifting further out of sync.

Runs entirely in your browser, nothing to install.

Open timing adjustment

Related guides