Extract audio or video from MKV files with mkvtoolnix

2 minute read

I streamed a few DJ sets over the last few weeks with a bunch of friends as part of ‘covidcore’, an online get-together while we’re all in isolation. It’s been a while since I’ve played any DJ sets but it was great fun and thankfully I didn’t make too many mistakes.

Anyway, It was my first streaming experience and I found it a breeze to set up thanks to Twitch and OBS. When reviewing my recordings I noticed that my microphone level was pretty low so I decided to bust out the audio track from the video and raise it. Also when uploading my video to Youtube I also got a copyright notice about one the clips in my video which was subsequently being blocked, so I decided to edit that out too.

Here is how you can do it.

Note: I’m on a mac so all of the instructions are for that, but apart from installation the rest should be platform agnostic.

Steps

  • Install mkvtoolnix
  • Extract audio and video tracks from mkv file
  • Optionally convert audio track if editing needed
  • Merge audio and video tracks back in to mkv file

Install mkvtoolnix

mkvtoolnix is a set of command line programs for finding out information and modifying mkv (“Matroska”) files. You can install it with a GUI but I didn’t bother.

$ brew install mkvtoolnix

That’s it, boom!

Extract audio and video tracks from mkv file

For this step we are going to run this command

mkvextract tracks your-mkv-file.mkv 0:video.h264 1:audio.aac

In the above command we are using mkvextract, part of mkvtoolnix, to extract the video track which is encoded using the ‘h264’ codec and also the audio track which is encoded using the AAC codec.

In order to find out what your video and audio tracks were encoded with use the following tool

mkvinfo your-mkv-file.mkv

Might be good to reference the docs if you have trouble there.

Optionally convert audio track if editing needed

My audio editor couldn’t open the aac file I created so I converted it to FLAC format using ffmpeg, another command line program that is insanely useful for converting audio formats (amongst other things).

So to convert I ran

ffmpeg -i audio.aac  -c:a flac audio.flac

Now I can open my flac file and edit the parts I want, like amplifying my microphone in the recording.

Merge audio and video tracks back in to mkv file

Right, now you have completed your editing we can stitch them back together again using the mkvmerge command

mkvmerge -o name-of-your-output-file.mkv video.h264 audio.flac

You can see I just merged the flac formatted audio back in. I just tried it and it worked. I need to read up a bit more on file formats to be honest so if you need more info check the docs.

Hope that helps someone :)

Leave a comment