I very often use subtitles on my mkv player to watch movies. I have frequently observed that there is sometime a lag between the subtitles and the actual video. Even after setting the subtitle offset one would have to go on increasing it as the movie proceeds. This is something i find extremely annoying and would like to know if there is any way when one can check if a subtitle file is the ideal one for a given video.
There's no way to automatically check if given subtitles match a video perfectly. You would need the ideal ("gold standard") subtitles as well, or some way to match the audio track against the words in the subtitle file, and it goes without saying that this is not practical.
Your only chance is to …
- Align the subtitles manually at the beginning
- Skip to the end of the video and see if they still line up
Or, alternatively, manually export the subtitles and check their timestamps: How to extract subtitles from MP4 and MKV movies
The question why subtitles drift and run out of sync is very broad. There could be various reasons for that:
The video source and subtitle source are not the same. There are always different cuts of movies, or the version you have doesn't include a trailer, et cetera.
The video was converted. In that case, converting between different frame rates. For example, NTSC specifies 23.97 frames per second whereas for cinematographic material, this is sped up to 24 frames per second. And then there's 25 fps and 50 fps too, depending on the release.
Either way, the presentation timestamps of the subtitles don't match anymore, since they're not aligned to frames, but timecodes. Since the presentation timestamp of a frame can change with conversion, you see the subtitles drifting gradually.
To summarize, all you can do is check your given subtitles manually and try to replace them. If it happens with all material you have, then I'd rather suspect a hard- or software issue at the player side, which incorrectly demultiplexes the MKV container. Try another player or hardware solution and see if it fixes the problem.
You see.....all the copies are not same...a few scenes are usually cut short in some copies.
So, even if you adjust the subtitles, it is quite possible for them to lag/lead after a while.
Bottomline is, get subtitles for the copy that you are watching.
Especially, the source should same. I mean, if your copy is sourced from a blu-ray then subtitles must also be for blu-ray. Likewise for DVD and other sources.
You need to "reencode" your subtitles. It's an option on most subtitle software, like Jubler. Check your video for fps rate (usually in tools>video information), there's a good chance your video is 23.97 and your subtitles are set for 24 or 25. Once you know the fps of your video, there are only a few options so just try them all (reencode from 24 to 23.97, if it does not work reencode from 25 to 23.97, etc.) knowing that each time, you must also "shift" all your subtitles forward or backward depending on if they start early or late. So to sum up:
- find the .fps of your video
- Open your subtitle file and select all your subtitles
- change the .fps of you subtitles (I never found out how to know what .fps the subtitles are set for so I pick randomly)
- select all your subtitles again
- Add or substract as many seconds as needed so your first subtitle starts right on time
- If it does not work, go back to your subtitle file, cancel everything you just did (CTRL+Z on jubler, twice)
- try reencoding again with another original .fps
- this will change the time your first subtitle starts so shift all your subtitles so the first one falls into place with a slightly different number than last time Good luck!