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:

New features and enhancements

  • mkvmerge: AAC: added support for LOAS/LATM files with channel configuration indexes 9–21 (e.g. channel count 22.2 for index 13) according to Rec. ITU-R BS.1196-7 & ISO/IEC 23008-3:2019. Fixes #3081.

Bug fixes

  • mkvmerge: HEVC/H.265 parser: fixed invalid memory access that could happen when reading certain types of HEVC data (e.g. with changing parameter sets mid-stream) from certain containers (e.g. Matroska). This bug was introduced in release 56.0.0. Fixes #3083.
  • mkvextract: AAC: mkvextract will now abort with an useful error message when the user tries to extract a track whose ‘audio-specific config’ element in CodecPrivate signals a number of channels of 7 or greater than 8 as that isn’t supported by the ADTS format.

Build system changes

  • configure: the --enable-ubsan option hasn’t actually enabled anything since release 39.0.0.

Previous release notes:

New features and enhancements

  • mkvmerge, mkvpropedit: tags: the programs will no longer write tag elements that are mandatory and set to their default value (e.g. “tag language” set to und = undetermined).
  • mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: the programs will no longer write chapter elements that are mandatory and set to their default value (e.g. “chapter language” set to eng = English or “Chapter flag enabled” = 1).
  • mkvextract: chapters: mkvextract will no longer add a ChapterLanguage element set to eng to the generated XML content if the source file doesn’t contain such an element.
  • MKVToolNix GUI: multiplexer: when using the “tab widget below the files & tracks” layout option for the track properties the elements in the “general options” tab will use six rows à four columns instead of twelve rows à two columns, greatly reducing the required height. Implements #3062.

Bug fixes

  • mkvmerge: AAC reader: fixed mkvmerge aborting to read AAC files bigger than 2 GB with a message about not being able to allocate memory. Fixes #3059.
  • mkvmerge: chapters: ChapLanguageIETF elements were still created when the option --disable-language-ietf was given after an option leading to the creation of chapters. Now the position doesn’t matter anymore. Part of the fix of #3069.
  • mkvmerge: chapters: when the option --disable-language-ietf is used, ChapLanguageIETF elements won’t be written even when sources are read (Matroska files or XML chapters files) that do contain those elements. Part of the fix of #3069.
  • mkvmerge: tags: when the option --disable-language-ietf is used, TagLanguageIETF elements won’t be written. Fixes #3070.
  • mkvmerge: tags: mkvmerge will no longer write language elements for the track statistics tags it creates, making the effective language “undetermined” due to und being the default value for the legacy tag language element. Fixes #3073.
  • mkvmerge: tags: the XML tag parser will now validate all children of elements, not just the first for each . Part of the fix of #3071.
  • mkvmerge: tags: the XML tag parser now uses the spec-compliant und (“undetermined”) as the default language for tags instead of eng. Part of the fix of #3071.
  • mkvmerge, mkvpropedit: tags: mkvmerge will no longer set the “target type” for track statistics tags (earlier it used MOVIE). The “target type value” will still be set to 50. Fixes #3074.
  • mkvmerge, mkvextract: HEVC/H.265: both programs will now normalize the placement of VPS, SPS and PPS NALUs. Each key frame is prefixed with exactly one copy of the currently active parameter sets. This fixes certain classes of bugs related to splitting/appending. Fixes #3034.
  • mkvinfo: when compiled with newer versions of the fmt library, certain numbers were not output correctly (e.g. a track’s audio sampling frequency of 48000 might be output as 48).
  • MKVToolNix GUI: multiplexer: deriving the track language from the file name will match languages case insensitively again (like versions prior to v55). Fixes #3068.
  • MKVToolNix GUI: multiplexer: under certain circumstances keyboard shortcuts such as Ctrl+W for closing the active tab or Ctrl+R for starting to multiplex ceased to work until the user did certain other things (such as switching to a different tool & back to the multiplexer or opening the multiplexer menu). This started with v54. Fixes #3051.
  • MKVToolNix GUI: chapter editor: the editor will no longer create empty ChapterCountry elements when adding a chapter name with no default country selected in the preferences. Fixes #3072.

Build system changes

  • The bundled fmt library was updated to v7.1.3.