MKVToolNix 7.0.0


With these tools one can get information about (mkvinfo) Matroska files, extract tracks/data from (mkvextract) Matroska files and create (mkvmerge) Matroska files from other media files. Matroska is a new multimedia file format aiming to become THE new container format for the future. You can find more information about it and its underlying technology, the Extensible Binary Meta Language (EBML), at The full documentation for each command is now maintained in its man page only. Type `mkvmerge -h` to get you started.

User's rating:

  • Currently 1.00/5
  • 1
  • 2
  • 3
  • 4
  • 5
Enlarge the screenshot of MKVToolNix
[ Enlarge Image ]

Download alternate MKVToolNix solution

Look at the free or trial alternatives and similar apps to MKVToolNix software by the tags. It's possible also to find substitutes for the most popular titles in the Video & Multimedia category.

| Mkvtoolnix | Matroska |

History updates (Complete changelogs since the listing on this site)

7.0.0 [07-21-14]

2014-05-26 Moritz Bunkus * mkvmerge: enhancement: In addition to the track statistics tags »BPS«, »DURATION«, »NUMBER_OF_BYTES« and »NUMBER_OF_FRAMES« mkvmerge will write two more tags identifying which application wrote the statistics (»_STATISTICS_WRITING_APP«) and when the file in question was written: »_STATISTICS_WRITING_DATE_UTC«. »_STATISTICS_WRITING_APP« will always contain the same string contained in the segment info header element »WritingApp«. »_STATISTICS_WRITING_DATE_UTC« will contain the same timestamp as in the segment info header element »Date«, though »_STATISTICS_WRITING_DATE_UTC« is actually a string representation instead of an integer value. Additionally a tag named »_STATISTICS_TAGS« is written containing the names of the tags that mkvmerge has set automatically. It equals the following currently: »BPS DURATION NUMBER_OF_BYTES NUMBER_OF_FRAMES«. * build system: Boost's "date/time" library is now required. 2014-05-25 John Peebles * mkvmerge: bug fix: If a single subtitle track contains two or more entries at the same timecode then the cue duration and cue relative position elements written were wrong. 2014-05-24 Moritz Bunkus * mkvinfo: bug fix: fixed wrong progress percentage shown during saving the information to text files. Fixes #1016. * mkvmerge: new feature: Added a global option for disabling writing the tags with statistics for each track: --disable-track-specific-tags. 2014-05-20 Moritz Bunkus * mkvmerge: new feature: When identifying a Matroska file in verbose identification mode track-specific tags will be output as well. The format is »tag_:», e.g. for a tag named »BPS« with the value »224000« the output would be »tag_bps:224000«. Enhancement for #1021. * mkvmerge: new feature: mkvmerge will write track-specific tags with statistics (»BPS« for the average number of bits per second, »DURATION« for the duration, »NUMBER_OF_BYTES« and »NUMBER_OF_FRAMES« for the track's size in bytes and its number of frames/packets). Implements #1021. 2014-05-18 Moritz Bunkus * mkvmerge: bug fix: Changed the file type detection order again. The text subtitle formats are now probed after those binary formats that can be detected quickly and unambiguously. This avoids some mis-detection if e.g. Matroska files as ASS text subtitles if they do contain such a track. * mmg: enhancement: The chapter editor will only use fast-mode parsing when loading chapters from Matroska files. 2014-05-14 Moritz Bunkus * all: bug fix: fixed invalid memory access in the cleanup procedures which only occurred if the output was redirected with the »--redirect-output« command line parameter. 2014-05-04 Moritz Bunkus * mkvmerge: enhancement: The last chapter entry read from MPLS files is removed if it is at most five seconds long. Patch by Andrew Dvorak (see AUTHORS). * mkvmerge: enhancement: added the attachment UID to the verbose identification output of Matroska files. 2014-04-21 Moritz Bunkus * mmg: bug fix: Selecting a subtitle track correctly sets the »character set« drop-down box if no character set was set for this track. Fixes #1008. * mmg: enhancement: the subtitle character set cannot be set anymore for subtitle tracks read from Matroska files as mkvmerge ignores that setting for said container anyway (text subs are always encoded in UTF-8 in Matroska). 2014-04-20 Moritz Bunkus * mmg: enhancement: mmg will look for the »mkvmerge« executable in the same directory as the »mmg« executable is located it if the location hasn't been set by the user on all operating systems (before: only on Windows). Improves detection if »mkvmerge« is not in the $PATH. 2014-04-18 Moritz Bunkus

Other versions : 6.9.1 6.8.0 6.7.0 6.6.0 6.5.0 6.4.1 6.3.0 6.2.0 6.1.0 6.0.0 5.9.0 5.8.0 5.7.0 5.6.0 5.4.0 5.3.0

v6.9.1 [04-22-14]

* mkvmerge: bug fix: fixed huge memory usage when probing files (it was reading the whole file into memory for that).

v6.8.0 [03-04-14]

2014-02-28 Moritz Bunkus * mkvmerge, mkvextract: new feature: added support for h.265/HEVC by merging the patches from DivX/Rovi Corp. So far HEVC is only supported as elementary streams and read from other Matroska files. 2014-02-22 Moritz Bunkus * mkvmerge: enhancement: The deprecated ISO 639-1 code "iw" is now recognized for Hebrew. 2014-02-15 Moritz Bunkus * mkvmerge: bug fix: The AC3 packetizer will re-derive the sampling frequency and the number of channels from the bitstream. This way obviously invalid information from the source container like a sampling frequency of 0 Hz will be fixed. 2014-02-05 Moritz Bunkus * mkvmerge: enhancements: AVI reader: audio chunks with obvious wrong size information (bigger than 10 MB) will be skipped. 2014-02-03 Moritz Bunkus * mkvmerge: bug fix: When reading M2TS files belonging to an MPLS playlist mkvmerge will now only copy packets whose timestamps lie between the »in time« and »out time« restrictions from the playlist's entry corresponding to that M2TS file. Fixes #985. 2014-01-22 Moritz Bunkus * all: Windows 64bit: fixed return value checks for opening files. Fixes #972. 2014-01-21 Moritz Bunkus * all: Windows: when redirecting the program's output with cmd.exe (e.g. »mkvinfo file.mkv > info.txt«) the programs will no longer write two line feed characters (
) per carriage return character (
). Fixes #970. * all: Windows: the default charset for the files created with »--redirect-output« has been changed from the system's local charset to UTF-8. Just like before it can be changed with »--output-charset«. See #970. * all: bug fix: Windows: messages written to the console (cmd.exe) are not re-encoded to the local charset and back to UTF-16 before they're handed over to ConsoleWriteW(). This fixes outputting Unicode characters to the console that are not part of the local charset. Fixes #971. 2014-01-18 Moritz Bunkus * extract: bug fix: using names of non-existing files in »attachments«, »chapters«, »cuesheet« or »tags« mode caused mkvextract to crash instead of emitting a proper error message. Fixes #964. 2014-01-17 Moritz Bunkus * mmg: bug fix: fixed the check for WebM-compatible track types for Opus. 2014-01-12 Moritz Bunkus * mkvmerge: bug fix: fixed muxing Sorenson v3 (SVQ3) video from QuickTime files. 2014-01-11 Moritz Bunkus * mkvmerge, mkvextract, mkvpropedit: enhancement: attachments in Matroska files with a missing FileUID element are not ignored anymore even though they violate the specs. mkvmerge generates a new FileUID instead. 2014-01-10 Moritz Bunkus * mkvmerge: re-built with the 64bit build for Windows with a newer compiler version in order to fix #957. It was due to a bug in gcc: * mmg: bug fix: mkvmerge's file identification is written to a temporary file with --redirect-output and from there into mmg instead of directly from mkvmerge. This prevents from character re-coding done by wxWidgets 3.0.0 on Windows. Fixes #959. 2014-01-09 Moritz Bunkus * installer: enhancement: the architecture (32bit vs 64bit) is mentioned in the interface. * installer: bug fix: the installation directory for 64bit builds will default to the proper directory (»C:Program Files« instead of »C:Program Files (x86)«). Fixes #956. 2014-01-08 Moritz Bunkus

v6.7.0 [01-09-14]

* build system: Ruby 1.9.x is now required. 2014-01-05 Moritz Bunkus * all: enhancement: The architecture (32bit/64bit) is mentioned in the version information of all programs. 2014-01-02 Moritz Bunkus * build system: bug fix for 64bit builds on Windows (x86_64-w64-mingw32): use the correct processor architecture via separate Windows manifest files. Fixes mmg and mkvinfo not starting due to »error 0x0000007b«. * mkvmerge: bug fix: Fixed a potential endless loop due to an integer overflow in the code removing AVC/h.264 filler NALUs. 2014-01-01 Moritz Bunkus * mkvmerge: bug fix: Fixed reading uncompressed PCM audio tracks from QuickTime/MP4 files in certain situations. Fixes #950. * mmg: enhancement: Made the »scanned files« list box sortable by all columns. Fixes #954. 2013-12-31 Moritz Bunkus * mmg: enhancement: The »additional parts« dialog will now show the files that make up an MPLS playlist. This is for informational purposes only and doesn't allow changing the playlist itself. * mkvmerge: bug fix: Reading from an MPLS playlist file is now done as if the second and following files referenced in that playlist had been appended to the first file from that playlist. Before they were treated as if they were additional parts. Fixes #934. * mmg: enhancement: a couple of fixes to tooltips: 1. Content correction for »splitting by chapters«; 2. no ugly re-formatting with wxWidgets 3.0.0 on Windows. 2013-12-30 Moritz Bunkus * mkvmerge: bug fix: Improved the AAC, AC3 and MP3 header decoding error handling so that the corresponding parsing routines won't get stuck in endless loops when encountering certain garbage data patterns. 2013-12-29 Moritz Bunkus * mkvmerge: enhancement: unified codec names output by mkvmerge's identification mode for all file format readers. * mkvinfo: bug fix: when setting the language with --ui-language a few strings were still translated using the system's default language. * mkvextract: bug fix: if the track headers were located at the end of the file (e.g. after modification with mkvpropedit or mmg's header editor) then mkvextract was writing files with a length 0 bytes. * mmg: bug fix: the »playlist items« list box in the »select playlist file to add« dialog was showing the items in reversed order. Fixes #952. 2013-12-28 Moritz Bunkus * mmg: bug fix: the »select playlist file to add« dialog can now be resized, minimized and maximized. It also remembers its position and size during runs. Fixes #951. 2013-12-27 Moritz Bunkus * mmg: enhancement: The user can select the default subtitle character set to use for newly added subtitle tracks in the preferences dialog as requested in bug #948. 2013-12-24 Moritz Bunkus * mmg: bug fix: fixed the tooltip for the subtitle character set drop-down box to match mkvmerge's actual behavior. Fixes #948. 2013-12-18 Moritz Bunkus * mkvmerge: new feature: implemented reading DTS audio tracks from MP4 files (with ESDS object type ID == 0xA9 (decimal 169) or FourCC == 'DTS ' or 'dtsc'). 2013-12-18 Ralph Giles * mkvmerge: enhancement: allowed muxing Opus to WebM files. * mkvmerge: bug fix: Fixed the mapping of the Opus element »seek pre-roll« and »pre-skip« to the Matroska elements »track seek pre-roll« and »codec delay«. Remuxing Matroska files without Opus created with earlier versions of MKVToolNix is enough to fix such a file. 2013-12-15 Moritz Bunkus * mkvmerge: bug fix: fixing the bitstream timing information of h.264/AVC writes clean values for 25000/1001 frames per second video (e.g. de-telecined PAL @ 29.97). 2013-12-07 Moritz Bunkus * mmg: bug fix: fixed a crash in during drag & drop operations in mmg's chapter editor. 2013-12-01 Moritz Bunkus

v6.6.0 [12-02-13]

* mmg: new feature: implemented drag & drop in the chapter editor. Implements #929. 2013-11-24 Moritz Bunkus * mmg: bug fix: fixed an assertion in wxLogMessage() due to wrong format string/argument data types caused by changes in wxWidgets 3.0.0. See Debian bug #730273. * mkvmerge: bug fix: improved resilience against MP4 files with obviously wrong entries in the 'sample size table' (STSZ) atom. * mkvmerge: bug fix: improved VC1 frame type detection so that it works even for streams without entry points. 2013-11-14 Moritz Bunkus * mkvinfo: bug fix: at most the lower 32bits of the track numbers and track UIDs elements were output, even if the element in the file used more bits. Fixes #935. 2013-11-02 Moritz Bunkus * mkvmerge: bug fix: fixed accessing invalid memory in the memory handling core routines. May be triggered by the code to remove filler NALUs introduced in v6.5.0. Fixes #931. 2013-10-26 Moritz Bunkus * mmg: bug fix: fixed the tracks list box on the input tab being invisible/0 pixels high with wxWidgets 2.9.x/3.x. * all: integrated the Portuguese translation. Although the translation files themselves had been added back in 6.3.0 that translation wasn't available for selection due to forgetfulness on my part. * mkvmerge: bug fix: The file detection code in the MPEG elementary stream reader had a logic error. Fixes #928. In practice this logic error didn't have any consequence. 2013-10-19 Moritz Bunkus

v6.5.0 [10-21-13]

* mkvmerge: enhancement: filler NALUs will now be removed from framed h.264/AVC tracks (such as the ones read from Matroska/MP4 files) just like they have already been when handling unframed tracks. * mkvextract: new feature: implemented support for extracting VP9 tracks into IVF files. * mkvmerge: new feature: implemented support for VP9 read from IVF and Matroska/WebM files. Implements #899. * mkvextract: enhancement: using the same track/attachment ID multiple times in "tracks", "attachments" or "timecodes_v2" mode will result in an error message instead of one empty file. Implements #914. * mmg: bug fix: With wxWidgets 2.9.x/3.0.x debug message will no longer appear as modal dialogs but only go to the log window. 2013-10-18 Moritz Bunkus * mkvmerge: bug fix: fixed a crash when reading empty global tag files. Fixes #921. 2013-10-17 Moritz Bunkus * build system: bug fix: fix autodetection of Boost's library path if it is installed in the multiarch directories (e.g. /usr/lib/i386-linux-gnu or /usr/lib/x86_64-linux-gnu). 2013-10-04 Moritz Bunkus * mmg: bug fix: saved window widths were growing by 1 pixel each time mmg was exited. 2013-10-03 Moritz Bunkus * documentation: Added a German translation of the man pages by Chris Leick (see AUTHORS). 2013-10-02 Moritz Bunkus * mkvmerge: bug fix: Reading OGM files with chapter entries not encoded in the system's local character set has been fixed. During identification the number of chapter entries is still output by removing any non-ASCII characters from the chapter entries. When muxing an additional warning is output if parsing those chapter entries fails, e.g. due to the format being wrong or due to the charset guessed wrongly. Fixes #919. 2013-09-17 Moritz Bunkus * mkvmerge: bug fix: The "duration" element was calculated wrong if the first element in the file wasn't the one with the smallest timestamp. To be precise, it was too short by the difference between the first timestamp and the smallest one (e.g with video sequences timestamped 80ms, 0ms, 40ms, 120ms... the duration was 80ms too short). 2013-09-16 Moritz Bunkus

v6.4.1 [09-20-13]

* mkvmerge: bug fix: fixed packet ordering regression introduced in 6.4.0 if --default-duration is used for a track. 2013-09-15 Moritz Bunkus

v6.3.0 [07-01-13]

* mkvmerge: bug fix: When appending unframed AVC/h.264 tracks and setting the default duration the second and all following source parts will use the same default duration as set for the first part. Fixes #889. * all: enhancement (Windows only): mmg will store its settings in a file "mkvtoolnix.ini" in the same folder mmg.exe is located in if MKVToolNix hasn't been installed via its installer. If it has been installed then the settings are stored in the Windows registry. This way MKVToolNix is truly portable. * mmg: new feature: mmg's windows and dialogs will remember and restore their positions and sizes. Implements #878. 2013-06-26 Moritz Bunkus * mkvmerge: bug fix: AVC/h.264 output module: fixed writing the wrong values if --fix-bitstream-timing-information is used. Fixes #888. 2013-06-24 Moritz Bunkus * mkvmerge: bug fix: FLV reader: Implemented deriving the video dimensions for FLV1 type tracks from the frame content if they're not given within a script tag. Fixes #880. * mkvmerge: bug fix: Fixed handling MPEG transport streams with broken PES packet streams. Fixes #879 and #887. * mkvextract: bug fix: mkvextract writes the correct value for the "block alignment" value in the header of WAV files (mostly affects mono PCM audio tracks). Fixes #883. 2013-05-26 Moritz Bunkus * all: new feature: added a Portuguese translation of the programs by Ricardo Perdigão (see AUTHORS). 2013-04-28 Moritz Bunkus

v6.2.0 [04-29-13]

2013-04-27 Moritz Bunkus * mkvmerge: bug fix: The option "--engage remove_bitstream_ar_info" will now work on AVC/h.264 tracks read from Matroska/MP4 files as well. Fixes #868. 2013-04-16 Moritz Bunkus * mmg: bug fix: mmg will now handle all file names given on the command line instead of only the first one. This allows things like opening several selected files with mmg in Windows, and mmg will add all of them. Fixes #867. * mkvmerge: bug fix: The amount of memory required to store the cues during muxing has been reduced drastically. This is more noticeable the more video and subtitle tracks are muxed. Fixes #871. 2013-04-15 Moritz Bunkus * mkvmerge: bug fix: If splitting had been active then the elements "cue duration" and "cue relative position" were only written to the first output file. 2013-04-14 Moritz Bunkus * mkvmerge: bug fix: The "CTS offset" field of FLV files with AVC/h.264 video tracks is now read as a signed-integer field in accordance with the FLV specifications. 2013-04-13 Moritz Bunkus * mkvmerge: bug fix: DTS parsing: no more warnings about incompatible encoder revision numbers will be printed. Fixes #866. * mkvextract: enhancement: track extraction mode: If mkvextract encounters a broken file structure it will output the last timecode successfully read before resyncing. After the resync the first cluster timecode will be reported as well. * installer: The installation directory will no longer be added to the PATH environment variable. * mkvmerge: bug fix: The parsing of the AAC AudioSpecificConfig structure (the bytes contained in Matroska's CodecPrivate and in MP4's "ESDS" atom) was fixed to support parsing the GASpecificConfig and the ProgramConfigElement if the channel configuration is 0. Fixes #872. 2013-04-09 Moritz Bunkus * mmg: bug fix: Loading chapters from Matroska files will open the file in read-only mode allowing to read from write-protected files. 2013-04-04 Moritz Bunkus * mkvmerge: bug fix: All entries in chapters imported from MPLS playlists were named "Chapter 0". The numbering has been fixed. Fixes #870. 2013-04-01 Moritz Bunkus * mkvmerge: new feature: Selecting the lowest process priority with "--priority lowest" will cause mkvmerge to also select an idle/background I/O priority. Implements #863. 2013-03-31 Moritz Bunkus * mkvmerge: bug fix: Fixed reading AVI files with audio chunks of size 0. Fixes #843. 2013-03-29 Moritz Bunkus * mmg: new feature: Add control for new option "--fix-bitstream-timing-information". 2013-03-20 Giuseppe De Robertis * mkvmerge: new feature: Add option for fixing the timing information in video track bitstreams (--fix-bitstream-timing-information). 2013-03-18 Moritz Bunkus * mkvmerge: enhancement: Matroska reader: If mkvmerge encounters a broken file structure it will output the last timecode successfully read before resyncing. After the resync the first cluster timecode will be reported as well. 2013-03-09 Moritz Bunkus * mkvmerge: bug fix: MPEG program stream reader: tracks with invalid video properties (e.g. width or height = 0) are ignored properly. * mkvmerge: bug fix: The progress percentage was sometimes using the wrong input file as the reference if multiple files are read with the "additional parts" mechanism (on the command line: the syntax "( VTS_01_1.VOB VTS_1_2.VOB VTS_1_3.VOB )". * mkvmerge: bug fix: Fixed one situation that could lead to mkvmerge aborting with the error message "Re-rendering track headers: data_size != 0 not implemented yet". 2013-03-03 Moritz Bunkus * mkvmerge: removal: Support for BZ2 (bzlib) and LZO (lzo1x) compression has been removed. * mmg: bug fix: Using drag & drop to add playlists will no longer lock the dragging application (e.g. Windows Explorer) in D&D mode for the duration of the scan for other playlists. * mmg: bug fix: The validation for the argument to "split by chapters" was wrongfully rejecting certain valid inputs (chapter number lists in which the second or any later chapter number was higher than 9). * all: enhancement on Windows: all programs now determine the interface language to use from the user's selected interface language (C function "GetUserDefaultUILanguage()"), not from the locale setting. Implements #852. 2013-03-02 Moritz Bunkus

v6.1.0 [03-03-13]

2013-02-24 Moritz Bunkus * mkvmerge: bug fix: Fixed mkvmerge sometimes mistakenly detecting MPEG-1 video in MPEG program streams as AVC/h.264. Fixes #845. * mmg: new feature: When a playlist file (e.g. MPLS Blu-ray playlist) is added mmg can optionally scan all the other files in the directory that have the same extension and present the user with the results (including them playback time, total size, number of chapters, number and types of tracks). The user can then select the actual playlist file to add. The user can configure the minimum playlist duration in order to filter out too short ones. 2013-02-22 Moritz Bunkus * mmg: new feature: Added an option for disabling making the suggested output file name unique by adding a running number (e.g. ' (1)'). Implements #848. * mmg: new feature: The output file name can be auto-set to be located in the first input file's parent directory. Implements #849. 2013-02-17 Moritz Bunkus * mkvinfo, mkvpropedit, mmg's header editor: bug fix: Fixed the description for the DisplayUnit element to include value 3 ("aspect ratio"). 2013-02-16 Moritz Bunkus * documentation: Added a Dutch translation of mmg's guide by René Maassen (see AUTHORS). * mkvmerge: bug fix: Fixed handling chapters when splitting by parts (both parts/timecodes and parts/frames). Fixes #831. * mkvmerge: bug fix: Fixed reading certain MP4 atoms with invalid length fields. 2013-02-06 Moritz Bunkus * mkvmerge: bug fix in common AAC code: Fixed wrong calculation of AAC packet size for malformed packets resulting in "safemalloc()" failing to allocate memory. Part of a fix for #832. 2013-02-03 Moritz Bunkus * mkvmerge: new feature: Implemented support for reading MPLS BluRay playlist files. All M2TS files referenced from an MPLS file are processed. Chapter entries from that MPLS file are used as well. Implements #765. 2013-01-26 Moritz Bunkus * mmg: bug fix: Selecting one of the pre-defined values from the "split by X" argument drop down box (e.g. "700M") was not leaving the selected entry in the drop down box but set it to empty instead. 2013-01-21 Moritz Bunkus * mkvmerge: bug fix: Fixed reading VP6 video from FlashVideo files. Fixes #836. 2013-01-20 Moritz Bunkus * mmg: bug fix: Fixed validating the argument for splitting parts by frame/field numbers. Fixes #835.

v6.0.0 [01-27-13]

2013-01-14 Moritz Bunkus * mkvmerge: new feature: Implemented splitting by parts based on frame/field numbers ("--split parts-frames:" in mkvmerge). Implements #819. 2013-01-13 Moritz Bunkus * mkvmerge: bug fix: Re-writing the track headers after they'd grown a lot (to more than the EBML void size located after them allowed for) led to an integer underflow. Then mkvmerge tried to write a void element the size of that integer (e.g. nearly 4 GB on 32bit platforms). Fixes #822 and #828. 2013-01-12 Moritz Bunkus * mkvmerge: bug fix in the MP4 reader: Fixed language code conversion from what is used in MP4 to the ISO 639-2 codes used in Matroska (e.g. convert from "deu" to "ger"). * Source distribution: source code archives (tarballs) will be compressed with xz instead of bzip2 from now on. The file name's extension will therefore change from ".tar.bz2" to ".tar.xz". The download URL changes accordingly. 2013-01-11 Moritz Bunkus * mkvmerge: new feature: Implemented reading VobSubs from MP4 files if they're stored in the Nero Digital way (track sub-type 'mp4s', ESDS object type identifier 0xe0). Implements #821 and the second half of #815. 2013-01-08 Moritz Bunkus * mmg: new feature: Command line options can be saved as default for new jobs by clicking a check box in the "add command line options" dialog. 2013-01-02 Moritz Bunkus * mmg: bug fix: Fixed a crash in the chapter editor if the root was selected and the user used the "Set values" button. 2013-01-01 Moritz Bunkus * mkvmerge, mmg: removal: The 'header removal compression' method is not turned on by default anymore. This affects the following track types: AC3, AVC/h.264, Dirac, DTS, MP3. The setting in mmg that turned it off by default has been removed. 2012-12-31 Moritz Bunkus * mkvmerge: new feature: Added experimental support for the Opus audio codec. Parts of an implementation of #779. 2012-12-28 Moritz Bunkus * mkvmerge: bug fix: "text"-type tracks in MP4 files are only treated as chapters if their track ID is listed on a "chap" atom inside a "tref" track reference atom. Fixes #815. 2012-12-27 Moritz Bunkus * mkvmerge, mmg: new feature: Implemented splitting by chapter numbers. Implements #504 and #814. 2012-12-25 Moritz Bunkus * mkvmerge: enhancement: Removed several warnings from the MPEG-2 video parser code about open GOPs, missing references. Those were too confusing for most users, even after being given additional information via email and FAQs. * mkvextract: new feature: Implemented extraction of ALAC into Core Audio Format files (CAF). Implements #786. 2012-12-23 Moritz Bunkus * mkvmerge, mmg: new feature: Implemented splitting by frame/field numbers. Implements #771. * mmg: bug fix: Fixed consistency checks when appending files and at least one track is disabled. * mkvmerge: new feature: Implemented a reader for the Flash Video format (.flv). Implements #735. 2012-12-22 Moritz Bunkus * Build system: Boost's "variant" library is now required. 2012-12-17 Moritz Bunkus * mkvmerge: bug fix: ISO 639-2 language handling: The deprecated language codes "scr", "scc" and "mol" are replaced by their respective successors "hrv", "srp" and "rum". Fixes #803. * mkvmerge: bug fix: Matroska reader: Fixed finding the "segment info" element if it is located behind the clusters. 2012-12-16 Moritz Bunkus * mkvmerge: bug fix: MP3 parser code: Fixed skipping ID3 tags so that the header directly behind the ID3 tag is recognized properly. Fixes #747. * mkvmerge: bug fix: MP4 reader: Fixed handling of edit lists if the edit list is used to adjust the track's timecodes by a fixed amount (either positive or negative). Fixes #780. 2012-12-10 Moritz Bunkus * mkvpropedit: bug fix: Giving a non-existent file name in tags mode will result in a proper error message. Fixes #806. 2012-12-09 Moritz Bunkus

v5.9.0 [12-11-12]

* mkvmerge: bug fix: Fixed reading seek position values bigger than 2 GB. Fixes #805. 2012-12-08 Moritz Bunkus * mkvmerge: bug fix: Fixed appending non-empty tracks to empty tracks. Fixes #793. * mkvmerge: bug fix: mkvmerge will now keep timecodes of PCM tracks from source files if they're available. Fixes #804. 2012-12-05 Moritz Bunkus * all: bug fix: EBML void elements will be skipped when reading structures from XML (e.g. chapters). Fixes #802. 2012-12-02 Moritz Bunkus * all: bug fix: EBML void elements will be skipped when saving structures to XML (e.g. chapters). Fixes #801. * mkvmerge: bug fix: Fixed reading linked seek heads in Matroska files. 2012-11-13 Moritz Bunkus * mmg: bug fix: Fixed reading file names containing a '%' from a .mmg settings file (both normally saved files and the job queue files). Fixes #795. 2012-10-08 Moritz Bunkus * mkvmerge: enhancement: Dirac video code: Added four more pre-defined video types from Dirac spec v2.2.2 and two from Dirac Pro. 2012-09-27 Moritz Bunkus * mkvmerge, mmg: enhancement: Added options for turning off writing "CueDuration" elements ("--engage no_cue_duration") and "CueRelativePosition" elements ("--engage no_cue_relative_positions"). * mkvmerge: new feature: The element "CueRelativePosition" is written for all cue entries. * mkvmerge: new feature: The element "CueDuration" will be written for all cue entries referring to subtitle tracks. * mkvmerge: new feature: mkvmerge will write cues for subtitle tracks by default now. * mkvinfo: new feature: added support for the new elements CueDuration, CueRelativePosition and TimecodeScaleDenimonator. The denominator's value is only shown so far but not taken into account when calculating any timecode. * mkvpropedit, mmg, mkvmerge: removal: removed support for the deprecated element TrackTimecodeScale. 2012-09-02 Moritz Bunkus

v5.8.0 [09-03-12]

* mkvpropedit: new feature: Added support for adding, deleting and replacing attachments. 2012-09-01 Moritz Bunkus * mmg: new feature: chapter editor: Added support for the edition flags "hidden", "default" and "ordered" as well as the chapter values "segment UID" and "segment edition UID". Implements ticket #736. 2012-08-30 Moritz Bunkus * documentation: Added a Basque translation of mmg's guide by Xabier Aramendi (see AUTHORS). * all: bug fix: Fixed a buffer overflow in the Base64 decoder routine. 2012-08-19 Moritz Bunkus * source: Various fixes for building with g++ 4.7.x and clang 3.1. 2012-08-08 Moritz Bunkus * Build system: Boost's "bind" library is not required anymore. The C++11 features from "functional" are used instead. 2012-08-07 Moritz Bunkus * mkvmerge: bug fix: MPEG transport streams whose timecodes wrap around/overflow are handled correctly. Fixes #777. 2012-08-06 Moritz Bunkus * mkvmerge: bug fix: MP2/MP3 audio tracks in MPEG program streams that contained garbage at the start of the very first packet caused mkvmerge to use uninitialized/random values for certain parameters (sample rate, number of channels, and therefore also during timecode calculation). 2012-08-05 Moritz Bunkus * mkvmerge: new feature: Added support for reading ALAC (Apple Lossless Audio Codec) from CAF (CoreAudio), MP4 and Matroska files. Implements #753. 2012-08-02 Moritz Bunkus * mkvmerge: new feature: mkvmerge will remove stuffing bytes from MPEG-1/-2 video streams that are used to keep the bit rate above certain levels (the 0 bytes between slices and the following start code). Implements #734. 2012-08-01 Moritz Bunkus * mkvmerge: bug fix: Fixed audio/video synchronisation when reading MPEG program streams with MPEG-1/2 video with respect to B frames. Fixes #579. * mkvmerge: enhancement: SRT files can have spaces in their timecode line's arrow (e.g. "-- >"). 2012-07-31 Moritz Bunkus * mkvmerge: bug fix: VC1: mkvmerge will now only mark frames as I frames if a sequence header precedes them directly. Fixes #755. 2012-07-30 Moritz Bunkus * all: new feature: Added a Basque translation by Xabier Aramendi (see AUTHORS). 2012-07-20 Moritz Bunkus * all: bug fix: The programs do not try to create directories with empty names anymore. This happened if the output file name for e.g. mkvmerge or mkvextract was only a file name without a directory component. With Boost v1.50.0 the call to "boost::filesystem::create_directory()" would result in an error if the name was empty (it didn't in earlier versions of Boost). 2012-07-11 Moritz Bunkus * mmg: bug fix: Fixed mmg not reading the very last line of mkvmerge's output. The result was that messages like "the cues are being written" did not show up in mmg and that the progress bar was not filled completely. Fixes #774. 2012-07-08 Moritz Bunkus

v5.7.0 [08-27-12]

* mmg: bug fix: mmg will no longer print false warnings about a chapter UID not being unique. Fixes #760. * mkvmerge, mkvpropedit, mmg: bug fix: All tools can now deal with 64bit UID values (chapter UIDs, edition UIDs etc). * mkvmerge: new feature: If "splitting by parts" is active and the last split part has a finite end point then mkvmerge will finish muxing after the last part has been completed. Implements #768. 2012-06-29 Moritz Bunkus * mkvmerge: bug fix: The DTS and TrueHD packetizers were not flushed correctly. In some rare circumstances this could lead to mkvmerge aborting with an error message about the packet queue not being empty at the end of the muxing process. Fixes #772. 2012-06-17 Moritz Bunkus * mmg, mkvinfo's GUI, all .exes: enhancement: Added new icons by Ben Humpert based on the ones by Eduard Geier (see AUTHORS). 2012-06-05 Moritz Bunkus * mkvmerge: bug fix: Fixed handling of tracks in QuickTime/MP4 files with a constant sample size. This fixes the other reason for the "constant sample size and variable duration not supported" error. Fixes issue 764. * mkvmerge: bug fix: Tracks in QuickTime/MP4 files with empty chunk offset tables (STCO and CO64 atoms) are ignored. This fixes one of the reasons for the "constant sample size and variable duration not supported" error. 2012-06-03 Moritz Bunkus * mmg: bug fix: Fixed mmg's excessive CPU usage during muxing. 2012-06-01 Moritz Bunkus * mkvmerge: bug fix: Reading DTS from AVI files often resulted in the error message that DTS headers could not be found in the first frames. This has been fixed. Fixes issue 759. 2012-05-31 Moritz Bunkus * Documentation: Updated the cross-compilation guide and fixed the "" script. 2012-05-27 Moritz Bunkus

v5.6.0 [07-10-12]

* documentation: Added Spanish translation of mmg's guide by Israel Lucas Torrijos (see AUTHORS). 2012-05-20 Moritz Bunkus * mkvmerge: bug fix: SRT subtitle entries with colons as the decimal separator are accepted. Fix for issue 754. 2012-05-13 Moritz Bunkus * mkvmerge: bug fix: XML tag files with tags that only contained a name and nested were wrongfully rejected as invalid. Fixes issue 752. * mkvmerge: enhancement: mkvmerge was optimizied to keep cluster timecodes strictly increasing in most situations. 2012-04-24 Moritz Bunkus * all: Added a translation to Polish by Daniel (see AUTHORS). 2012-04-16 Moritz Bunkus * mkvextract: bug fix: Extraction of AVC/h.264 was completely broken after 2012-04-09 resulting in files with a length of 0 bytes. 2012-04-09 Moritz Bunkus * mmg: new feature: When adding a Matroska file that has either the "previous segment UID" or the "next segment UID" set then mmg will copy those two and the source file's segment UID into the corresponding controls on the "globla" tab if they haven't been set before. Implements ticket 733. * mkvmerge: new feature: The verbose identification mode for Matroska files will now includes the "segment UID", the "next segment UID" and "previous segment UID" elements. * mkvmerge: enhancement: In "--split parts:" mode mkvmerge will use the output file name as it is instead of adding a running number to it if all the ranges to be kept are to be written into a single output file. Implements ticket 743. * mkvextract: bug fix: mkvextract will no longer abort extracing h.264 tracks if it encounters a NAL smaller than its size field. Instead it will warn about it and drop the NAL. 2012-04-08 Moritz Bunkus * mkvmerge: bug fix: Writing more than two parts into the same file with "--split parts:" resulted in the timecodes of the third and all following parts to be wrong. Fixes ticket 740. * mkvmerge: bug fix: The "--split parts:" functionality was not taking dropped ranges into account when calculating the segment duration for files that more than one range was written to. Fixes ticket 738. * mkvmerge: bug fix: The "--split parts:" functionality was producing a small gap between the first part's last packet's timecode and the second part's first packet's timecode if two parts are written to the same file. Fixes ticket 742. 2012-04-07 Moritz Bunkus * mkvmerge: bug fix: The "--split parts:" functionality was writing a superfluous and empty first part if the first range starts at 00:00:00. Fixes ticket 737. 2012-04-07 Moritz Bunkus * mmg, build system: Fixed building with wxWidgets 2.9.3. 2012-04-06 Moritz Bunkus

v5.4.0 [06-18-12]

2012-03-08 Moritz Bunkus * mkvmerge: bug fix: Fixed wrong calculation of the maximum number of ns per cluster in certain fringe cases if timecode scale was set to "auto" mode ("--timecode-scale -1"). Fix for bug 707. 2012-03-07 Moritz Bunkus * build system: The C++ compiler must now support the C++11 keyword 'nullptr'. configure checks for it. For GCC this means at least v4.6.0. * mkvinfo: new feature: mkvinfo will output the track ID that mkvmerge and mkvextract would use for a track. This information is shown alongside the "track number" element in verbose mode and in the track summary in summary mode. * mkvmerge, mmg: enhancement: The "--default-duration" in mkvmerge and the "FPS" drop down box in mmg now accept "p" or "i" as a unit -- as in e.g. "25p" or "50i". Several commonly used values have been added to mmg's "FPS" drop down box and others removed. * mkvmerge: bug fix: When using an external timecode file with AVC/h.264 video the default duration will be set to the most-often used duration in the timecode file. * mmg: enhancement: Added the values "50", "60" and "48000/1001" to the list of commonly used values for the "FPS" input field. * mkvmerge: bug fix: AVC/h.264 packetizer: The value given with "--default-duration" (after internal conversion from the unit given by the user to duration in nanoseconds) is now again interpreted as the duration of a frame and not of a field. * mkvmerge: bug fix: SRT subtitles: timecodes can contain the minus sign before any digit, not just before the first one. 2012-03-05 Moritz Bunkus * mkvmerge: bug fix: Sometimes non-AC3 files were mistakenly for AC3 after the re-write of the AC3 handling code on 2012-02-26. This has been rectified. Fix for bug 723. 2012-03-04 Moritz Bunkus * mkvmerge: enhancement: mkvmerge will keep the "enabled" track header flag when muxing. mkvmerge will also output its value in verbose identification mode as "enabled_track". * mkvmerge: enhancement: MicroDVD text subtitles are recognized as an unsupported format instead of an unknown format. * mmg: The warning that no default duration/FPS has been given for AVC/h.264 tracks has been removed. * mkvmerge: bug fix: Complete re-write of the timecode handling code for AVC/h.264 tracks. Now handles several cases correctly: interlaced video, video with multiple or changing SPS with different timing information. The timing information is extracted from the bitstream. Therefore the user doesn't have to specify the default duration/FPS himself anymore. Fix for bugs 434 and 688. 2012-02-26 Moritz Bunkus * build system: Boost's "rational" library is now required. * mkvmerge: bug fix: Complete re-write of the (E)AC3 parsing and handling code. Dependent EAC3 frames are now handled correctly. Fix for bug 704. 2012-02-22 Moritz Bunkus * mkvmerge: bug fix: The width and height of h.264 video tracks with a pixel format other than 4:2:0 are now calculated correctly. Fix for bug 649. Patch by Nicholai Main (see AUTHORS). * mkvmerge: bug fix: Fixed file type recognition and frame drops for VC1 elementary streams that do not start with a sequence header but with frame or field packets instead. * mkvmerge: bug fix: Fixed mis-detection as unsupported DV files (happened for e.g. PGS subtitle files). 2012-02-12 Moritz Bunkus * doc: enhancement: Updates for option file usage and supported subtitle formats. 2012-02-09 Moritz Bunkus

v5.3.0 [06-18-12]

2012-02-06 Moritz Bunkus * mkvmerge: new feature: mkvmerge will parse and apply the audio encoder delay in MP4 files that contain said information in the format that iTunes writes it. Fix for bug 715. 2012-02-02 Moritz Bunkus * mkvmerge: new feature: Implemented support for treating several input files as if they they had been concatenated binarily into a single big input file. Snytax is "mkvmerge -o out.mkv ( in1.ts in2.ts in3.ts )". This feature has already been present since version 5.1.0 but never been mentioned in the ChangeLog. Support for this feature in mmg is still missing. 2012-01-31 Moritz Bunkus * mkvmerge: bug fix: Blocks with "BlockAdditions" will no longer be muxed as "SimpleBlock" elements discarding the additions but instead as "BlockGroup" elements. This applies to e.g. WAVPACK4 tracks with correction files as the correction data is stored in "BlockAdditions". Fix for bug 713. * mkvmerge: bug fix: Fixed some more issues with (E)AC3 being misdtected as AVC elementary streams. 2012-01-27 Moritz Bunkus * mmg: bug fix: The header editor was sometimes creating two instances of an element if an element was added to the second or one of the later tracks. Fix for bug 711. * mkvpropedit, mmg: bug fix: Trying to modify a file located in a path mounted with GVFS SFTP will no longer crash the programs. Instead an error message is output if an error occurs. Fix for bug 710. 2012-01-25 Moritz Bunkus * mkvmerge: bug fix: Fixed integer underflows in the read caching code resulting in invalid memory access. Happened in broken or incomplete files only. Fix for bug 709. 2012-01-23 Moritz Bunkus * mkvmerge: bug fix: Appending AVI, Matroska or MPEG program stream files with DTS audio tracks will not result in a warning that the appended DTS tracks might not be compatible. Fix for bug 705. 2012-01-13 Moritz Bunkus * mkvextract: bug fix for the "timecodes_v2" mode: mkvextract will write one more timecode than there are frames in the file. The last timecode written will be the the sum of the last frame's timecode and duration with the "last frame" being the one with the highest timecode. Fix for bug 691. 2012-01-12 Moritz Bunkus * mkvmerge: bug fix: Fixed writing into paths on which a drive is mounted on Windows. Fix for bug 701. * mkvmerge: enhancement: Identification output for Matroska files: Added the track number header field as "number" to the verbose identification mode. 2012-01-09 Moritz Bunkus * mkvmerge: enhancement: Identification output for Matroska files: Added a field "content_encoding_algorithms" that contains a comma-separated list of encoding algorithm IDs used for that track. For example, "content_encoding_algorithms:3" would indicate that header removal compression is used. 2012-01-07 Moritz Bunkus * mkvmerge: enhancement: Identification output for Matroska files: Added several fields to mkvmerge's verbose identification mode for tracks: UID, CodecID, length and content (as a hex dump) of the codec private data. * mkvmerge: bug fix: Fixed a segmentation fault in the DTS detection code. Fix for bug 698. 2012-01-05 Moritz Bunkus * mkvextract: bug fix: The track IDs used in the "timecodes_v2" extraction mode are consistent again with the IDs that mkvmerge's identification reports and that mkvextract's "tracks" extraction mode uses. Fix for bugs 689 and 694. 2012-01-04 Moritz Bunkus * mkvmerge: enhancement: Added video pixel dimensions to the output of "--identify-verbose" for Matroska files. 2012-01-02 Moritz Bunkus

Average review rating :

Useful independent reviews and opinions of the users

Review MKVToolNixWrite a review « Be the first to post a review for MKVToolNix download!

Predicted future versions and notices:

The constantly monitors the update of all programs, including information from the MKVToolNix 7.0.1 changelog file, however sometimes it can happen that data are not complete or are outdated.We assume that author continue's to develop 7.1.0 version with further advanced features, and soon you will be informed. Equally important 8.0.0 upgrades of the program we will continue to monitor. Full MKVToolNix description has been compared with the overall software database and our algorithm has found the following applications (are showed below).

Download 6.3MB MKVToolNix

Download Direct

(6.3MB, Extension: HTML)