MKVToolNix v15.0.0 released

Here’s the brand new version 15.0.0 of MKVToolNix. A lot of work has gone into improving support for new track header elements important for video archival purposes. A couple of bugs have been fixed, too, as usual.

Changes for package maintainers: libEBML v1.3.5 is now required. An option has been added to configure for compiling without the code that checks online for new releases. See below for details.

Deprecation warning

This is a reminder that certain features having been deprecated since v9.7.0. They’re scheduled to be removed in the first release of 2018. These features are:

  • mkvmerge: the options “–identify-verbose”, “–identify-for-gui”, “–identify-for-mmg” and “–identification-format verbose” (use “–identification-format json –identify” or its short form “-J” instead)
  • all command line tools: the old, proprietary format used for option files (use JSON option files instead)

You can download the source code or one of the binaries. The Windows and macOS binaries have been built already and are available for download. The Linux binaries will be available later today.

Here are the NEWS since the previous release:

Important notes

  • mkvmerge, mkvpropedit, GUI’s header and chapter editors: the programs will no longer add most missing Matroska elements that are mandatory but have a default value in the Matroska specification (e.g. the TagLanguage element with a value of und if it isn’t present in its SimpleTag parent). Due to this change libEBML v1.3.5 is now required.

New features and enhancements

  • MKVToolNix GUI: multiplex tool: added a new entry to the "source files" context menu labeled "Set destination file name from selected file’s name". It will force the GUI to consider the selected file to be the reference for automatically setting the file name, no matter which file was originally added as the first file. It will also force setting the destination file name once if automatic destination file name generation is turned off in the preferences. Implements part of #2058.
  • MKVToolNix GUI: multiplex tool: added an option in the preferences on "Multiplexer" → "Output" labeled "Only use the first source file that contains a video track". If enabled, only source files containing video tracks will be used for setting the destination file name. Other files that are added are ignore. Implements the rest of #2058.
  • MKVToolNix GUI: header editor: added support for editing the video colour attributes. Implements the second half of #2038.
  • MKVToolNix GUI: header editor: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • MKVToolNix GUI: job queue: selected jobs can now be move up and down by pressing the Ctrl+Up and Ctrl+Down keys. Additionally, push buttons to move them up & down are shown if the corresponding option is enabled in the preferences. Implements #2060.
  • mkvmerge: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • mkvinfo: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • mkvpropedit: added support for editing the video colour attributes. Implements one half of #2038.
  • mkvpropedit: added support for the "video projection" track header attributes. Part of the implementation of #2064.

Bug fixes

  • all: selecting the program’s language (e.g. via the --ui-language command-line option or via the GUI’s preferences) did not work on Linux & Unix if the LANGUAGE environment variable was set and didn’t include the desired language. Fixes #2070.
  • MKVToolNix GUI: removed the keyboard shortcuts for switching between the different tools (e.g. Ctrl+Alt+1 for the multiplexer). They overlapped with basic functionality on keyboards that use an AltGr key, e.g. German ones, where AltGr+7 emits {. As AltGr+key is implemented as Ctrl+Alt+key under the hood, this means that AltGr+7 is really Ctrl+Alt+7 which the GUI now took to mean "switch to the job queue" instead of "insert {". Fixes #2056.
  • MKVToolNix GUI: header editor: after saving the file the GUI wasn’t updating its internal file modification timestamp. That lead to the GUI wrongfully claiming that the file had been modified externally when the user wanted to save the file once more, requiring a reload of the file losing all modifications made since saving the first time.
  • mkvmerge: DTS handling: some source files provide timestamps for audio tracks only once every n audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number n - 1 (the second audio timestamp read from the source file was used one output frame too early). Fixes #2071.
  • mkvinfo: fixed a null pointer dereference if an EbmlBinary element’s data pointer is a null pointer. Fixes #2072.

Build system changes

  • configure: added option --disable-update-check. If given, the code checking online for available updates will be disabled. The update check is enabled and included in the GUI by default.
  • libEBML v1.3.5 is now required.

Other changes

  • mkvmerge: the option --colour-matrix has been renamed to --colour-matrix-coefficients in order to match the specification more closely. The old option name will continue to be recognized as well.

Have fun :)

23 thoughts on “MKVToolNix v15.0.0 released

  1. Humberto Hernandez

    Hello thanks for your job, the file .dmg of the mkvtoolnix ver. 15. of the new install file does not work

      1. John Bluhdorn

        Thanks for a great app.
        I appreciate that the macOS build is unsupported. But, FYI, here are log extracts when installing and attempting to run v15.0.0. mkvtoolnix is running, but the gui does not display at all. The final line is a force-kill of the mkvtoolnix process.
        20/08/17 2:19:02.000 PM kernel[0]: hfs: mounted MKVToolNix-15.0.0 on device disk6s1
        20/08/17 2:19:03.005 PM mds[83]: (Volume.Normal:2464) volume:0x7f828a032000 ********** Bootstrapped Creating a default store:1 SpotLoc:(null) SpotVerLoc:(null) occlude:0 /Volumes/MKVToolNix-15.0.0
        20/08/17 2:19:18.000 PM kernel[0]: hfs: unmount initiated on MKVToolNix-15.0.0 on device disk6s1
        20/08/17 2:19:18.886 PM deleted[347]: normalizeUserMountpoint:791 volRoot failed for /Volumes/MKVToolNix-15.0.0
        20/08/17 2:19:18.886 PM deleted[347]: _validateVolume:813 unable to normalize volume: “/Volumes/MKVToolNix-15.0.0”, vol: (null)
        20/08/17 2:19:27.000 PM kernel[0]: CODE SIGNING: process 4241[CoreServicesUIAg]: rejecting invalid page at address 0x104749000 from offset 0x0 in file “/Applications/” (cs_mtime:1503129338.0 == mtime:1503129338.0) (signed:1 validated:1 tainted:1 wpmapped:0 slid:0)
        20/08/17 2:20:04.441 PM[1]: ([4294]) Service exited due to signal: Terminated: 15

        1. mosu Post author

          Which macOS version are you using? ’cause running the GUI from the DMG works fine for me on both Sierra and Mavericks.

        2. mosu Post author

          Oh, and a second question: does it work if you run it directly from the DMG instead of trying to install it?

  2. John Bluhdorn

    Under Sierra (in a VM) – macOS 10.12.6, the gui runs fine from DMG and /Applications.
    I don’t have any Yosemite systems to test on.
    The problem is on my iMac which is running ElCapitan – macOS 10.11.6.
    It behaves the same, whether started from DMG or from /Applications directory. These are the Console entries running from DMG.

    20/08/17 4:23:28.000 PM kernel[0]: hfs: mounted MKVToolNix-15.0.0 on device disk6s1
    20/08/17 4:23:28.968 PM mds[83]: (Volume.Normal:2464) volume:0x7f8289853000 ********** Bootstrapped Creating a default store:1 SpotLoc:(null) SpotVerLoc:(null) occlude:0 /Volumes/MKVToolNix-15.0.0
    20/08/17 4:23:35.000 PM kernel[0]: CODE SIGNING: process 5266[CoreServicesUIAg]: rejecting invalid page at address 0x10ef99000 from offset 0x0 in file “/Volumes/MKVToolNix-15.0.0/” (cs_mtime:1503129338.0 == mtime:1503129338.0) (signed:1 validated:1 tainted:1 wpmapped:0 slid:0)
    20/08/17 4:25:03.178 PM[1]: ([6354]) Service exited due to signal: Terminated: 15

    1. mosu Post author

      I still cannot reproduce such issues. I’ve set up a brand-new Sierra VM with a brand-new user account. Works fine. I’ve also set up a brand-new El Capitan VM with a brand-new user account. The GUI works fine on that one as well.

      For both new VMs I’ve tried all two (Sierra) respectively three (El Capitan) Gatekeeper settings, and the GUI works with all of them.

      The big difference between v14 and v15 is that I’ve started signing both the DMG and the binaries with an official certificate bought from Apple. Of course I could go back to providing unsigned binaries, but that is not a solution; it would only be a workaround. As Apple is continuously making running unsigned binaries harder, providing unsigned binaries is not a route I’m willing to take, especially not when I don’t understand why your machine(s) reject the current binaries in the first place.

      Googling for this isn’t all that helpful either, and not being able to reproduce this makes it next to impossible for someone as unfamiliar with macOS development as myself to fix this. So for the time being there will probably not be a solution to the problem.

      1. mosu Post author

        That being said: I’ve taken another look at my build script, and I do see that I sign the binaries before modifying them again with `install_name_tool`. I have no idea how that can work; the order is obviously wrong (but why does it work on my VMs, then?).

        I also see that I do not sign the `dylib`s I bundle. Several web sites advice signing them, too.

        I’ll change the build script and see what comes out of it.

      2. John Bluhdorn

        Thanks for looking at the issue.
        As I said, I totally understand that your macOS builds are unsupported, so I’m certainly not expecting you to spend any time on it.
        From the log reference to “1 tainted” in the ‘CODE SIGNING” line, it would seem the issue is related to your new signing process.
        When it works, it means that we can just double-click and don’t have to resort to the old “Open” method of initially opening the app. Thanks for that.
        I will continue to use v14 and try the next version whenever you release it.

          1. John Bluhdorn

            Thanks very much.
            That runs fine under 10.11.6 by selecting “Open” to get it to run the first time.

  3. Thomas J

    I have the same problem on my MacPro 3.0 and MacOSX 10.11.6 cannot run from dmg or applications directory.

  4. John Bluhdorn

    Sorry. build20170820-1555-67ccbae crashes both in /Applications & DMG.
    It starts to launch fine by double clicking.So the Gatekeeper works, but then it crashes. This time there is no mkvtoolnix thread still running, but it does produce a Problem Report.
    I could post some/all of the problem report if you’d like me to. I didn’t want to junk up the comments section unless it would be of any use to you.
    I’m quite happy to keep using the 1048 build myself, but I’m also happy to test out further stuff if it will help for future builds/versions.

      1. Thomas J

        Can confirm that this signed version works for me on MacOSX 10.11.6

        Thanks Mosu!

        Keep Up The Good Work!

  5. Skaendo

    Hey, thanks for this very useful prog.
    I have one question, in the release notes you mention that libEBML is now required. Is that built in or is it a external dependency? I am building on Slackware64-14.2, and it builds and works fine even though I have not installed libEBML.

    1. mosu Post author

      libEBML has always been a requirement. What’s changed is the minimum version.

      The MKVToolNix source package contains both libEBML and libMatroska. Therefore installing them isn’t necessary. If they’re not found on the system or if the system copies are too old, the bundled versions will be used instead. Most distributions prefer not to have the libraries bundled, and they will have to update their libEBML package accordingly before upgrading MKVToolNix to v15.

  6. Who Me?

    I am having a problem with the Win 64 bit installer. It will download, and start the installing process, but them I get an “Error opening file for writing”.
    C:\…. MKVToolNix\mkvverge.exe

    With Abort, Retry, and Ignore options. Retry will not work. Abort leaves me with a 14.0.0 version of mkvmerge and a 15.0.0 version of GUI.

    “Certain functions will not work correctly. Re-install or fix manually.”

    Please advise.

    1. mosu Post author

      Well, that error message can mean that mkvmerge.exe is currently still executing, or that you don’t have permission to overwrite the file. It might also be an Anti Virus product interfering. It’s not an issue in the installer.

      Try uninstalling the previous installation, then make sure all files have been removed from the old installation folder. If they haven’t, remove them manually. Afterwards install v15.

Comments are closed.