This step by step guide will show you how to fix out of sync audio and video in a video file.
There are two ways to fix out of sync audio and video – one is temporary and quick, the other is permanent and a bit more involved, although still quite easy.
Tutorial for my blog: used in this tutorial with download link:1. MKVToolNix - MKV. MKVToolNix Batch Tool. Batch video and subtitle processing program to help you add (merge) or remove subtitles from your video library. Allows you to process a directory, and/or all. Does MKVToolNix reduce quality? The quality of the remade file will remain the same because the utility does not recode content. MKVToolNix is an MP4 reader that is compatible with the AVC, AVI, Dirac, MPEG, RealVideo, and VC1 video formats. MKVToolNix will support AAC, DTS, Enhanced AC, FLAC, MP2, MP3, RealAudio, Vorbis, etc.
Temporarily Fix Out of Sync Audio and Video
The quick solution is to use the amazing (and free) media player – VLC, and its easy to use built in audio delay/forward feature. If you aren’t using VLC yet, head over to their download page and give it an install. Note: this will work for all video formats, not just mkv/mp4/avi – they’re just common formats (and the 3 that I’ve found most often have sync issues).
- Open the video with the out of sync audio in VLC and then select Tools ->Track Synchronization (Mac users: select Window ->Track Synchronization)
- Locate the section titled Audio/Video – within that window there’s a ‘timer’ with “up and down arrows” to adjust the timing of the audio. This is where the magic happens.
- Use the “up arrow” if the audio is ahead of the video. That means if the people in the video are talking and you can hear them before their lips move, you’ll want to use the up arrow. That will ‘delay’ the audio, allowing the video to ‘catch up’.
So in reverse, if the audio is behind the video you’ll want to use the “down arrow”. That will speed the audio up.
In both instances, when you use the up and down arrows it will adjust your audio by 1/10th of a second per click. Let the video play while you’re making the adjustments – but note that it’ll take a second or three for the change to take place each time you adjust the sync timing.
Mkvtoolnix Extract Mp4
Permanently Fix Out of Sync Audio and Video
To permanently fix out of sync audio and video, you’ll need to download an open source (free) video editor, Avidemux. It’s cross-platform which means it’s available for Windows, macOS and Linux.
Note: the screenshots used below are from a Mac, but the steps and screens are nearly identical if you’re using Windows or Linux and you should have no trouble at all following along.
- Once you’ve downloaded and installed Avidemux, open it.
- Select File ->Open…
- Navigate to the video file that’s out of sync, select it and then click Open
- After a few moments the video will open up in Avidemux. Use the “timeline slider” (see screenshot below) to move the video forward a bit.
- With the video paused, place a check in the box labelled Shift, which can be found in the Audio Output section.
- Use the “up arrow” in the Audio Output section to increase the number of milliseconds if the audio is ahead of the video. That means if the people in the video are talking and you can hear them before their lips move, you’ll want to use the up arrow. That will ‘delay’ the audio, allowing the video to ‘catch up’.
So in reverse, if the audio is behind the video you’ll want to use the “down arrow”. That will speed the audio up.
- Use the Play button to determine if the video is now in sync with the audio and keep adjusting with the up and down arrows until it is.
- Once you’re happy with the result, select File and then Save
- Give the video a new/different name so that you don’t overwrite the original, which you can delete later once you’re sure the new video is perfect. Leave the video type as mkv and then click the Save button.
- Give Avidemux a few moments to do its thing.
- Ta-da! All done. Click the OK button and then exit out of Avidemux. Open your newly created video file in your player of choice and make sure it’s all synced up.
Other Resources
How to Add Bookmarks to a Video
How to Extract Just the Audio from an MP4 File
Hello everyhone,
another month, another MKVToolNix release. This one includes quite a high number of commits under the hood due to the prominent new feature I’ve implemented: support for the new IETF BCP 47 language elements. Finally you can express things such as “Portuguese as spoken in Brazil” or “Serbian in Cyrillic script as spoken in Serbia”.
Apart from that there are the usual enhancements & bug fixes.
Important news for package managers is that the PCRE2 library is now required (only its UTF-8 variant).
You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available over the course of the next couple of hours.
Mp4 Toolnix
Here are the NEWS since the previous release:
New feature: IETF BCP 47 language tags
- I’ve written up a nice FAQ entry about the switch to using IETF BCP 47 language tags, how they interact with legacy language elements, how the programs actually behave and how to disable their use if necessary.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: mkvmerge will now accept full BCP 47 language tags for all options taking a language. mkvmerge will always write 'LanguageIETF' track header elements. If the language tag contains a valid ISO 639-2 language code it will also set the legacy 'Language' track header element to the included ISO 639-2 code. Part of the implementation of #2419.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: if present the 'LanguageIETF' track header element will be reported as the
language_ietf
property in JSON identification mode. Part of the implementation of #2419. - mkvmerge: IETF BCP 47/RFC 5646 language tags in chapters: mkvmerge will now write 'ChapLanguageIETF' elements when creating chapter atoms, either when reading the simple chapter format or when generating chapters due to the
--generate-chapters
command line option. Part of the implementation of #2419. - mkvmerge: IETF BCP 47/RFC 5646 language tags in tags: mkvmerge will now write 'TagLanguageIETF' elements when creating 'simple tag' elements, either when reading tag XML files or when generating them. Part of the implementation of #2419.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: added an option
--disable-language-ietf
that causes mkvmerge to only write the legacy language elements. - mkvmerge, mkvpropedit, MKVToolNix GUI’s chapter editor: IETF BCP 47/RFC 5646 language tags in chapters: when reading XML chapter files the programs will now add 'ChapLanguageIETF' elements for atoms that don’t contain them. The values are derived from existing 'ChapterLanguage' elements. Part of the implementation of #2419.
- mkvpropedit: IETF BCP 47/RFC 5646 language tags: setting/deleting the track language now acts on both the old language element as well as the 'LanguageIETF' track header element. Part of the implementation of #2419.
- mkvpropedit: IETF BCP 47/RFC 5646 language tags: added an option
--disable-language-ietf
that causes mkvpropedit to apply changes to thelanguage
track header property only to the legacy language track header element. - mkvinfo: IETF BCP 47/RFC 5646 language tags: added support for the 'LanguageIETF' track header element. Part of the implementation of #2419.
- MKVToolNix GUI: multiplexer: added full support for IETF BCP 47/RFC 5646 language tags for both track and chapter languages. Part of the implementation of #2419.
- MKVToolNix GUI: chapter: added full support for IETF BCP 47/RFC 5646 language tags for chapter languages. Part of the implementation of #2419.
- MKVToolNix GUI: header editor: added full support for IETF BCP 47/RFC 5646 language tags for track header languages. The header editor allows editing of the legacy language elements and the IETF BCP 47 language elements independent of each other. Part of the implementation of #2419.
Other new features and enhancements
- mkvmerge: the chapter generation mode
when-appending
now also works with the splitting modesparts:
&parts-frames:
when using the…,+…
syntax for appending other sections of the source file to the same destination file. Implements #2898. - MKVToolNix GUI: multiplexer: the file selection dialogs now include the extension
.dtsma
for DTS files. Implements #2901. - mkvmerge: MP4 reader: sped up parsing MP4 DASH files with a lot of segments (
trun
atoms) quite a bit. Part of the fix of #2900. - The PCRE2 regular expression library is now used instead of
std::regex
for big performance improvements in all places where regular expressions are used for parsing big chunks of text, e.g. in the subtitle parsers. Part of the fix of #2899. - all programs: Windows: all programs now support long file names on Windows 10 release 1604 if they’re turned on in the registry. Implements #2916.
Bug fixes
Mkvtoolnix Mp4 Downloader
- MKVToolNix GUI: preferences: under certain conditions changing the selected entry in the page tree on the left did not cause the page shown on the right to be updated. Fixes #2895.
- mkvmerge: splitting text by a fixed string (e.g.
,
) is now done by usingstd::string.find()
instead of using a regular-expression-based text splitting function, greatly improving its performance. Part of the fix of #2899. - mkvmerge: mkvmerge will now read-buffer file I/O when probing text file formats which increases its speed significantly on Windows. Part of the fix of #2899.
- mkvmerge: MP4 reader: fixed handling of
tkhd
atoms of version 1. Fixes #2900.
Build system changes
- The PCRE2 library (the 8-bit variant) is now required.
Have fun!