MKVToolNix is a set of tools that include mkvmerge, mkvinfo, mkvextract, mkvpropedit and mmg, which allow you to to create, manipulate and inspect Matroska (.MKV) files in several ways. With MKVToolNix you can create, split, edit, mux, demux, merge, extract or inspect Matroska files.
Supported formats include:
- Video formats: AVI, MPEG, MP4, MPEG, Ogg/OGM, RealVideo, MPEG1/2, h264/AVC, Dirac, VC1. Suported video codecs include VP9.
- Audio formats: AAC, FLAC, MP2, MP3, (E)AC3, DTS/DTS-HD, Vorbis, RealAudio.
- Subtitle formats: SRT, PGS/SUP, VobSub, ASS and SSA.
MKVToolNix is a cross platform application, which is also available for MAC OS X and Linux.
New features and enhancements:
Mkvmerge: input: format detection uses file-extension to improve performance and to give preference when several formats match.
Mkvmerge: AV1: added support for reading AV1 video from Open Bitstream Unit files.
Mkvmerge: AV1: adjusted the code for the AV1 bitstream format changes made up to 2018-05-02 (git revision d14e878).
Mkvmerge: MP4 reader: if a track has an edit list with two identical entries, each spanning the file’s duration as given in the movie header atom, then the second entry will now be ignored. Improves the handling of files with bogus data.
MKVToolNix GUI: multiplexer: added options to only enable tracks of certain types by default.
MKVToolNix GUI: multiplexer: added an option to enable dialog normalization gain removal by default for all audio tracks for which the operation is supported.
MKVToolNix GUI: multiplexer: when deriving track languages from the file names is active and the file name contains the usual season/episode pattern (e.g. "S02E14"), then only the part after the season/episode pattern will be used for detecting the language.
MKVToolNix GUI: multiplexer: the regular expression used for deriving track languages from the file names can now be customized in the preferences.
MKVToolNix GUI: multiplexer: the user can now customize the list of track languages the GUI recognizes in file names. This list defaults to a handful of common languages instead of the full list of supported languages.
Mkvmerge: MP3 packetizer: removed a memory leak growing linearly with the track’s size.
Mkvmerge: VobSub packetizer: whenever a VobSub packet doesn’t contain a duration on the container level, mkvmerge will now set it from the duration in the SPU packets. Before it was accidentally setting the SPU-level duration to 0 instead.
Mkvmerge: track statistics tags: if writing the Date element is deactivated via --no-date, the _STATISTICS_WRITING_DATE_UTC isn’t written either anymore.
Mkvmerge, mkvextract, mkvpropedit: removed several small, constant-size memory leaks.
Mkvextract: fixed a crash when mkvextract with a non-Matroska file as the source file.
MKVToolNix GUI: the central area is now scrollable, allowing the GUI to be resized to almost arbitrary sizes.
MKVToolNix GUI: multiplexer: the "copy file title to destination file name" functionality will now replace everything in the destination file name up to the last period instead of only up to the first period.
Build system changes:
Build system: MKVToolNix now requires a compiler that supports the following features of the C++14 standard: "user-defined literals for std::string". For the GNU Compiler Collection (gcc) this means v5.x or newer; for clang it means v3.4 or newer.
Windows: linking against and installing shared version of the libraries with MXE is now supported by setting configure‘s host triplet accordingly, e.g. --host=x86_64-w64-mingw32.shared.
Mkvmerge: AV1: support for AV1 must be activated manually by adding --engage enable_av1 as the AV1 bitstream specification hasn’t been finalized yet.