MKVToolNix v8.6.0 released


The next release of MKVToolNix is available: v8.6.0. Like the previous couple of releases this one focuses on bug fixes primarily. However, it also introduces one interesting new feature with support output mkvmerge’s identification result as JSON for improved scripting.

There’s also an important change breaking backwards compatibility: text files created by the tools (e.g. chapters extracted with mkvextract or redirected output of any of the tools) won’t start with a byte order mark (BOM) anymore, even if they’re encoded in one of the UTF-* encodings. Back in the day people believed that text files would be encoded primarily in UTF in the future and that distinguishing between those formats automatically with a byte order mark seemed sensible.

Reality has shown that things turned out differently: text files are overwhelmingly encoded in UTF-8 if they originate on Linux/Unix/Mac OS and in Windows’ local encoding otherwise. Writing byte order marks isn’t recommended anymore anyway.

This is an experimental change in so far as I’m willing to reverse it if enough people speak out for keeping the BOMs. So if you have legitimate concerns about this then please drop me a line.

An important change for package maintainers is that gcc 4.8.0 or newer/clang 3.4 or newer is now required for compilation due to the (header-only) library used for generating the JSON output. This concerns CentOS 6 and Debian 7 “wheezy” for which I don’t offer binaries anymore as a consequence.

The Windows and Mac OS binaries are available. Most of the Linux binaries are still being built and will be available in a couple of hours.

You can download the source code or one of the binaries.

Here’s the full ChangeLog since the previous release:

  • 2015-11-28 Moritz Bunkus <>
    • Released v8.6.0.
    • all: change: none of the tools will write a byte-order mark (BOM) to text files encoded any of the UTF-* schemes anymore.
  • 2015-11-25 Moritz Bunkus <>
    • mkvmerge: Matroska reader bug fix: the info about which packetizer is used was output twice for each HEVC track. Fixes #1522.
    • MKVToolNix GUI: bug fix: implemented a workaround for a bug in Qt which caused the GUI not to start anymore due to failing to detect a stale lock file if the GUI had crashed before on a computer with a host name that included non-ASCII characters. See
  • 2015-11-22 Moritz Bunkus <>
    • mkvmerge: bug fix: a track’s number of bits per audio sample wasn’t output in verbose identification mode even if it was present in the file.
    • mkvmerge: enhancement: if no seek head is found before the first cluster when reading Matroska files then mkvmerge will attempt a deeper scan of all elements in the file in order to find track headers, attachments, chapters and tags located at the end of the file. See #1513 for the rationale.
  • 2015-11-21 Moritz Bunkus <>
    • MKVToolNix GUI: header editor bug fix: the "status" description wasn’t adjusting its height properly resulting in its text being cut off. Fixes #1517.
    • MKVToolNix GUI: bug fix: the program changes its working directory to the user’s profile/home directory on startup allowing the removal of its installation folder even if a program started by the GUI (e.g. a web browser) is still running. Fixes #1518.
    • ebml_validator: bug fix: elements with an unknown size weren’t handled correctly.
    • build system: fixed building and linking against libEBML and libMatroska if they’re installed in a non-standard location.
    • mkvpropedit, MKVToolNix GUI’s chapter and header editors: the tools were unable to update elements in files without a seek head present. Fixes #1516.
  • 2015-11-15 Moritz Bunkus <>
    • mkvmerge: bug fix: fixed two issues causing mkvmerge to write invalid data when updating track headers caused by the fix for "Re-rendering track headers: data_size != 0 not implemented yet". Fixes #1498.
    • all: MKVToolNix now requires gcc 4.8.0 or later or clang 3.4 or later for compilation.
  • 2015-11-14 Moritz Bunkus <>
    • MKVToolNix GUI: bug fix: the options for linking to the next/previous segment UID were wrong. Fixes #1511.
  • 2015-11-10 Moritz Bunkus <>
    • mkvmerge: enhancement: added JSON as an output format for file type identification. It can be activated with "–identification-format json –identify yourfile.ext" (or their short counterparts "-F json -i yourfile.ext").
  • 2015-11-09 Moritz Bunkus <>
    • mkvmerge: bug fix: the VC-1 handlig code was duplicating the first sequence headers with each mux. Fixes #1503.
  • 2015-11-08 Moritz Bunkus <>
    • build system: bug fix: configure was checking for and using libintl if –without-gettext was used. Fixes #1501.

Have fun.