← Cuelatch

VLC subtitles out of sync

VLC will resync subtitles in two keystrokes, and the fix will be gone by tomorrow. That is worth knowing before you spend ten minutes on it: the delay lives in the playback session, not in the file. The useful part is that VLC tells you the exact number you need to correct the file permanently.

Updated

Fix the file instead

Fixing it in VLC right now

Play the video with the subtitles loaded and press G orH until the lines land with the speech. Each press moves them by 50 milliseconds and the running total appears on screen.

To do thisWindows / LinuxmacOSStep
Pull subtitles earlierGH50 ms
Push subtitles laterHJ50 ms
Set an exact delayTools → Track SynchronizationWindow → Track Synchronizationany

The keyboard steps are coarse. If you already know the figure you want, the Track Synchronization panel takes a value in seconds directly, negative to pull subtitles earlier, and it accepts far finer increments than 50ms.

Why it comes back

VLC applies the delay at playback time. It does not rewrite the subtitle file, does not leave a sidecar next to it, and does not remember the value for that video next time. The subtitle file on disk is byte for byte what it was before you started.

So the correction survives exactly as long as the window stays open. Move the file to a phone, a TV, Plex or Infuse and it is out of sync again by the same amount, because those players are reading the same unchanged timestamps.

Use VLC as the measuring instrument

This is the part worth keeping. VLC's on-screen readout is a measurement, and it is the only number you need:

  1. Nudge with G and H until a line lands cleanly.
  2. Read the delay VLC is showing — say -2350ms.
  3. Enter that figure in the tool, which writes it into the file itself.

The arrow keys there move in the same 50ms steps as VLC's, so the feel carries over, with Shift for 10ms and Alt for 500ms when you want to move faster or land more precisely. You can also skip the measuring entirely: drop the video in alongside the subtitles and the offset is worked out from the audio.

When VLC cannot fix it at all

A delay is a single constant added to every line. If the subtitles start in sync and are seconds out by the end, the error is growing, and no constant can absorb a growing error. You will correct the opening, watch it drift, and correct it again — which is the usual reason people conclude VLC is broken.

That pattern means the subtitles were timed against a different frame rate, almost always 25 fps against 23.976. The timestamps have to be rescaled rather than shifted. Seesubtitles that drift over time for how to measure it, andconverting 25 fps to 23.976 for the conversion itself.

The Track Synchronization panel does expose a subtitle speed in frames per second, which looks like it should help here. It applies to frame-based subtitle formats such as MicroDVD .sub. It will not rescale an SRT or VTT file, where the timestamps are absolute times rather than frame numbers.

When VLC has loaded a different file than you think

VLC picks up a subtitle file automatically when it sits beside the video and shares its basename. If several subtitle files are in the folder, or the video is an MKV with subtitle tracks already inside it, the track being displayed may not be the one you are editing.

Check Subtitle, then Sub Track, and confirm which is active. An embedded track has to be extracted before it can be corrected —MKV subtitles that will not synccovers that.

If the characters are wrong rather than the timing

Question marks, boxes or strings like привет are an encoding problem, not a timing one, and no amount of delay will help. VLC has a subtitle text encoding setting under Preferences that changes playback only;fixing the file is the durable version.

Common questions

How do I sync subtitles in VLC?
Press G to pull the subtitles earlier and H to push them later, in 50ms steps. On macOS the pair is H and J. The running delay appears on screen as you press. For an exact figure, open Tools then Track Synchronization and type a value in seconds.
Does VLC save the subtitle delay?
No. The delay lives in the current playback session only. It is not written to the subtitle file, not stored in a sidecar, and not remembered the next time you open the same video. Close VLC and the correction is gone.
Why are my subtitles only out of sync in VLC?
Subtitles are almost never wrong in one player alone. A subtitle file carries absolute timestamps, so every player reads the same numbers. If it looks correct elsewhere, the other player is either applying its own saved delay or has loaded a different subtitle track.
Why do the subtitles go out of sync again later in the film?
Because the error is growing rather than constant, which means a frame-rate mismatch. VLC applies one fixed delay to every line, so it cannot correct an error that increases as the film plays. That needs the timestamps rescaled, not shifted.
What is the VLC subtitle delay shortcut on Mac?
H pulls the subtitles earlier and J pushes them later, 50ms per press. The G and H pair documented for Windows and Linux is shifted by one key on macOS.

Related

Cuelatch runs entirely in your browser. Subtitle and video files are never uploaded.