With these tools, one can get information about (mkvinfo) Matroska files, extract tracks/data from (mkvextract) Matroska files and create (mkvmerge) Matroska files from other media files. Matroska is a new multimedia file format aiming to become the new container format for the future. You can find more information about it and its underlying technology, the Extensible Binary Meta Language (EBML), at https://www.matroska.org/

What's New

Happy new year! Good time for a new release, I guess. This one with lots of bug fixes & enhancements. One important change is that Qt 5 is not supported anymore. The program now requires Qt 6.2 or newer for compilation.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are still being built and will be available over the course of the next couple of hours.

Here are the news since the previous release:

New features and enhancements

  • mkvmerge: Matroska reader: the "video alpha mode" track header property will be copied to the output file if present. Part of the implementation of #3643.
  • mkvmerge: Matroska reader: the "video alpha mode" track header property will be reported in JSON identification mode as the track property alpha_mode. Part of the implementation of #3643.
  • mkvmerge: Matroska reader: the file's timestamp scaling factor will be reported in JSON identification mode as the container property timestamp_scale.
  • mkvmerge: MPEG transport stream reader: teletext subtitles intended for hearing impaired people (type 0x05) are now marked as such via the appropriate flag in the track headers.
  • mkvmerge: file identification: the JSON identification output schema version has been bumped to 19.
  • mkvmerge: added a new hack always_write_block_add_ids that can be used as a workaround for players that don't support the handling of missing "Block Addition ID" sub-elements of "Block More" elements in block additions properly. These are used for e.g. alpha channel data in VP9 with a "Block Addition ID" value of 1, which is also its default value. Workaround for the player issues listed in #3643.
  • mkvinfo: added support for the "video alpha mode" track header element. Part of the implementation of #3643.
  • mkvpropedit, MKVToolNix GUI's header editor: added support for the "video alpha mode" track header property. In mkvpropedit it's called alpha-mode. Part of the implementation of #3643.
  • MKVToolNix GUI: multiplexer: when adding files the GUI can automatically enable the "hearing impaired" flag for audio and subtitle tracks if the file name contains the word "cc" or "sdh" delimited by certain characters (configurable). This feature is turned on by default. Implements #3648.
  • MKVToolNix GUI: multiplexer: when scanning for Blu-ray playlists the GUI will now ignore playlists that are likely meant for menus. Currently the GUI considers this to be the case when a playlist contains the same item at least five times. This behavior can be turned off in the preferences. Implements #3658.

Bug fixes

  • mkvmerge: MPEG transport stream reader: fixed a crash introduced in v81 that occurred when there was at least one PCM track that wasn't copied from the transport stream file. Fixes #3645.
  • mkvmerge: when reading data from Matroska files damaged in a specific way, mkvmerge ended up trying to write various types of elements that aren't allowed to be written (so-called EbmlDummy elements as well as elements that don't have a value set) to the output file, which caused the underlying libebml library to abort. These types of broken elements are now filtered out.

Build system changes

  • Qt 5 is no longer supported. Qt 6 is now required for building MKVToolNix. This implies that the options to configure revolving around configuring Qt 5 or choosing between the two have been removed (e.g. --disable-qt6).
  • Qt 6 detection: if detection fails, error messages from qmake can now be found in config.log. See #3649.
  • Qt 6 detection: configure will only consider Qt 6.2.0 or newer, not 6.0.x or 6.1.y anymore, due to the lack of support for the multimedia module.
  • Qt 6 detection: configure will now fail to detect Qt 6 if the 'multimedia' module is not found by qmake (e.g. due to development packages not being installed). See #3649.
  • The bundled fmt library was updated to v10.1.1.