Out-of-sync subtitles are one of the most annoying things to watch, and one of the easiest to fix once you know which kind of problem you have. There are three kinds, and each has its own repair.
First, find out which problem you have
Play the video and watch the first subtitle and a subtitle near the end.
- Both are off by the same amount. The subtitles are early or late by a constant offset. This is the common case, and the quickest to fix.
- The first is fine and the last is far off. The timing drifts. The subtitle file was made for a video that runs at a different speed, usually because of a frame rate conversion (for example 25 fps to 23.976 fps).
- Random cues are wrong, the rest fine. The file is damaged or was edited by hand. Fix the individual cues in a subtitle editor.
Fix a constant offset
Temporary, while watching
Most players can shift subtitles live:
- VLC: press
Gto show subtitles earlier andHto show them later, in 50 ms steps. Or set an exact value under Tools → Track Synchronization. - MPV:
ZandXshift by 100 ms. - YouTube, Vimeo and web players: no live shift. Fix the file instead.
Permanent, in the file
An SRT or VTT file is plain text, so the timecodes can be shifted by any subtitle editor. Free options that run on a laptop are Subtitle Edit (Windows), Aegisub (all platforms) and Jubler (all platforms). The feature is usually called Shift times or Adjust: enter the offset, apply it to all lines, save.
If you prefer not to install anything, open the file in a text editor and look at the first cue:
1
00:00:04,200 --> 00:00:06,800
Welcome back.
If the speaker actually says "Welcome back" at 2.2 seconds, every cue needs to move 2 seconds earlier. Doing that by hand is fine for a handful of lines, and tedious for a full video, which is where an editor earns its place.
Fix drifting subtitles
A constant shift cannot fix drift, because the error grows over time. You need to stretch or squeeze the whole timeline. Subtitle Edit has Change speed and Change frame rate under Synchronization. Aegisub can do it through Timing → Timing post-processor, or by setting two sync points (one at the start, one near the end) and letting the tool interpolate.
The simplest fix is often to skip the repair and create a fresh subtitle file from the final video. An automatic transcription is timed against the exact file you upload, so there is nothing to drift. Upload the finished video to ToneLark, wait for the email, and download an SRT or VTT that matches the audio to the millisecond.
Fix individual cues
For a handful of wrong lines, open the file in a subtitle editor with a waveform view, such as Subtitle Edit or Aegisub, select the cue, and drag its start and end to the speech. A text editor works too if you know the correct time.
Avoid the problem next time
- Make or generate the subtitle file from the final cut of the video. Trimming an intro or changing the speed afterwards breaks the timing.
- Keep the subtitle file next to the video it belongs to, with the same name (
talk.mp4andtalk.srt). - When you re-edit a video, generate new subtitles rather than re-using the old file.
- Use the right format for the destination: a comma in a VTT timestamp makes browsers skip the cue, which looks like a sync problem. See SRT vs VTT.
When the subtitles are right but the video is wrong
Sometimes the audio itself is offset from the picture, for example after a bad export. Subtitles timed to the audio then look wrong against the lips. Check the audio and video first in a player with an A/V delay setting, such as VLC's Track Synchronization. If the audio is the problem, fix the export, not the subtitles.