MKVToolNix is a set of tools that combine Mkvmerge, which allows you to to create, handle and inspect Matroska (.MKV) files in different ways. With MKVToolNix you can create, split, edit, mux, demux, merge, extractor examine Matroska files.
New features and improvements:
Mkvmerge: MP4 reader: additional support for Vorbis.
Configure: the tests for libEBML and libMatroska have been fixed to require libEBML 1.3.5 and libMatroska 1.4.7 as intended.
Mkvmerge: AAC reader: mkvmerge will now emit an error message for AAC files whose header fields imply a sampling pulse or any stations of 0.
Mkvmerge: AVC/h.264 ES parser: fixed the calculation of reference information for B and P frames.
Mkvmerge: AVC/h.264 ES parser: an only non-key support which has the NALU header field nal_ref_idc set to 0 will be considered as "discardable" in SimpleBlock elements.
Mkvmerge: HEVC/h.265: the generation of this HEVC construction stored in CodecPrivate was incorrect in two areas: 1. The position of some sub-layers was swapped with reserved bits and two. The VPS/SPS/PPS/SEI lists did not begin with a booked 1 bit.
Mkvmerge: output: the doctype version will be set at least to two if individual parts remain written (CodecState, CueCodecState, FlagInterlaced).
Mkvmerge: Effect: the monitor header attributes MinCache and MaxCache will not be written anymore.
Mkvmerge: Matroska reader: the "key" and "discardable" flags of SimpleBlock elements will be retained as they are.
Mkvmerge: Matroska reader: if present in the file, the " white colour coordinate x" track header attribute obtained written to both " white colour coordinate x" and " white colour coordinate y" in the output file.
Mkvmerge: Opus output: mkvmerge will now place all frames with discard padding into their cube group.
MKVToolNix GUI: header editor: removed the test for external modification when saving the file.
MKVToolNix GUI: job queue: fixed calculation of total improvement when automated removal of finished is enabled. In actuality, v15.0.0 already requires libEBML v1.3.5 and libMatroska v1.4.7 but did not include appropriate version checks for them (nor was there a NEWS.md entrance for the new libMatroska requirement).
New features and enhancements:
Mkvmerge: AAC: implemented support for AAC with 960 samples per frame.
Mkvmerge: identification: if the encoding/character set of a text subtitle track is known (e.g. because a byte order mark is present in the file), then it will be output during identification as the encoding property.
Mkvmerge: WAV reader: added support for Wave64 files.
Mkvmerge, mkvpropedit, MKVToolNix GUI (chapter editor): added support for chapters in WebM files that is spec-compliant by removing all tag elements not supported by the WebM spec.
Mkvpropedit: added support for tags in WebM files that is spec-compliant by removing all tag elements not supported by the WebM spec.
MKVToolNix GUI: multiplexer: if the encoding/character set of a subtitle track cannot be changed, the GUI will deactivate the "subtitle character set" drop-down box and ignore changes to it when multiple tracks are selected. Additionally, if the track’s encoding is known and cannot be changed (e.g. due to a byte order mark in the file), that encoding will be selected in the drop-down box automatically. Both changes signal to the user that she doesn’t have to take care of the encoding herself.
MKVToolNix GUI: chapter editor: added a function to the "additional modifications" dialog for calculating and setting the end timestamps.
MKVToolNix GUI: changed the shortcuts for switching between the various tools from Alt+number (e.g. Alt+1 for the multiplexer tool) to Ctrl+Alt+number in order to avoid clashing with Windows’ input method for arbitrary characters (pressing and holding Alt and typing the codepoint on the number pad).
MKVToolNix GUI: added a "Window" menu and entries with shortcuts for selecting the next (Ctrl+F6) respectively previous tab (Ctrl+Shift+F6) in the current tool.
MKVToolNix GUI: on Windows the GUI will now determine the default font to use by querying Windows for the default UI/message box font instead of using the hardcoded Segoe UI.
Translations: added a Romanian translation of the programs.
Mkvmerge: AVC/h.264 parser: fixed wrong frame order & timestamp calculation in certain situations when SPS (sequence parameter sets) or PPS (picture parameter sets) change mid-stream.
Mkvmerge: HEVC/h.265 parser: fixed wrong frame order & timestamp calculation in certain situations when SPS (sequence parameter sets) or PPS (picture parameter sets) change mid-stream.
Mkvmerge: MPEG-1/-2 video: the "remove stuffing bytes" feature introduced in v5.8.0 was broken. In a lot of situations it did not detect the end of a slice correctly and removed 0 bytes that were actually part of the slice structure. Often there were no visual problems as decoders were able to ignore such errors, but in other cases there are visual artifacts upon decoding. As detecting the slice end properly requires parsing the whole slice structure, this feature has been removed again.
Mkvmerge: MPEG PS reader: fixed mkvmerge trying to handle an "end" code the same way as a "program stream map" code.
Mkvmerge: MPEG TS reader: mkvmerge won’t emit warnings if the system’s iconv library doesn’t support the ISO 6937 character set.
Mkvmerge: when appending fails the error message details (e.g. "the number of channels differs: 1 and 2") were often not output.
MKVToolNix GUI: multiplex tool: implemented a workaround for a crash that could occur during drag & drop if at least one of the columns is hidden.
MKVToolNix GUI: multiplex tool: appended tracks can no longer be enabled (selected for multiplexing) if the track they’re going to be appended to is not enabled.
MKVToolNix GUI: multiplex tool: if the GUI is set to ensure unique output file names, it will now verify that right before starting to multiplex/adding the job to the queue, too.
MKVToolNix GUI: fixed the total progress reverting to 0% instead of staying at 100% when all jobs have finished. This was introduced by the attempt at fixing the computation of the value of total progress bar for multiple jobs running.
Configure: fixed DocBook detection if /bin/sh is dash.