# Change Log
# Version 51.0.0 "I Wish" 2020-10-04
## New features and enhancements
* mkvmerge, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added
missing support for UN M.49 regions for which there are no corresponding ISO
3166 alpha codes. This enables language tags such as `es-419` = Spanish in
Latin America and the Caribbean. Implements #2919.
* MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying
the current language & the corresponding edit button is now displayed like a
link (depending on the theme: different color & underlined), making it
clearer that not just the edit button can be clicked but the text, too.
## Bug fixes
* mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due
to certain data conditions. Found by fuzzying.
* mkvmerge: AV1 packetizer: the duration of frames wasn't set properly. When
appending AV1 IVF or OBU files this meant that the last frame of the Nth
file and the first frame of file N+1 had the same timestamp. Fixes #2937.
* mkvmerge: DTS reader: fixed handling of buffers with an odd length when
byte-swapped DTS is detected so that mkvmerge doesn't abort with a failed
assertion. Found by fuzzying.
* mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will
no longer claim to recognize data that looks like AVC or HEVC but with
invalid video width/height values as that lead to failed assertions in
libEBML later. Found by fuzzying.
* mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught
exceptions due to certain data constellations found by fuzzying.
* mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero"
error due to certain data conditions. Found by fuzzying.
* mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the
timestamp scaling factor being 0 after handling certain data constellations
found by fuzzying.
* mkvmerge: track statistics: fixed a "division by zero" error when the
content's shorter than 1ms. Found by fuzzying.
* mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an
invalid memory access under certain data conditions. Found by fuzzying.
* MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer
open the language dialog when clicking on a disabled language display
* MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were
not populated even when the language tag was valid and contained at a
variant. Fixes #2923.
* MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at
least one of the other components (extended subtags, region, or variants)
has something selected and "private use" is not empty, the GUI would claim
this to be a valid tag, which it isn't. Fixes #2924.
* MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes
from "at least one entry selected" to "no entry selected", the input
controls will be reset to their default state and not just disabled. Fixes
## Build system changes
* `configure` now checks for the presence of the a system-wide installed copy
of the JPCRE2 C++ wrapper library for the PCRE2 library and uses that if
it's new enough (at least v10.32.1). If not, the bundled version will be
used as a fallback. Implements #2929.
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.
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.
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).
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.