Source Code

If you’re planning to compile the tools yourself, the first step is to choose between using an official release version or the latest development version. Since both Matroska and MKVToolNix are actively being developed, the Git repository might offer new features that are not yet available in the official releases. However, keep in mind that the development version from the Git repository may not always compile successfully.

Download

You can download the latest release (version 87.0) by either retrieving the GPG-signed file and unpacking it or by cloning the most recent copy from my Git repository.

Please note that I sign all released source code tarballs using the same GPG key that I use for emails and my Debian/Ubuntu APT repositories. The sub-key ID is 0x74AF00AD F2E32C85, and the key ID is 0x0F92290A 445B9007. However, Git commits are not signed.

For previous versions, you can access older releases in the sources directory.

Requirements

To compile MKVToolNix, several libraries and programs are required. Most of these should already be available in pre-compiled form for your distribution. For the latest list of necessary dependencies, refer to the README.md file.

Building and Installing MKVToolNix from Source

The steps for building libEBML, libMatroska, and MKVToolNix are outlined in the README.md file. You have the option to either compile from a release tarball or use the latest source code from the Git repository.

Building a DEB Package for Debian/Ubuntu

Follow these steps to build MKVToolNix packages:

  1. Install Required Packages:

    sudo apt install build-essential debhelper fakeroot libboost-dev libcmark-dev qt6-base-dev qtbase5-dev rake ruby

    For Debian 11, install clang due to a gcc bug. If Qt 6 causes issues, install Qt 5:

    sudo apt install qt5-default qtbase5-dev qtmultimedia5-dev
  2. Download and Prepare Source:

    For a release tarball (e.g., v87.0):

    curl -o mkvtoolnix_87.0.orig.tar.xz https://mkvtoolnix.download/sources/mkvtoolnix-87.0.tar.xz
    tar xJf mkvtoolnix_87.0.orig.tar.xz
    cd mkvtoolnix-87.0
    cp -R packaging/debian debian
    dpkg-buildpackage -b --no-sign

    For a Git snapshot:

    sudo apt install autoconf automake git
    git clone https://gitlab.com/mbunkus/mkvtoolnix.git mkvtoolnix-87.0
    cd mkvtoolnix-87.0
    git submodule init && git submodule update
    ./autogen.sh
    dpkg-buildpackage -b --no-sign

This will generate the mkvtoolnix and mkvtoolnix-gui DEB packages.