MKVToolNix v23.0.0 is out containing a moderate number of enhancements and bug fixes.
About AV1 support: even though the previous release was the first to support AV1, keep in mind that neither the bitstream format nor the method of storage in MP4, WebM and Matroska has been finalized yet. I’ve therefore decided to disable AV1 support by default. You have to enable it manually by passing
--engage enable_av1 to mkvmerge. mkvmerge can still identify AV1 without that option, but it’ll refuse to multiplex it.
Note further that only supported bitstream format is the one that was active on 2018-05-02.
To my users on Debian and Ubuntu: the layout of my APT repositories was changed in April. You’ll have to update your
sources.list entry accordingly. Read more about that in this blog post.
You can download the source code or one of the binaries. The Windows and macOS binaries are available already. The Linux binaries are stil being built and will be available of the course of the next couple of hours.
Here are the NEWS since the previous release:
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
- 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; see #2196 and #2270.
- MKVToolNix GUI: multiplexer: added options to only enable tracks of certain
types by default. Implements #2271.
- MKVToolNix GUI: multiplexer: added an option to enable dialog normalization
gain removal by default for all audio tracks for which the operation is
supported. Implements #2272.
- 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. Part of the improvements for #2267.
- MKVToolNix GUI: multiplexer: the regular expression used for deriving track
languages from the file names can now be customized in the preferences. Part
of the improvements for #2267.
- 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. Part of
the improvements for #2267.
- mkvmerge: MP3 packetizer: removed a memory leak growing linearly with the
- 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. Fixes #2260.
- mkvmerge: track statistics tags: if writing the
written either anymore. Fixes #2286.
- mkvmerge, mkvextract, mkvpropedit: removed several small, constant-size
- mkvextract: fixed a crash when mkvextract with a non-Matroska file as the
source file. Fixes #2281.
- MKVToolNix GUI: the central area is now scrollable, allowing the GUI to be
resized to almost arbitrary sizes. Fixes #2265.
- 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. Fixes #2276.
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
- mkvmerge: AV1: support for AV1 must be activated manually by adding
--engage enable_av1as the AV1 bitstream specification hasn’t been
Have fun :)