MKVToolNix logo MKVToolNix – Matroska tools for Linux/Unix and Windows

Source Code

If you want to compile the tools yourself then you must first decide if you want to use a 'proper' release version or the current development version. As both Matroska and MKVToolNix are under heavy development there might be features available in the Git source code repository that are not available in the releases. On the other hand the Git source code repository version might not even compile.


Either download the release 86.0 (GPG signature) and unpack it or get a fresh copy from my Git source code repository.

Note that I sign my released source code tarballs with the same GPG key I use for email and my Debian/Ubuntu APT repositories: sub-key ID 0x74AF00AD F2E32C85 of key ID 0x0F92290A 445B9007. Commits in Git are not signed.

You can download older releases from the sources directory.


In order to compile MKVToolNix you need a couple of libraries and programs. Most of them should be available pre-compiled for your distribution. You can find the up-to-date list in the file.

Building and installing MKVToolNix from source

Instructions for building libEBML, libMatroska and MKVToolNix itself are part of the file. You can either build from a release tarball or from the current sources in my Git repository.

Building a DEB package for Debian/Ubuntu

Building binary packages for Debian and Ubuntu either from my Git sources or from a release tarball is pretty easy. The following steps assume that you're not root but may use sudo.

Now install a couple of packages needed for building MKVToolNix:

sudo apt install build-essential debhelper docbook-xsl fakeroot \
  libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-math-dev libboost-regex-dev libboost-system-dev \
  libbz2-dev libcmark-dev libdvdread-dev libflac-dev libfmt-dev libgmp-dev libgtest-dev liblzo2-dev libmagic-dev \
  libogg-dev libpcre2-8-0 libpcre2-dev libqt5svg5-dev libqt6svg6-dev libvorbis-dev \
  nlohmann-json3-dev pkg-config po4a \
  qt6-base-dev qt6-base-dev-tools qt6-multimedia-dev qtbase5-dev qtbase5-dev-tools qtmultimedia5-dev \
  rake ruby xsltproc zlib1g-dev

Attention: Debian 11 "Buster": note that you have to install the clang package for the clang compiler which is used due to a bug in the gcc version shipped with Debian 11.

Note: If you're having problems with Qt 6, you can install & compile with Qt 5 instead by installing the following packages: qt5-default qtbase5-dev qtbase5-dev-tools qtmultimedia5-dev.

Note: if your distribution doesn't provide libcmark-dev yet, you can active my Debian/Ubuntu APT repository as I provide said package for a couple of distribution releases.

Next download either a release tarball or get a development snapshot from my git repository, rename one of its sub-directories, call a helper script and lastly build the packages themselves. For a release tarball, e.g. v86.0, you have to do the following:

curl -o mkvtoolnix_86.0.orig.tar.xz
tar xJf mkvtoolnix_86.0.orig.tar.xz
cd mkvtoolnix-86.0
cp -R packaging/debian debian
dpkg-buildpackage -b --no-sign

For a development snapshot from my git repository the steps are the following:

sudo apt-get install autoconf automake git
git clone mkvtoolnix-86.0
cd mkvtoolnix-86.0
git submodule init
git submodule update
cp -R packaging/debian debian
cd ..
tar -cf - --exclude mkvtoolnix-86.0/.git mkvtoolnix-86.0 | xz > mkvtoolnix_86.0.orig.tar.xz
cd mkvtoolnix-86.0
dpkg-buildpackage -b --no-sign

Afterwards the two new packages mkvtoolnix and mkvtoolnix-gui will have been built in the same directory the source code directory (mkvtoolnix-86.0) is in.

© 2002 – 2020 Moritz Bunkus   |   Imprint/Impressum   |   Data Protection/Datenschutz   |   Cookie settings