When I play a movie with subtitles (on VLC media player), the text is often displayed too soon or too late. Is there a way to delay the starting point of the subtitles?
- Open VLC media player.
- Click the File Menu.
- Click Open File.
- Click Browse to Open the Movie.
- Check the "Use a subtitle file" Box.
- Click Browse to Open the Subtitle.
- Click "Advanced Settings"
- Move the Delay into the minus if the subtitles are too fast. Move it into the positive if the subtitles are too slow.
You can also just press H and G while the video is running to align the subtitles backward and forward in time; for the voice use J and K. The increments are in milliseconds, so it can be pretty easily fine tuned that way.
There is a much more easy way to do this via the advance synchronisation functionality of VLC
- Detect (“hear and see”) that subtitles are out of sync
- Press Shift + H when you hear a sentence that you will be able to easily recognize
- Press Shift + J when you read the same sentence in the subtitle
- Press Shift + K to correct the sync
By command-line is possible to use the option
--sub-delay followed by the number positive or negative of 1/10 of seconds of delay to add. So to shift the subtitle of 3 second you can run
vlc with the following command line
vlc --sub-delay 30 myfile.avi
In a similar way acts the option
--sub-fps that override the normal
--sub-fps Frame per second
Override the normal frames per second settings. This will only work with MicroDVD and SubRIP (SRT) subtitles.
With VLC 3.0.0 there are some other option that can be useful (and almost self-explicative)
More options maybe interesting:
For further information invoke
vlc -H or check the online vlc user manual
VLC has an advanced support for subtitles. You can easily synchronize subtitles with keyboard shortcuts G and H within the application.
This way, you can sync subtitles by +/- 0.5 seconds by default.
However, if you want more functions and possibility to save synchronization permanently in your subtitle file, then you would need to use tools such as Subtitle Workshop (Windows only) or Jubler (Java cross-platform).
With these apps, you can easily set the first and the last spoken word in the movie and subtitle timings are automatically adjusted between these two lines.
With VLC for Mac (mine is v3.0.6),
- Use the menu
Advanced Open File ...;
- In the prompt, select the
Filetab, and browse to your video file;
Add Subtitle File, then click
Choose...to bring up the next prompt;
- In that prompt, browse to your subtitle file;
- Set your delay in seconds in
Delay. Minus values speed up subtitle and vice versa;
Open. The video either restarts or continues depending on your related settings in your Preferences;
- If the delay is not quite there, repeat #1-7 with adjustments; if that still doesn't seem to work, then after resetting, close and reopen VLC.
One trick: Use big numbers at first, e.g., 20s, to test water, then fine-tune to close in on the actual delay.
Other answers are good temporary solutions, but...
To permanently fix the timing of subtitles on Windows:
Download the free Subtitle Workshop program.
Convert at least a little bit of your video to
.avior other formats it supports (not
.mp4). For example, you could convert it with a program like Ffmpeg:
ffmpeg -i .\myMovie.mp4 -t 0:02:00 .\myMovie_cut.avi`
In Subtitle Workshop, open the video and the
Use a stopwatch (such as an app on your phone) to time how far out of sync your subtitles are with the audio when you play the video.
On OS X 10.13.6, running VLC 18.104.22.168 (Vetinari), to advance and retard (respectively), the keys are:
- Audio: F & G
- Subtitles: H & J
It's unclear why the keys differ from this answer.
My answer I just did this works great: start the movie and add the subtitle file as normal. Then, go "tools" select "Track Synchronization" then you have options to delay or advance(start earlier) the subtitle file by as many seconds as you want! Keep fiddling with it until the first statement and first subtitle aligln. Easy.