How can I re-sync the subtitle and the video using VLC media player?
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
- 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.
Source
If you want to fix the subtitles 'for good', I recommend Subtitle Workshop; it's free.
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 fps
.
--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)
--sub-fps
--sub-delay
--sub-type
--sub-file
--sub-language
--sub-autodetect-file
More options maybe interesting:
--sub-description
,--sub-autodetect-fuzzy
--sub-autodetect-path
--sub-margin
-sub-source
--sub-filter
--sub-track
--sub-track-id
Specifically with subsdelay
--subsdelay-mode
--subsdelay-factor
--subsdelay-overlap
--subsdelay-min-alpha
--subsdelay-min-stops
--subsdelay-min-start-stop
--subsdelay-min-stop-start
For further information invoke vlc -H
or check the online vlc user manual