How to fix out-of-sync subtitles in VLC
VLC can slide the subtitles into place while you watch, and that takes about two seconds once you know the keys. The catch is that the fix lasts only for that session. If you want the subtitles to stay in sync for good, in VLC and in every other player, you fix the file itself. Here is both: the quick fix for right now, and the permanent one.
The quick fix in VLC (temporary)
While the video is playing, press H to push the subtitles later or G to pull them earlier. On a Mac the keys are H and J. Each press moves the delay by 50 milliseconds, so tap until the words line up with the voices. If you would rather type an exact number, open Tools › Track Synchronization and set a value under Subtitle track synchronization (a positive value delays the subtitles, a negative value brings them forward).
The thing every guide leaves you with: this is temporary. VLC applies the delay to the current playback only and never writes it back to the file, so the next time you open the video the subtitles are out again and you repeat the whole dance. For a one-off film that is fine. For a season of episodes, or a file you want to keep, fix the file.
The permanent fix: correct the file
To make the sync stick, work out which of two problems you have. The test takes a minute: note how far off a line is near the start of the video, then check a line near the end.
- Same gap at both ends: a constant offset. Every cue is off by the same amount, usually because the subtitles were made for a slightly different cut with a longer intro or extra logos. Slide the whole file by that amount with the Shift tool, then save. Done once, it is done everywhere.
- The gap grows as it plays: a framerate mismatch. The subtitles were timed against a version of the video running at a different frame rate, such as 25 against 23.976, so a tiny per-frame error compounds over the runtime. A fixed delay cannot fix a moving target. Use the Framerate tool, which scales the timing to the correct rate instead of nudging it.
Both tools run in your browser and never upload your file. If you are not sure which case you have, the longer walkthrough in how to fix out-of-sync subtitles covers the diagnosis in more detail, including what to do when only one stretch of the file is off.
FAQ
Why does VLC forget my subtitle delay every time?
The delay you set with the keys or in Track Synchronization applies to the current playback only. VLC does not write it back into the subtitle file, so it resets when you close the video. To make it stick, correct the timing in the file with the Shift tool or the Framerate tool.
Which keys change subtitle delay in VLC?
Press G to make the subtitles appear earlier and H to make them appear later. On Mac the keys are H and J. Each press shifts the delay by 50 milliseconds. For an exact figure, open Tools, then Track Synchronization, and enter a value under Subtitle track synchronization.
The subtitles start fine but drift further out as it plays. Why?
That is a framerate mismatch rather than a simple offset. The subtitles were timed for a version of the video running at a different frame rate, so the error grows over the runtime. A fixed delay cannot correct a gap that keeps growing. Convert the framerate in the file with the Framerate tool, which scales the timing to match.
Can I fix the sync once so it works in any player?
Yes. Fix the file rather than the player. A constant offset is corrected with the Shift tool and a growing gap with the Framerate tool. Once the file itself is right, it plays in sync in VLC, on your TV, and anywhere else, with no per-session adjustment.