Multimedia

MKVToolNix

5  /  1231 Reviews
22,088,874 Downloads
Apr 10, 2022 Last updated

Downloads

Older Versions

# Change Log

# Version 67.0.0 "Under Stars" 2022-04-10

## New features and enhancements

* all: IETF BCP 47/RFC 5646 language tags: when deriving the legacy language

element codes to use a language tag's ISO 639 code is also potentially

interpreted as an & its prefix is used as the legacy language code. For

example, "Yue Chinese" = `yue` is not part of ISO 639-2. However, there is

an extlang subtag `yue` with a valid prefix of `zh` ("Chinese"), and for

"Chinese" there is an ISO 639-2 language code: `chi`. In this example the

IETF language element would be set to `yue` and the corresponding legacy

element to `chi`. Part of the implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: grandfathered language tags are now

supported. Part of the implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: all deprecated subtags from the

IANA language subtag registry are now supported. Part of the implementation

of #3307.

* all: IETF BCP 47/RFC 5646 language tags: all lists of valid subtags have

been updated from their respective authoritative sources. Part of the

implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: all in the IANA language subtag

registry are now supported, even those marked as deprecated and of type

'grandfathered'. Part of the implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: reduced the maximum number of

extended language subtags that are present in a valid tag from 3 to 1 in

compliance with RFC 5646 section 2.2.2. Part of the implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: all language codes reserved for

private/local use (`qaa`–`qtz`) are now supported. Part of the

implementation of #3307.

* all: IETF BCP 47/RFC 5646 language tags: Digital Cinema Naming Convention

language codes that fall into the IETF BCP 47 range of "private use" tags

(`qaa`–`qtz`) are now replaced by their IETF BCP 47 equivalents during

normalization (e.g. `QMS` → `cmn-Hans`). Part of the implementation of

#3307.

* all: added a new translation to Chinese Simplified (Singapore) by Dian Li.

* mkvmerge, mkvpropedit: added a new command line option called

`--enable-legacy-font-mime-types`. With this option on the two programs will

use the same legacy MIME types for fonts whenever new attachments are added

(both programs), when reading existing attachments (only `mkvmerge`) or when

replacing existing ones (only `mkvpropedit`).

* mkvmerge, mkvpropedit: IETF BCP 47/RFC 5646 language tags: added a command

line option `--normalize-language-ietf mode` which turns on normalization

of IETF BCP 47 language tags to either their canonical (mode `canonical`) or

extended language subtags form (mode `extlang`) or turns it off (mode

`off`). If the option isn't given, language tags will now be normalized to

the canonical form. Part of the implementation of #3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: ISO 639-3 and 639-5

languages will now be used by default. Part of the implementation of #3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor

dialog will now show warnings in several cases: when deprecated tags are

used; when the tag's canonical and/or extlang forms differ from the user

input. Part of the implementation of #3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language editor now

has a button to replace the current tag with a normalized form (canonical or

extlang) if those differ from the current tag. Part of the implementation of

#3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: added an option in the

preferences to always normalize all language tags to their canonical or

extlang forms or to turn normalization off. Can also be enabled from the

language editor dialog. Part of the implementation of #3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now

shows a warning if a variant is used with a prefix that isn't in the

variant's list of suitable prefixes. It'll also say if the corresponding

canonical/extlang forms would have a suitable prefix. Part of the

implementation of #3307.

* MKVToolNix GUI: IETF BCP 47/RFC 5646 language tags: the language dialog now

shows a warning if a script is used with a language for which it should be

suppressed. Part of the implementation of #3307.

* MKVToolNix GUI: multiplexer: the track property group boxes in the

scrollable pane are now collapsible & expandable, saving their state over

restarts of the GUI. This is in preparation of adding many more track

properties in future releases, allowing the user to hide parts they don't

use all that often.

* MKVToolNix GUI: multiplexer: if the option "use legacy font MIME types" is

enabled in the preferences, the new command line option

`--enable-legacy-font-mime-types` will be passed to `mkvmerge` in order to

have it remap the MIME types of existing attachments, too.

## Bug fixes

* all: IETF BCP 47/RFC 5646 language tags: variants aren't validated wrt. to

prefixes anymore as BCP 47 doesn't actually pose restrictions on them,

saying only that prefixes "are suitable sequences" for use with the

variants. What is now verified, though, is that no variant is used multiple

times within the same language tag. Part of the implementation/fix of #3307.

* build system & MKVToolNix GUI: fixed detecting the presence of & the

compilation with the multimedia module of Qt version 6.2.0 and newer.

* build system: fixed compilation on Unices other than Linux & macOS

(e.g. FreeBSD). Fixes #3316.

* MKVToolNix GUI: job queue: fixed compiling in the audio player code for the

the "play audio" end-of-job action. Fixes #3303.

* MKVToolNix GUI: multiplexer: recognizing added XML chapter, segment info or

chapter files required the XML declaration & root node (e.g. `?xml…? …

Chapters` for chapters) be located within the first 1 KB, which wasn't

enough for files that contain a lot of comments at the start like the

included `example-chapters-2.xml`. The detection range was extended to 10

KB. Fixes #3302.

## Build system changes

* build system: the provided Windows binaries are now compiled with Qt 6. A

drawback is that certain audio formats aren't supported anymore by Qt for

the "end of job" sound notification playback, notably the Ogg file format &

the Vorbis audio codec. MKVToolNix therefore now ships Opus-in-WebM files

for the same purpose.

* The bundled `fmt` library was updated to v8.1.1.

* The bundled `nlohmann-json` library was updated to v3.10.5.

* The bundled `pugixml` library was updated to v1.12.1.

Description

MKVToolNix is a small collection of tools (mkvmerge, mkvinfo, mkvextract, mkvpropedit and mmg) that allows you to manipulate Matroska (MKV) files in several ways.

You can use MKVToolNix to create, split, edit, mux, demux, merge, extract or inspect Matroska files. The program will also work with other video formats (AVI, MPEG, MP4, MPEG, Ogg/OGM, RealVideo, MPEG1/2, h264/AVC, Dirac, VC1) including some video codecs (such as VP9 video codec support - reading from IVF/Matroska/WebM files, extract to IVF files). Audio formats (AAC, FLAC, MP2, MP3, (E)AC3, DTS/DTS-HD, Vorbis, RealAudio) and also most subtitle formats (SRT, PGS/SUP, VobSub, ASS, SSA, etc.). MKVToolNix is a cross-platform application that will work on Windows® (both 32 and 64-bit versions), Mac® OS X® and Linux. Please note that from this page you can download the Windows® (installer and portable) and Mac® OS X® versions. If you're looking for a Linux version, you can download one from MKVToolNix homepage.

Trademark Note 1: Microsoft®, Windows® and other product names are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Trademark Note 2: Mac and OS X are trademarks of Apple Inc., registered in the U.S. and other countries.

MKVToolNix Review

Note: I tested MKVToolNix on Windows® 7 Ultimate 32-bit using mkvmerge GUI and several other tools opened from the Command Prompt such as mkvinfo. Therefore, if you're looking for more information on how to compile MKVToolNix yourself, check the README file (online). I wanted to test two things: the mkvmerge GUI (software interface) and see how easy or hard is to use the command line for all the other tools such as "mkvinfo."

The software interface (mkvmerge GUI)

As soon as the setup finished, I opened the "mkvmerge GUI" shortcut from my desktop. At a first look, the interface seems quite intuitive, so my first action was to open an MKV file, select an option and see the result. I went to program interface at the "Input" tab and used the "Add" button (it also works using the "drag and drop" method. 

I selected a 710 MB MKV file and I wanted to split this (from "Global" tab - select "Split Mode" - "split after size" and then I specified the size - in this case 50M = 50MB) in smaller files with a size of 50 MB for each. Finally, I clicked on "Start Muxing" button. 

The program required just 45 seconds for this operation, and the result was 14 smaller MKV files. After this, I wanted to mux the content of an AVI file in MKV format. Again, I went to "Input" tab and used the "Add" button, I selected an AVI file from my computer, and I noticed that the program displayed the Output filename automatically with the name of the same file but this time in MKV (Matroska) format. 

Again, the same button called "Start Muxing" was doing all the magic. This time the process was even faster - at the end I could read the following message "Muxing took 34 seconds".

Other command line tools (example: mkvinfo)

To use all the other command line tools in Windows®, open a Command Prompt window. Just hit the "Start" button, click on "Search programs and files" (Windows® 7 and Vista) or "Run" (Windows® XP and others) and type either "cmd" or "command prompt" (without the quotes). 

In the command prompt, you can try each program (mkvmerge, mkvinfo, mkvextract, mkvpropedit) by typing its name and the usage parameters. An example would be: "mkvinfo --help" that will display a list with all the commands available. I tried mkvinfo using this command: "mkvinfo -g" and the result was a small interface that allowed me to open an MKV file and see all kind of technical details about it. I was also able to save the results in the TXT format.

Tips

You can launch an instance of mkvmerge GUI (software interface) directly from the command prompt. Just type "mmg" and hit "Enter."

Besides of the usual standard documentation from the command prompt (I hate it because it's hard to read) you can find and read the online documentation available on MKVToolNix documentation homepage here: (use the blue links for mkvmerge, mkvinfo, mkvextract, mkvpropedit and mmg to access the online help).

Final Conclusion

You can learn how to use several main features in minutes but to master the program, it does require more time. Your best bet is to experiment all of his options and whenever you need some help, check the FAQ section (filled with great answers to common issues), start with the guide of mkvmerge GUI here and check the documentation for all the other tools - here (provided once again). MKVToolNix is a "must-have" software if you work with MKV files. It has an incredible amount of features that are not listed on the homepage. Ultimately, if you appreciate this tool, please consider a DONATION to support the work of Mr. Moritz Bunkus, the author of MKVToolNix.

Found this software useful? Please consider a donation to the author.