Multimedia files with ‘lip-sync’ issues are not uncommon, but they rarely happen in professional environments as they take extra precautions to avoid them. Let me show you how to fix mkvtoolnix audio delay (or VLC audio delay) on a Windows computer.
In a previous post I wrote about how to fix some of these synchronization issues permanently using ‘Avidemux’, but since then I have received a few complaints of ‘Avidemux’ not being able to fix those issues in some cases. Even though I came across some of these problems, fortunately, I have been able to fix them (so far).
‘Avidemux’ can do very little if the input file itself has some issues (corrupted video frames etc.), but ‘Avidemux’ is also a bit buggy, so some of the blame goes toward it also. In any case, there are a few other tools that you can try while trying to fix a sync ‘malfunction’, and ‘MKVToolNix’ is one among them.

‘MKVToolNix’ is not an encoder as you can only use it to ‘extract’ audio/video/subtitle tracks from other containers (MP4, AVI, FLV etc) and put them into the powerful and open-source MKV container. While doing so, this tool also lets you pass certain settings (sync, fps, aspect ratio …), and it is through that we can attempt to fix sync problems.
But please be aware that the only output format it supports is MKV (and a few of its variations such as ‘MKA’ for audio’, ‘MKS’ for subtitles etc.), and unlike MP4 or AVI, MKV is not supported by a lot of commercial and strictly hardware-based multimedia players. Computer users, however, do not have to worry about it as popular players (VLC, MPC, PotPlayer, SMPlayer, KMPlayer …) support it. Enough talking, let’s do it!
Note: Make sure you have downloaded and installed the latest builds of ‘MKVToolNix’ from here. I also recommend that you use VLC because both these utilities are available for multiple operating system platforms, so you can use this ‘guide’ in any of them.
What we are going to do is …
*. First, we are going to play the ‘troublesome’ file in VLC (or any other player that lets you change the sync temporarily), and we will try to identify the proper sync value.
*. Then we will simply enter that sync value into ‘MKVToolNix’ and save it as a new MKV file so that it is saved permanently. That is it!
Step 1:
So open your ‘troublesome’ file in VLC, and let it play for a few seconds. Then simply press the ‘j’ key on your keyboard. This will make VLC play the audio track a bit ahead of the video. A single click only increases the value by 50 milliseconds, so unless the ‘gap’ is very small, you will have to press it a few times to see its effect.
Anyhow, if after pressing the ‘j’ key a few times it worsens the ‘gap’, then it is an indication that you actually have to make VLC play the audio track a bit behind (delay) the video. The shortcut key for that is ‘k’. Again, to feel its effect, you might have to press it a few times. If, after doing that, it seems to shorten the ‘gap’, then it is an indication that you are on the right track. So keep doing that until you come up with the perfect sync value.
So as a general rule, play with the ‘j’ and ‘k’ keys until you find the perfect sync value for that multimedia file. Once you have found it, simply take a note of it (note that depending on the file, the value could be positive or a negative one. If it is a negative/minus one, then you should enter a minus sign before entering the value in ‘MKVToolNix’, more below) and close VLC.
Step 2:
Now open ‘MKVToolNix’ and load the ‘troublesome’ file into it. Then under the ‘Tracks, chapters and tags’ field, select the audio stream/track (shown below is an example).
Step 3:
Then from under it, click on the ‘Format specific options’ tab, and you will see an empty field that says ‘Delay (in ms)’. Now simply enter the sync value you found above into that field.

Step 4:
Now click on the ‘Browse’ button under the ‘Output filename’ field. Select a location and a file name for the output MKV file. Once done, simply click on the ‘Start muxing’ button. If everything goes without any errors, try playing the newly saved MKV file, and now you should be able to enjoy it without any ‘lip-sync’ issues!




94 Comments
thank you
You’re welcome John.
saved me from a lot of trouble. i don´t know how to repay you, my friend.
It’s all on me :).
Thanks it was really helpful
You’re welcome.
Tx a lot! This is exactly the answer I was looking for.
You’re welcome 🙂 .
This only works if the sync is offset by a certain amount of time throughout the video. I’ve just recently played a video that was 1080P and started fine, but within 10 minutes it was lagging behind the audio (Audio would play then the lips would move a second later.) I hit K to make it match and it did after progressing it 200ms. Anyway, by the end (About 1.5 hours) it was at 3600ms. So yeah, I had to progressively step the delay of audio proportionally to the video throughout the entire movie.
I’m no expert, by any means, but it possibly could have been due to a loss of a certain number of frames in the video. Such as every 30th frame was missing, for example.
Anyway, thanks for the post.
Hi,
It could be due to a frame-dropping which usually occurs if the the playback hardware cannot handle it, or, it could simply be due to wrong audio ‘time-codes’. For instance, if the encoder has tried to sync an audio track with a video that has a fps of 60 (for instance), but wrongly recognized the fps as 50 and has set the audio speed to match it, then as the playback progresses, a lip-sync issue can arise and it will get worse as you play into the track, although it plays perfectly well in the beginning.
If you can however, figure out by how much the audio speed should be delayed or speed-up, then you can use the ‘Stretch’ option in ‘MKVToolNix’ to successfully fix it (I have fixed one in the past). To not to complicate things any further, you can use the below links for learning more and hopefully for attempting to fix it …
http://documentation.apple.com/en/cinematools/usermanual/index.html#chapter=2%26section=6
http://www.animepassion.net/topic/1426-guide-for-time-stretching-audiotracks-in-mkvwhole-trackpartial/
But the audio plays perfectly in the original file? Although, it has no index for me. I have to rebuild it in VLC all the time, which I don’t do I just play as is. Would this be the problem? even though the original still plays fine. Once used in Mkvmerge, it goes out of sync 10 minutes in then for the rest of the file.
Well, you can try the ‘Convert/Save’ feature of VLC. I’m not sure if it’ll fix the issue (since I don’t have a file with a corrupted index to test it), but once on the ‘Convert/Save’ page, add your file, again choose ‘Convert/Save’ button, and on the next page simply choose ‘Dump raw input’ and save your file.
Thanks so much for this. I was having a sync problem with one of my recently converted videos and this simple guide helped me to fix it ASAP!
You’re welcome 🙂 .
Thank you for writing this article. The software works so well, super quick (takes less than a minute) and simple.
BUT I found that I didn’t need to enter the time delay to fix the audio sync. The program fixed the sync itself, it detected the timecodes were wrong. Ex, my audio had to be synced 1.2 secs faster (-1200ms), but the resulting video had the audio at 2.4 seconds faster than the original. After ‘muxing’ the original file a few more times with and without my inputting the time delay, I found that the software initally fixed the sync on its own, then it further applied my manual correction.
Conclusion, just drag and drop the original file into the input file and start muxing, no need to find the time delay on your own. Thanks again for the tutorial!!
Hmm, interesting… thank you Stephanie.
Thanx buddy , life saver 🙂
You’re welcome Tameem 🙂 .
You are a god!
😉
Thanks a lot! You really helped me out!
You’re welcome!.
Hey man, thanks a ton, this was seriously helpful !
Also I had a video which had a variable delay like for the 1st half (approx) it was -0.6 sec. & for the 2nd half (approx) it was -1.5 sec.
Is there a way for this as MKVToolNix uniformly syncs the audio ?
I was thinking to rather cut it [using video cutter/joiner] & then use MKVToolNix for audio sync.
What u say man ?
Hi Andy,
I agree with you, that would be the best option…
Several people asked about fixing variable out-of-sync audio. I believe this can be corrected with the command-line tool mkvmerge using the -y (i.e. –sync) flag. If the command “mkvmerge -i bad.mkv” reveals track 1 as video and track 2 as audio, then the command “mkvmerge -o good.mkv -y 2:B/M bad.mkv” changes the timing of the audio track relative to the video track by applying the function f(t) = Mt + B (where time t is measured in milliseconds).
You ROCK dude!!!
I just ran into this problem with an mkv, and found your tutorial. That was the easiest video resync I have ever done!
I’ve tried Avidemux for this, it never worked on anything other than avi.
I’m a Linux user (Manjaro) and didn’t think it would be this easy using tools I have on my system and use all the time.
Thanks SO much!
You’re welcome!, Edna.
EVEN THOUGH I COULD ABLE TO CORRECT A PART OF THE VIDEO, I COULD NOT ABLE TO CORRECT THE OTHER PARTS OF THAT VIDEO. PLEASE HELP ME…
Can you be more specific?
What do I do with an MP4 video that plays perfectly on Windows 7 in any player I try but on XP in every player I’ve tried the audio starts out OK but gets progressively farther out of synch?
The frame rate of the videos is for some reason 23.976. What’s up with that? They were digitally recorded for the web, not done on film or intended for TV broadcast. No reason to use an oddball rate like that.
What can I do to these videos (without re-encoding) to firmly nail down the relationship between video and audio so they’ll play correctly no matter what operating system or player software is used?
I’m not exactly sure what the issue is Galane. Have you tried to play these files using the K-lite codec pack in Windows XP? The fps should not change unless you’ve changed it manually…
THANKS For your help…… it’s work perfectly………….
You’re welcome :).
tanx dude it works…….
You’re welcome jesbin 🙂 .
Thank you! This tool was exactly what I needed to solve my problem.
You’re welcome Poly.
Thanks bro for this help but I still have problem…
I have a movie doenloaded in mkv format with dual audio… one of them has multiple delays… I mean.. sometimes audio comes too early.. then after 20-25 minute, the position changes.. then audio is late.. etc.. it goes on in full movie.. HELP
I’m sorry hritik, I don’t know how to deal with that. It sounds like a badly encoded multimedia file… You could however, try to extract the troublesome audio out of that file and put it to a different one. Then also save the remaining audio and the video file into a new .mkv file. Then later, merge both (the one containing the audio & the with both the other audio and the video file) into a new one. I don’t think it would help, but you can try it at least…
Thanks you are great job is done thank you so much
You’re welcome Yousuf.
Works like a charm – thks a lot for the tutorial, Gayan!
You’re welcome Jetstor 🙂 .