Change Subtitle Frame Rate
Subtitles in sync at the start but drifting further off as the video plays? Load your subtitle file (.srt, .vtt, .ass, .sbv or .sub), pick which way it drifts, and download it retimed for your video’s frame rate.
How to fix subtitles that drift out of sync
Load the subtitle file
Drop your .srt, .vtt, .ass, .sbv or MicroDVD .sub file into the box above, or click to browse. It’s read by your browser and never uploaded.
Say which way it drifts
Does the text show up later and later after the voice, or earlier and earlier? Pick the one you see. The tool then lists the common fixes for that direction, with how far each one moves the last line of your file.
Pick the fix that matches
If the last line is about four minutes late, “Film → PAL” is almost certainly it. If it’s only a few seconds off, try “Film → 24 fps”. Know both rates already? Set them yourself under “Or set the rates yourself”.
Check a line near the end
Open your video under Preview and play it near the end, with the fixed subtitles on it. If the text appears as the line is spoken, you have the right rates.
Download
The file keeps its name, so save it next to your video and your player picks it up. Want the new rate in the name? Tick “Add the frame rate to the file name”.
Why subtitles drift
Video is a series of still frames shown at a fixed rate. Cinema and Blu-ray releases run at 24 frames per second, or 23.976 for most films prepared for home video. European TV and many DVDs use 25 fps (PAL), and US television uses 29.97 fps (NTSC).
The PAL speed-up. To put a 23.976 fps film on 25 fps PAL video, broadcasters and DVD studios simply play every frame a little faster. No frames are added or removed, so the film runs about 4% shorter: a 1 hour 45 minute film ends more than four minutes early. Subtitles timed for the original release still show each line at its original time, so they fall further behind the picture every minute.
The same problem the other way. Subtitles made for a PAL copy and played on a Blu-ray or web release come out earlier and earlier: the text appears before anyone speaks, and the gap grows as the film goes on.
Small drifts. 23.976 and 24 fps look almost the same, but they differ by 0.1%. Over a feature film that adds up to about six seconds, enough to make the last scenes feel wrong. “Film → 24 fps” and “24 fps → film” fix exactly this.
What changing the frame rate does. The tool multiplies every start and end time by the ratio of the two rates. The first line barely moves, a line in the middle moves by half the drift, and the last line moves the most. Line text, formatting and styles stay as they were.
Tips for the right result
Match what you see, not what you know. You rarely need to know either frame rate. Say which way the subtitles drift and compare the effect of each fix on the last line with what you see in your player. The fix that moves the last line by the gap you noticed is the right one.
Read the rate from the video when you can. In VLC, open Tools › Media Information › Codec. On Windows, right-click the video, choose Properties and look under Details. On a Mac, open the video in QuickTime and choose Window › Show Movie Inspector. Your video’s rate goes in “Your video plays at”.
Watch for the warning. If the rates you pick move lines the same way they already drift, the tool tells you and offers to swap them. Following it saves a download and a second try.
Fix drift first, delay second. Subtitles can be both drifting and delayed, for example when a release adds a longer studio intro. Change the frame rate here, then open Shift Subtitle Timing and move the whole file by the delay that’s left.
Keep the name your player looks for. Players such as VLC, Plex and Jellyfin load a subtitle automatically when it shares the video’s name, like movie.mkv and movie.en.srt. That’s why the fixed file keeps its name by default. If you add the rate to the name, it goes before the language code, movie.25fps.en.srt, so the language is still detected, but the player may no longer pick it up on its own.
Save frame-based files with real times. MicroDVD .sub files count frames, and players have to guess the rate to show them. Saving as .srt writes real times, which every player shows the same way.
Frequently asked questions
Why do my subtitles drift instead of being off by a fixed amount?
The file was timed for a video running at a different frame rate. A 25 fps PAL copy of a film plays about 4% faster than the 23.976 fps original, so every minute the gap grows. After an hour and 45 minutes the last line is more than four minutes off.
How do I know which rate is “From” and which is “To”?
“From” is the rate the subtitles were made for; “To” is your video’s rate. If you’re not sure, pick the way the subtitles drift and try the most common fix, then open your video and check a line near the end. If it drifts even more, swap the rates.
The subtitles are off from the very first line and also drift. What do I do?
Fix the frame rate here first, then remove the constant delay that’s left with Shift Subtitle Timing. Doing it in that order means you only have to measure the delay once, on a line near the start.
What about MicroDVD .sub files?
They count frames, and most players read them at the video’s own frame rate, so a sped-up PAL copy often needs no fix at all. Check a line near the end first. If a .sub file still drifts, set the rate it was made for under Frame rate (we guess 23.976 fps when the file doesn’t say). We save the result with real times, as .srt by default, so no player has to guess again.
Are my files uploaded?
No. The subtitle file is read and retimed by JavaScript in this browser tab and never leaves your device. A video you open to check the result plays straight from your disk too.
Why is there no 23.976 to 29.97 fix?
Film is usually brought to 29.97 fps NTSC with pulldown, which repeats frames but keeps the running time. Subtitles timed in seconds don’t drift from it, so rescaling them would break a file that was fine. The rate lists still offer 29.97, 30, 50, 59.94 and 60 fps for the rare case that needs it.