MKV 是一種優秀的多媒體容器格式，它可把多種不同編碼的視頻及16條或以上不同格式的音頻和語言不同的字幕封裝到一個MKV 文件中，而MKVToolNix 是一款免費開源的MKV 編輯器和工具集，能夠合成、編輯Matroska MKV 文件。
MKVToolNix 中的Mkvmerge GUI 允許你導入多個視頻、音頻、字幕軌道，混流合併一個新的MKV 文件，並可以設置導出視頻的寬高比、顯示比例、幀頻等等。
MKVToolNix 中的MKVExtractGUI 則可以從現有的MKV 文件中提取其中的一個或多個視頻、音頻或者字幕信息，是專業的MKV 分離工具。
MKVToolNix 是專用的MKV 剪輯工具，提供了4種MKV 切割模式，包括按尺寸、按時長、按特定時間碼和按分段，都是無損剪輯、分割MKV 過程，能夠同步切割視頻、音頻和字幕軌道。比之前介紹的所有支持MKV 分割的工具都要好用，包括Boilsoft Video Splitter、SolveigMM AVI Trimmer 等。
# Version 52.0.0 "Secret For The Mad" 2021-01-04 ## New features and enhancements * MKVToolNix GUI : job queue : the maximum number of jobs to run concurrently can now be increased in the preferences . The default remains at 1 . Implements #2984. * MKVToolNix GUI : the GUI will now add a context - specific default extension to file names selected for saving on platforms that don 't add one itself (eg GNOME). For example, when saving multiplexer settings the extension `.mtxcfg` will be added. Implements #2983. * MKVToolNix GUI: added an option to the preferences for the window to stay on top of other windows. Implements #2967 . ## Bug fixes * mkvextract: h.265/HEVC extraction: the code for skipping extraction of prefix SEI NALUs in the first frame was skipping two bytes too few, resulting in broken processing of all following bytes. Patch by Mike Chen. * libEBML: the optional, bundled version of libEBML was updated to v1.4.1. ## Build system changes * libEBML v1.4.1 is now required due to a bug in libEBML that caused pointers to just-freed memory being returned to the caller under certain invalid data constellations, causing use-after-free errors in all of MKVToolNix' s programs . Fixes #2989. # 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 widget. * 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 #2927. ## 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.