Timing and Sync

Frame Rates and Subtitle Timing

Video frame rate can change how subtitle timecodes line up with speech. See why 24, 25 and 30 frames per second matter and how conversion mistakes cause drift.

On this page
  1. What a frame rate is
  2. Frame-based timecodes
  3. Speed-up and slow-down conversions
  4. The 0.1 percent problem
  5. Why the file does not just “know”
  6. How to tell if frame rate is the cause
  7. Typical remedies
  8. Practical advice

What a frame rate is

Video is a series of still pictures shown quickly one after another. The frame rate is how many of those pictures appear each second. Common rates include 24 frames per second for much film material, 25 for television in many regions, and about 30 (often exactly 30000/1001, or roughly 29.97) for television in other regions. Web video can use many different rates.

Subtitles are mostly about time, not frames, so you might expect frame rate to be irrelevant. It matters because of two things: how timecodes are written, and what happens when a video is converted from one rate to another.

Frame-based timecodes

When a timecode ends with a frame count, as in 00:10:00:12, the last two digits mean “the twelfth frame of that second.” What that moment is in real time depends on the frame rate. Frame 12 at 24 frames per second is half a second in. Frame 12 at 25 is 0.48 seconds in. Frame 12 at 30 is 0.4 seconds in. The differences are small for one cue, but they matter if a whole file is read at the wrong rate.

Time-based timecodes, written in fractions of a second, are less sensitive to the frame rate, but they are not immune to the problems described next.

Speed-up and slow-down conversions

Film shot at 24 frames per second is sometimes shown on television that runs at 25. One simple way to convert is to play every frame at the new rate, which makes the picture and sound run slightly faster, by a factor of 25 divided by 24, or about 4 percent. A 100-minute film becomes 96 minutes, because 100 times 24 divided by 25 equals 96.

Now imagine subtitles timed for the 100-minute version and applied to the 96-minute one without adjustment. This is a hypothetical example, but the effect is typical. The opening cues look right. By the middle of the film, the cues arrive later than the speech, and near the end the gap is several minutes’ worth of text. The subtitles have not been “wrong” in any one place. They were simply made for a clock that runs at a different speed. Adjusting them means scaling all the timecodes by the same ratio, not shifting them by a fixed amount.

The 0.1 percent problem

A smaller version of this appears between rates such as 24 and about 23.976, or 30 and about 29.97. The ratio is roughly 1.001. Over one hour (3,600 seconds) that amounts to about 3.6 seconds, since 3,600 times 0.001 is 3.6. A viewer might not notice anything at first, but towards the end of a long program the text is clearly early or late. This is a classic cause of subtitles that fit the start of a video and then slowly separate from it.

Frame-based counting at about 29.97 adds a further wrinkle, because some systems skip certain frame numbers so that the displayed clock stays close to real time. Files made with and without that adjustment can differ. If you work with such material, it helps to know which counting method the file uses and to check with someone familiar with broadcast timecode.

Why the file does not just “know”

A plain subtitle file typically does not say what frame rate it was made for. A time-based file simply lists times. A frame-based file lists frame counts and relies on the tool to apply the correct rate. If the information is lost, someone has to work it out from the project notes or by comparing the cues with the video. This is one reason delivery specifications state the rate, and why careful teams record it in the project plan.

How to tell if frame rate is the cause

Check the pattern of the error:

  • Constant offset: All cues are early or late by the same amount. This is more likely a shifted start or an added intro than a frame rate problem.
  • Growing offset: The first cues are fine and later ones are further out. This points to a speed or frame rate difference.
  • Step change: Everything is fine up to a point, then everything shifts. This suggests a cut or an inserted section.

A quick test is to compare the first and last spoken lines. If the gap between the text and the speech differs, and the ratio of the two is close to 1.04 or 1.001, a frame rate or speed conversion is a likely suspect. The same pattern can come from other causes, so treat it as a clue and not proof.

Typical remedies

When a conversion is the cause, subtitle tools usually offer a way to retime the file from one frame rate to another. This applies a scale factor to all cues. If you do not know the right factor, one approach is to align the first and last cues with the speech and let the tool compute the scaling in between. Afterwards, spot-check cues in the middle. The result may be good enough for personal viewing, while professional work normally goes back to the master timing and regenerates the file at the correct rate.

Practical advice

Record the frame rate of the video used for timing, and check it again whenever a new version of the video arrives. Prefer delivering the subtitles with the version they were made for. If a new version has a different rate, treat that as a change that needs its own retiming, not as a detail. Frame rate is easy to overlook because it is invisible while watching, yet it is one of the more common reasons a good subtitle file ends up out of step.

The complete guide to timing and sync

How Subtitle Timing Works
Read the guide

Keep exploring

Guides from other topics

All topics →