Subtitles drift when they were timed against a version of the video that plays at a different speed than yours, most often a 23.976 fps film release versus a 25 fps European (PAL) release, which runs about 4.3 percent faster and finishes almost five minutes sooner over a two-hour film.
Subtitle files store clock times, not "show this on frame 1,250", so any change in playback speed makes the text slide further out of place with every minute. The fix is to scale every timestamp by the ratio of the two frame rates.
The common frame rates
| Frame rate | Exact value | Where you usually see it |
|---|---|---|
| 23.976 | 24000/1001 | Films on Blu-ray, most web releases, North American (NTSC) film transfers |
| 24 | 24 | Cinema, some Blu-rays and digital masters |
| 25 | 25 | PAL DVDs and European TV broadcasts |
| 29.97 | 30000/1001 | NTSC television and DVDs, US broadcast |
| 30 | 30 | Many phones, webcams, and screen recordings |
| 50, 59.94, 60 | 50, 60000/1001, 60 | High-frame-rate TV, sports, games |
The odd-looking 23.976 and 29.97 come from the history of color TV in North America: rates were slowed by a factor of 1000/1001 to avoid interference when color was added to the existing black-and-white signal. That tiny slowdown is why a 23.976 release and a 24 fps release of the same film are almost, but not exactly, the same length.
PAL speedup: where the big drift comes from
Film is shot at 24 fps, and North American video releases usually play it at 23.976. European TV and PAL DVDs run at 25 fps, and the simplest way to put film on PAL was to play every frame slightly faster rather than invent new frames. Compared with a 23.976 release, the PAL version runs about 4.27 percent faster (25 ÷ 23.976 ≈ 1.0427). A 120-minute movie lasts about 115 minutes, roughly 4 minutes 55 seconds shorter, and dialogue, music, and credits all arrive earlier.
Now take subtitles timed for the 23.976 release and play them over the 25 fps version. The first scenes look fine, but the line timed for the 60-minute mark shows up about 2 minutes 27 seconds after it is spoken. By then the subtitles belong to a different scene entirely.
Smaller mismatches matter too. 24 versus 25 fps is a difference of about 4.17 percent. 23.976 versus 24, and 29.97 versus 30, differ by only 0.1 percent, roughly 3.6 seconds per hour. That is easy to miss in the first scenes, but by the end of a feature film the subtitles are several seconds off.
The conversion formula
To fix frame-rate drift, multiply every timestamp by the ratio of the two rates:
new time = old time × (subtitle fps ÷ video fps)
For subtitles made for 23.976 fps and a 25 fps video, the factor is 23.976 ÷ 25 ≈ 0.95904. A line at 01:00:00 (3600 seconds) moves to about 3452.5 seconds, or 00:57:32.5. Because the factor is applied to every start and end time, each cue also gets slightly shorter, matching the faster speech. The subtitle FPS converter uses the exact fractions (24000/1001 rather than a rounded 23.976), which matters over a long film.
Common conversions
| Subtitles made for | Your video | Factor | Drift after 1 hour |
|---|---|---|---|
| 23.976 fps | 25 fps | 0.95904 | about 2 min 27 s |
| 25 fps | 23.976 fps | 1.04271 | about 2 min 34 s |
| 24 fps | 25 fps | 0.96000 | 2 min 24 s |
| 25 fps | 24 fps | 1.04167 | 2 min 30 s |
| 23.976 fps | 24 fps | 0.99900 | about 3.6 s |
| 24 fps | 23.976 fps | 1.00100 | about 3.6 s |
| 29.97 fps | 30 fps | 0.99900 | about 3.6 s |
| 30 fps | 29.97 fps | 1.00100 | about 3.6 s |
"Drift after 1 hour" is how far the line timed for the 60-minute mark ends up from where it belongs. The two most common cases have their own pages, 23.976 to 25 fps and 25 to 23.976 fps, and the frame rate conversion list covers the other pairs.
One caution: a different frame rate does not always mean a different speed. Film shown on NTSC TV at 29.97 fps is usually converted with pulldown, which repeats fields instead of speeding the picture up, so the running time matches the 23.976 release. Likewise, 50 and 59.94 fps versions often play at the same speed as their 25 and 29.97 fps sources. In those cases the subtitles need no conversion, and changing them would create drift instead of fixing it.
How to tell which frame rate the subtitles were made for
- Compare running times. Check the time of the last dialogue cue against the moment that line is spoken in your video. A gap of about 2.5 minutes per hour points to a 23.976 or 24 versus 25 mismatch; a few seconds per hour points to a 0.1 percent mismatch.
- Read the release name. Subtitle files are often labeled with the release they match. "PAL" or "PAL DVD" usually means 25 fps; "BluRay" and most "WEB" releases of films are 23.976; recordings of European TV are usually 25.
- Check your video. In VLC, Tools → Codec Information (Window → Media Information on a Mac) shows the video's frame rate.
- Measure instead of guessing. If you can't pin down the rates, two-point sync calculates the factor directly from two lines you match by ear.
Frame-based formats: MicroDVD .sub
SRT, VTT, and ASS store clock times. The older MicroDVD format, usually with a .sub extension, stores frame numbers instead, like {1250}{1310}Is anybody home?. The player has to know the frame rate to turn frame 1250 into a time: at 25 fps it is 50 seconds, but at 23.976 fps it is about 52.1 seconds. Some files declare their rate on the first line, as in {1}{1}23.976, but many do not.
So with MicroDVD, frame rate matters twice: once for the release the file was made for, and again for the rate the player or converter assumes when reading it. If a MicroDVD file drifts, check that reading setting before changing any timing. SubTweak works with time-based formats, so turn a MicroDVD file into SRT using the frame rate it was made for, then fine-tune the result here.
Quick answers
My subtitles are fine at first and slowly fall behind. Is it always the frame rate? Usually. A gap that grows steadily is the signature of a speed difference. A sudden jump points to a different cut or an ad break instead; see how to sync subtitles.
Can I fix drift with a simple shift? No. A shift moves every cue by the same amount, while drift needs every cue scaled by the same factor.