MKVToolnix Changelog

New in version 7.9.0

May 12th, 2015
  • build system: configure will now check for Qt by default. If at least v5.2.0 is found then the Qt versions of mkvinfo's GUI and the new mkvtoolnix-gui will be enabled. You can affect this detection with the options --disable-gui (turns off all GUIs; works the same as before), --disable-qt (will compile the wxWidgets GUI for mkvinfo and mmg) and –without-mkvtoolnix-gui (will compile the Qt version of mkvinfo's GUI but no mkvtoolnix-gui).
  • mkvinfo: bug fix: mkvinfo would exit with the wrong return code (0 instead of 2) if a non-existing file name had been given.
  • mkvmerge: Two more characters are now escaped in the container and track properties output in verbose identification mode: [ is replaced with \b and ]w ith \B. This is needed for reliable parsing by other programs, e.g. GUIs.
  • MKVToolNix GUI: new feature: added context menu entries for tracks: »select all«, »enable all« and »disable all«.
  • MKVToolNix GUI: new feature: implemented aborting the currently running job.
  • all: fix compilation on Mac OS in common/command_line.cpp due to boost::range::filtered requiring a copyable functor. Fixes #1175.
  • all: fix compilation on Mac OS in common/version.cpp due to wrong usage of std::stringstream and ostream operators. Fixes #1176.
  • MKVToolNix GUI: new feature: implemented the »additional command line options« dialog.
  • MKVToolNix GUI: new feature in the chapter editor: added features »set the language/country of the selected chapter and its sub-chapters«.
  • all: bug fix: fixed compilation with Boost 1.58.0. Fixes #1172.
  • mkvmerge: bug fix: Fixed a segmentation fault during cleanup after Ctrl+C was pressed. Fixes #1173.
  • MKVToolNix GUI: new feature in the chapter editor: added features »clamping time stamps of sub-chapters to their parent'stime stamps«, »expanding time stamps of chapters to encompass their sub-chapters' time stamps« and »shifting start and end time stamps by an offset«.
  • all: permanently removed the build times tamp from the version information and the corresponding configure option.
  • MKVToolNix GUI: new feature: the main window's size, position and state (maximized/minimized) is saved on exit and restored on startup.
  • MKVToolNix GUI: new feature: the GUI is now fully translatable. The German translation has been completed for the GUI, too.
  • mkvmerge: bug fix: fixed --sync not doing anything if --default-duration is used for the same track, too.
  • mkvmerge: bug fix: fixed aborting file identification with an error message about »aac_error_protection_specific_config« that happened for some files. Fixes #1166.
  • MKVToolNix GUI: new feature: implemented changing the interface language.
  • MKVToolNix GUI: enhancement: implemented often used subtitle character sets.
  • MKVToolNix GUI: enhancement: implemented setting a user configurable subtitle character set by default.
  • MKVToolNix GUI: enhancement: implemented the automatic removal of jobs configurable by the user.
  • mkvmerge: bug fix: fixed specifying track properties like language or name for AC3 cores embedded in TrueHD tracks when they're read from raw thd+ac3 files. Fixes #1158.
  • mkvmerge: enhancement for MPEG program stream handling: mkvmerge will only look for additional files automatically if the source file begins with »VTS_…« and just if it ends in a number. E.g. when reading »video_1.mpg« another file called »video_2.mpg« will no longer be read automatically. Implements #1164.
  • MKVToolNix GUI: enhancement: display country names in addition to country codes.
  • MKVToolNix GUI: enhancement: implemented often used languages and country codes.
  • MKVToolNix GUI: chapter editor enhancement: implemented defaults for the language and country settings for newly created chapter names.
  • MKVToolNix GUI: merge tool enhancement: added controls for mkvmerge's »reduce audio to its core« and »force NALU size length« features.
  • MKVToolNix GUI: new feature: implemented the »Preferences« dialog (not all of the functionality the options refer to has beenimplemented yet, though).
  • mkvmerge: bug fix: MPEG-1/2 parser: fixed a long-standing issue that prevented mkvmerge from recognizing certain MPEG-1/2 video tracks and files if the frame's sequence numbers didn't follow a certain expected pattern. Fixes #1162 and probably others like #1145 or #1099.
  • MKVToolNix GUI: merge tool enhancement: Implemented adding and append files and adding files as additional parts via drag & drop from external applications.
  • MKVToolNix GUI: merge tool bug fix: fixed the column headers on the »attachments« tab.
  • MKVToolNix GUI: chapter editor enhancement: implemented opening files via drag & drop from external applications.
  • MKVToolNix GUI: enhancement: The portable Windows version will store its settings in a file in the same folder instead of the registry.
  • MKVToolNix GUI: enhancement: Qt's »Windows Vista« style is now used on Windows instead of the old, Windows 98-like »Windows« style.
  • MKVToolNix GUI: merge tool enhancement: The merge tool has been re-written to be tabbed like the header and chapter editors allowing for multiple merge job settings to be open at the same time.
  • MKVToolNix GUI: chapter editor enhancement: implemented re-ordering chapters and editions with drag & drop.
  • MKVToolNix GUI: new feature: implemented the chapter editor.
  • MKVToolNix GUI: merge tool enhancement: implemented adding attachments via drag & drop from external applications.
  • MKVToolNix GUI: new feature: implemented the header editor.
  • mkvmerge: enhancement: Implemented proper type output during identification for DTS-ES (extended surround) tracks. Implements #1157.
  • MKVToolNix GUI: new feature: implemented the online update check.
  • mkvmerge: bug fix: The calculation of the width and height of h.265/HEVC video tracks did not take the conformance window (cropping) into account. Fixes #1152.
  • mkvmerge: bug fix: Fixed the value of the DocTypeVersion header field if any of the Matroska elements CodecDelay, DiscardPadding or SeekPreRoll is used. This is the case for Opus tracks.
  • mkvmerge: bug fix: Fixed the handling of E-AC3 tracks in M2TS files if the AC3 core and the extension are stored in separate packets.
  • mkvmerge: new feature: Implemented support for the DTS-HD container format.
  • mkvmerge: new feature: Implemented support for core-less DTS streams consisting solely of XLL extension sub-streams.
  • mkvmerge: new feature: track selection can be done by language codes as well. Affects the options --audio-tracks,--button-tracks, --subtitle-tracks and --video-tracks. Works only for containers that actually provide a language tag. Implements #1108.
  • source code: bug fix: Accidental uses of the »long double« type have been converted to normal »double«s. This fixes compilation on platforms which don't support the »long double« type in combination with Boost::Math. Fixes #1150.

New in version 7.8.0 (March 29th, 2015)

  • build system: Boost’s »Math« library is now required.
  • mkvmerge: bug fix: HEVC tracks which did not have an aspect ratio present in their sequence parameter set were copied incorrectly; the resulting sequence parameter set was invalid. Fixes #1081.
  • mkvextract: bug fix: When extracting HEVC tracks mkvextract will use the same start code lengths that x265 uses (four bytes 0x00000001 for the first and video/picture/sequence parameter set NALs and three bytes 0x000001 for all others).
  • mkvmerge: enhancement: File type identification will output a more detailed description of the DTS type for DTS audio tracks (DTS-HD Master Audio, DTS-HD High Resolution, DTS Express or just plain DTS). Implements #1109.
  • mkvmerge: new feature: Implemented support for DTS Express.
  • mkvmerge: bug fix: The number of channels in DTS tracks with more than six channels is now recognized correctly by parsing the DTS HD extensions, too. Fixes #1139.
  • all: new feature: added a Swedish translation of the programs by Kristoffer Grundström
  • mkvmerge: bug fix: Fixed handling of the BITIMAPINFOHEADER extra data size handling during merging and extraction for codecs like HuffYUV.
  • mkvmerge: bug fix: When appending unframed HEVC/h.265 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 #1147.
  • mkvmerge: bug fix: enabled the use of tags in WebM files. Tagging elements not supported by the WebM specs are removed. Fixes #1143.
  • mkvmerge: bug fix: fixed detection of audio tracks in QuickTime files whose FourCC code is unknown to mkvmerge.
  • mkvmerge: bug fix: fixed detection of video tracks in QuickTime files whose FourCC code is unknown to mkvmerge.
  • mkvextract: bug fix: Fixed VobSub file naming when mkvextract is built against Boost::Filesystem older than 1.50.0. Fixes #1140.
  • mkvmerge: bug fix: fixed detection of Cinepak video tracks in QuickTime files.
  • mkvmerge: bug fix: fixed detection of PCM audio tracks in QuickTime files using the »raw « FourCC.
  • mkvmerge: bug fix: fixed detection of tracks in Flash Video files for which the headers do not signal a track.
  • mkvmerge: bug fix: fixed a segfault in the Flash Video file format reader.
  • mmg: The change making the window wider by default has been reverted.
  • mkvmerge: bug fix: Fixed file type detection for MP3 files with big ID3 tags at the start of the file (e.g. if they contain cover images).
  • mkvinfo (Qt interface): enhancement: implemented support for opening files via drag & drop.
  • mkvmerge: enhancement: added an option (–engage no_delay_for_garbage_in_avi) for disabling deriving a delay from garbage in audio tracks in AVI files. Requested in #1137.
  • mkvmerge: bug fix: The formula used for calculating the audio delay for garbage data at the start of tracks in AVI files has been fixed. Fixes #1137.

New in version 7.7.0 (March 2nd, 2015)

  • 2015-02-28 Moritz Bunkus
  • Released v7.7.0.
  • 2015-02-28 Lionel Fourquaux
  • source code: Fixed the compilation on cygwin.
  • 2015-02-27 Moritz Bunkus
  • documentation: The Dutch, Ukrainian and Chinese (Simplified) manual pages have contained only untranslated English strings since release 7.0.0. This was due to the files holding the translatable strings having being corrupted by a misbehaving tool in the build process. This has been rectified. Fixes #1134,
  • 2015-02-25 Mats Peterson
  • mkvmerge: bug fix: Fixed reading all of the private codec data in AVIs from the ‘strf’ chunk for codecs that don’t set biSize to include that data. Fixes #1129.
  • mkvextract: bug fix: Fixed writing AVIs with ckSize fields that were too large. Fixes #1128.
  • 2015-02-25 Moritz Bunkus
  • mmg: new feature: added a button »toggle all« that enables or disables all tracks. It at least one track is currently disabled then all tracks are enabled when pressing that button. Otherwise (if all tracks are currently enabled) then they will all be disabled. Implements #1130.
  • mmg: new feature: added a new checkbox »reduce to audio core« on the »format-specific options« tab that passes the new –reduce-to-core option to mkvmerge if enabled. Part of the implementation of #1107.
  • mkvmerge: bug fix: fixed determining the key frame status in certain AVIs (those whose dwFlags index field has more bits set than just 0x10).
  • build system: new feature: added configure options for building statically-linked binaries (–enable-static). Patches by Florent Thiéry. Implements #1119.
  • mkvextract: new feature: implemented a mode for extracting cue information.
  • 2015-02-24 Moritz Bunkus
  • mkvinfo (Qt interface): bug fix: added WebM extensions to the known types in the »Open file« dialog.
  • 2015-02-23 Mats Peterson
  • mkvextract: bug fix: Fixed writing AVIs with the wrong bit depth for video codecs that don’t use 24 bits/pixel. Fixes #1123.
  • 2015-02-23 Moritz Bunkus
  • mkvmerge: bug fix: Fixed recognition of E-AC3 audio tracks in MPEG transport streams if they use the type ID 0xa1 (and the same for DTS tracks stored with type ID 0xa2). Fixes #1126.
  • mkvextract: bug fix: Fixed VobSubs being written to the wrong directory if the output file name given by the user didn’t have an extension but one of the directories contained a dot. Fixes #1124.
  • mkvpropedit, mmg’s header editor: bug fix: if updating the file required creating an EBML void for a 130 bytes long gap then the void element created was one byte too short resulting in an invalid file structure. Fixes #1121.
  • mkvmerge: bug fix: If the MP4 track headers for MP3 tracks contain invalid values (number of channels is 0 or the sampling rate is 0) then mkvmerge will re-derive these parameters from the MP3 bitstream instead of ignoring that track.
  • 2015-02-18 Moritz Bunkus
  • mkvmerge: bug fix: Matroska reader: track-specific tags weren’t copied for tracks for which the pass-through packetizer was used (e.g. those with the codec ID A_MS/ACM) instead of a specialized one.
  • 2015-02-14 Moritz Bunkus
  • mkvmerge: enhancement: The code for determining the time codes of AAC, AC3, DTS, MP3 and TrueHD packets has been completely rewritten. This improves how timecodes are kept if the source container provides them in many cases.
  • mkvmerge: removal: AAC: The hack for using the old codec IDs (e.g. A_AAC/MPEG4/LC/SBR) for AAC tracks has been removed. Those codec IDs have been deprecated for nearly ten years. Reading files that use those IDs will stay supported.
  • mkvmerge: removal: TrueHD: The hack for merging a sync frame and all following normal frames into a single Matroska packet has been removed as there are no players that can play such merged frames anyway.
  • 2015-02-12 Moritz Bunkus
  • mkvmerge: new feature: Added an option »–reduce-to-core« that tells mkvmerge not to copy HD extensions for DTS tracks. Part of the implementation of #1107.
  • mkvmerge: new feature: mkvmerge will now recognize TrueHD tracks inside MPEG transport streams that contain an AC3 core as consisting of two tracks. Instead of always dropping the AC3 part the user can simply select which tracks to keep. Part of the implementation of #1107.
  • 2015-02-10 Moritz Bunkus
  • mkvmerge: new feature: mkvmerge will now recognize TrueHD+AC3 files as consisting of two tracks. Instead of always dropping the AC3 part the user can simply select which tracks to keep. Part of the implementation of #1107.

New in version 7.6.0 (February 10th, 2015)

  • all programs: bug fix: Since release 7.0.0 the wrong exit code was used when warnings were finished (0 instead of 1). Fixes #1101.
  • mkvmerge: bug fix: Appending chapters with the same chapter UID was dropping all sub-chapters from the one of the two merged chapters. Now the sub-chapters are merged recursively as well.
  • mkvmerge: bug fix: The wrong Codec ID was written when reading PCM tracks from Matroska files in Big Endian byte order. Fixes #1113.
  • all: new feature: added a Serbian (Latin) translation of the programs by Danko (see AUTHORS).
  • mkvmerge: bug fix: If splitting was active and AC3 tracks read from Matroska files were shorter than a split point then the following output file would contain an AC3 packet with the timecode of 00:00:00 somewhere in the middle. Fixes #1104.
  • mmg: bug fix: If a chapter track from a Matroska file is selected then the »language« drop-down box is disabled. Fixes #1105.
  • mkvmerge: bug fix: On Windows the end-of-file-reached status wasn't tracked correctly for certain file operations. This could manifest in e.g. mkvmerge not finding tracks in MPEG transport streams when probing MPLS playlist files. Fixes #1100.
  • mmg: bug fix: When scanning for play lists the window presenting the results listed some properties in an unescaped way (e.g. »\s« instead of spaces).
  • mmg: bug fix: When adding MPLS files mmg was only offering to scan for more playlists if there were at least two additional MPLS files present. This has been fixed to one MPLS file (in addition to the one just added).

New in version 7.5.0 (January 5th, 2015)

  • mkvmerge: bug fix: If the target drive is full then a nicer error message is output instead of simply crashing due to an uncaught exception.
  • mkvmerge: bug fix: Fixed reading MPEG transport streams in which all PATs and/or PMTs have CRC errors. Fixes #1100.
  • all: bug fix: Re-wrote the whole checksum calculation code. This lead to a fix for the Adler32 checksum algorithm that was triggered under certain circumstances. Adler32 is used in mkvinfo's output (e.g. in summary mode or if checksums are activated), in the h.265/HEVC bitstream and TrueAudio (TTA) file headers.
  • mkvmerge: bug fix: fixed handling of HE-AACv2 with object type »parametric stereo«.
  • mkvmerge: new feature: implemented support for MP4 DASH files. Implements #1038.
  • mkvmerge: new feature: implemented reading MPEG-H p2/HEVC video tracks from MP4 files. Implements #996.
  • mkvinfo: bug fix: track statistics: the duration (and therefore the estimated bitrate) was wrong for files in which the frame with the maximum timecode wasn't the last frame in the file. Fixes #1092.
  • mkvmerge: new feature: implemented support for AAC in LOAS/LATM multiplex if read from MPEG transport streams or raw LOAS/LATM AAC files. Implements #877 and fixes the underlying issue in #832.
  • build system: libEBML and libMatroska have been changed to provide pkg-config configuration files. Therefore MKVToolNix' build system has been switched to look for both libraries via pkg-config.
  • all: bug fix: several fixes have gone into libEBML and libMatroska that prevent illegal memory access (both reading from and writing to unallocated addresses). The bugs #1089 and #1096 have thus been fixed.
  • build system: libMatroska v1.4.2 is now required as part of a fix for #1096.
  • build system: libEBML v1.3.1 is now required as a part of a fix for #1089.
  • mkvinfo: bug fix: mkvinfo will abort with a proper error message if the first element found is not an EBML head element. See #1089.
  • all: enhancement: improved exception messages that can occur when reading damaged Matroska files to make it clearer for the user what's happening. See #1089.
  • mkvmerge: new feature: Added support for reading h.265/HEVC video tracks from MPEG transport streams. Implements #995.
  • mkvinfo: bug fix: Timecodes output with ms resolution are now rounded to ms instead of simply cut off. Fixes #1093.

New in version 7.4.0 (December 14th, 2014)

  • mkvmerge: bug fix: mkvmerge was sometimes dropping lines from teletext subtitles read from MPEG transport streams. See #773.
  • mkvmerge: bug fix: The PCM packetizer was producing wrong track statistics by disregarding the last packet's duration when reading PCM data from packaged sources (Matroska, MP4 files). Fixes #1075.
  • build system: enhancement: configure will look for a system version of the pugixml library and use that instead of the bundled version if it is found. Fixes #1090.
  • mkvextract: bug fix for chapter & tag extraction: If locale is set to a non-UTF locale (including C or POSIX) then no XML data was output at all even if the XML data contained ASCII characters only. Fixes #1086. This also fixes mkvextract writing two BOMs when extracting tags with the »--redirect-output« option on Windows.
  • mkvinfo: bug fix: summary mode: reported frame types in block groups are now derived from the number of references found and not by the references' values.
  • mkvmerge: bug fix: Fixed muxing open GOPs after I frames in MPEG-1/2 video (patch by Stefan Pãschel). Fixes #1084.
  • mmg: bug fix: VP9 video tracks are accepted in WebM mode.
  • mkvmerge: bug fix: Cherry-picked several commits from DivX' mkvmerge fork for improved HEVC handling. Fixes #1076.
  • all: new feature: added a Catalan translation of the programs by Antoni Bella Pãrez
  • mkvmerge: bug fix: Fixed the handling of Big Endian PCM tracks read from MP4 files. Fixes #1078.

New in version 7.3.0 (October 26th, 2014)

  • mkvmerge: new feature: implemented support for reading teletext subtitles from MPEG transport streams. They're converted to SRT-style subtitles (CodecID S_TEXT/UTF8). Implements #773.
  • mkvmerge: bug fix: probing MPEG transport streams with certain types of broken MPEG-2 inside caused mkvmerge to exit with an error message. Such tracks are now ignored instead.
  • mkvmerge, mmg's chapter editor: fixed the default value for the »language« element if it isn't present in a chapter XML file.
  • MKVToolNix GUI: implemented drag & drop in the files pane.
  • mkvinfo (Qt version on Windows): bug fix: the console window is closed if the GUI is launched.
  • mkvmerge: bug fix: Reading tracks from MPEG transport streams resulted in the track being cut off at points with a five minute gap in between frames. It is due to timecode wrap detection introduced in v6.9.0. As it affects subtitles the most the wrap detection has been relaxed for them.
  • MKVToolNix GUI: implemented drag & drop in the track pane.
  • mkvmerge: new feature: added support for PCM in MPEG program streams (.vob – DVDs) and transport streams (.ts, .m2ts – Blu-rays). Implements #763.
  • MKVToolNix GUI: fixed missing command line switch for audio sync/stretch.
  • MKVToolNix GUI: implemented drag & drop in the job queue.
  • MKVToolNix GUI: implemented storing the job queue when the application exits and retrieving it when it starts again.
  • Installer: bug fix: the shortcut for the GUI preview on the desktop is removed upon uninstallation. If the user opts not to have shortcuts on the desktop then no shortcut is created for the GUI preview either.
  • MKVToolNix GUI: fixed clearing the file/track/attachment lists when starting a new config or when loading an existing one.
  • MKVToolNix GUI: implemented setting the output file name automatically in four different modes (don't set at all; place in previous output directory; place in fixed output directory; place in parent directory of first source file) with an option to make them unique by appending a running number.
  • MKVToolNix GUI: implemented setting the file title automatically from added files that already have a title.

New in version 7.2.0 (September 15th, 2014)

  • MKVToolNix GUI: included a first preview version in the Windows installer and portable releases.
  • mkvmerge: bug fix: Fixed calculating AC3 delay from garbage data when reading AC3 from AVIs. This stopped working in release 5.4.0 due to commit 97cc2121.
  • mkvextract: bug fix: SSA/ASS files with sections after "[Events]" in their CodecPrivate are now handled correctly. Fixes #1057.
  • mkvmerge: bug fix: Fixed handling certain edit list types in MP4 files that are used for positive track delays. Fixes #1059.
  • source: Fixed compilation with Boost 1.56.0 which changed the »indexed« range adaptor in an incompatible way.
  • mkvpropedit, mmg's header editor: bug fix: when editing files with missing track UID elements such an element will be generated automatically instead of crashing and leaving the file in an unplayable state. Part of a fix for #1050.
  • mkvmerge: bug fix: Reading Matroska files with missing track UID elements will no longer cause mkvmerge to abort with an error. A warning is printed and a new unique track ID generated instead. Part of a fix for #1050.

New in version 7.0.0 (June 10th, 2014)

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • 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.

New in version 6.9.1 (April 22nd, 2014)

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

New in version 6.8.0 (March 4th, 2014)

  • 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.
  • mkvmerge: enhancement: The deprecated ISO 639-1 code "iw" is now recognized for Hebrew.
  • 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.
  • mkvmerge: enhancements: AVI reader: audio chunks with obvious wrong size information (bigger than 10 MB) will be skipped.
  • 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.
  • all: Windows 64bit: fixed return value checks for opening files. Fixes #972.
  • 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 (\r) per carriage return character (\n). 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.
  • 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.
  • mmg: bug fix: fixed the check for WebM-compatible track types for Opus.
  • mkvmerge: bug fix: fixed muxing Sorenson v3 (SVQ3) video from QuickTime files.
  • 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.
  • 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.
  • 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.

New in version 6.7.0 (January 9th, 2014)

  • build system: Ruby 1.9.x is now required.
  • all: enhancement: The architecture (32bit/64bit) is mentioned in the version information of all programs.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • mmg: bug fix: fixed the tooltip for the subtitle character set drop-down box to match mkvmerge's actual behavior. Fixes #948.
  • mkvmerge: new feature: implemented reading DTS audio tracks from MP4 files (with ESDS object type ID == 0xA9 (decimal 169) or FourCC == 'DTS ' or 'dtsc').
  • 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.
  • 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).
  • mmg: bug fix: fixed a crash in during drag & drop operations in mmg's chapter editor.

New in version 6.6.0 (December 2nd, 2013)

  • mmg: new feature: implemented drag & drop in the chapter editor. Implements #929.
  • 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.
  • 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.
  • 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.
  • 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.

New in version 6.5.0 (October 21st, 2013)

  • 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.
  • mkvmerge: bug fix: fixed a crash when reading empty global tag files. Fixes #921.
  • 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).
  • mmg: bug fix: saved window widths were growing by 1 pixel each time mmg was exited.
  • documentation: Added a German translation of the man pages by Chris Leick (see AUTHORS).
  • 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.
  • 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).

New in version 6.4.1 (September 17th, 2013)

  • Bug fix: fixed packet ordering regression introduced in 6.4.0 if --default-duration is used for a track.

New in version 6.3.0 (June 29th, 2013)

  • 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.

New in version 6.2.0 (April 29th, 2013)

  • This version adds many bugfixes.
  • Memory usage has been reduced severely.

New in version 6.1.0 (March 4th, 2013)

  • This version supports Blu-ray playlists (MPLS files) in both mkvmerge and mmg.
  • Several small bugs have been fixed.

New in version 6.0.0 (January 21st, 2013)

  • mkvmerge: new feature: Implemented splitting by parts based on frame/field numbers ("--split parts-frames:" in mkvmerge). Implements #819.
  • 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.
  • 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.
  • 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.
  • 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.
  • mmg: bug fix: Fixed a crash in the chapter editor if the root was selected and the user used the "Set values" button.
  • 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.
  • mkvmerge: new feature: Added experimental support for the Opus audio codec. Parts of an implementation of #779.
  • 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.
  • mkvmerge, mmg: new feature: Implemented splitting by chapter numbers. Implements #504 and #814.
  • 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.
  • 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.
  • Build system: Boost's "variant" library is now required.
  • 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.
  • 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.
  • mkvpropedit: bug fix: Giving a non-existent file name in tags mode will result in a proper error message. Fixes #806.

New in version 5.9.0 (December 11th, 2012)

  • mkvmerge: bug fix: Fixed reading seek position values bigger than 2 GB. Fixes #805.
  • 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.
  • all: bug fix: EBML void elements will be skipped when reading structures from XML (e.g. chapters). Fixes #802.
  • 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.
  • 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.
  • mkvmerge: enhancement: Dirac video code: Added four more pre-defined video types from Dirac spec v2.2.2 and two from Dirac Pro.
  • 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.

New in version 5.8.0 (September 3rd, 2012)

  • mkvpropedit: new feature: Added support for adding, deleting and replacing attachments.
  • 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.
  • 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.
  • source: Various fixes for building with g++ 4.7.x and clang 3.1.
  • Build system: Boost's "bind" library is not required anymore. The C++11 features from "functional" are used instead.
  • mkvmerge: bug fix: MPEG transport streams whose timecodes wrap around/overflow are handled correctly. Fixes #777.
  • 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).
  • mkvmerge: new feature: Added support for reading ALAC (Apple Lossless Audio Codec) from CAF (CoreAudio), MP4 and Matroska files. Implements #753.
  • 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.
  • 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. "-- >").
  • mkvmerge: bug fix: VC1: mkvmerge will now only mark frames as I frames if a sequence header precedes them directly. Fixes #755.
  • all: new feature: Added a Basque translation by Xabier Aramendi (see AUTHORS).
  • 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).
  • 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.

New in version 5.7.0 (July 10th, 2012)

  • In MP4/QuickTime files, an issue with "constant sample size, variable duration not supported" has been fixed.
  • Excessive CPU usage has been fixed.
  • Other bugs were fixed.

New in version 5.6.0 (May 28th, 2012)

  • This version fixes a couple of important issues with the new "--split parts:" functionality.
  • Other bugs were fixed as well.
  • A Polish translation of the programs has been added, as well as a Spanish translation of mmg’s guide.

New in version 5.5.0 (April 9th, 2012)

  • Build system: Boost's "lexical_cast" and "type traits" libraries are now required.
  • mmg: new feature: Added GUI controls for mkvmerge's "file concatenation" feature as "additional file parts". The user can chose which individual files are treated as if they were a single huge source file.
  • mkvmerge: bug fix: The handling of the "do not read other files" options (e.g. "=file.vob" and "( file.vob )") was broken for MPEG program stream files.

New in version 5.2.1 (January 3rd, 2012)

  • mkvmerge: bug fix: Fixed certain DTS files being mis-detected as AC3. Fix for bug 693.
  • build system: Added an option "--without-gettext" that allows for building without support for translations even if gettext itself is installed.
  • build system: Added an option "--without-curl" that allows for building without CURL support even if CURL itself is installed.
  • all: bug fix: Fixed compilation if gettext/libintl is not available.
  • mkvmerge: bug fix: The MPEG program stream reader was reporting wrong progress percentage if multiple files were used since v5.1.0.
  • mkvmerge: enhancement: Removed the posix_fadvise() code. The application is using its own caching code which caused bad performance if the OS caching provided via posix_fadvise() is used as well.
  • mkvmerge: bug fix: If an MP4 file contains chapters encoded in a different charset than UTF-8 and --chapter-charset is not used then the error message shown is a lot clearer why mkvmerge aborts muxing. Before the error message was a generic "mm_text_io_c::read_next_char(): invalid UTF-8 character. The first byte:..."
  • mkvmerge: bug fix: MPEG program streams in which a track suddenly ends and others continue or in which a track has huge gaps will no longer cause mkvmerge to try to read the whole file at once. This could lead to excessive swapping and finally mkvmerge crashing if no more memory was available.
  • mkvextract: bug fix: The track IDs used for extraction are consistent again with the IDs that mkvmerge's identification reports. Fix for bug 689.
  • mkvmerge: bug fix: Fix compilation if FLAC is not available. Fix for issue #13.

New in version 5.2.0 (December 19th, 2011)

  • mkvmerge, mmg: bug fix: Automatic MIME type recognition for TrueType fonts will result in "application/x-truetype-font" again instead of "application/x-font-ttf". Fix for bug 682.
  • documentation: enhancement: Added a Ukrainian translation for mkvextract's man page.
  • mkvinfo: bug fix: Various elements used to have a space between their names and their value's hex dump. In v5.1.0 that space was accentally removed. It has been added again. Fix for bug 583.
  • mkvmerge: bug fix: Turn off input file buffering for badly interleaved MP4 files.
  • mkvmerge: bug fix: Changed how mkvmerge assigns IDs to tracks in source files for Matroska and MP4 files. That way files whose headers contain the same ID for multiple tracks will work correctly. Fix for bug 681.
  • mkvmerge: enhancement: The VP8 output module will always re-derive frame types (key frame vs. non-key frame).
  • mkvmerge: bug fix: VP8 read from AVI could not be put into WebM compatible files.
  • mkvmerge: bug fix: Fixed a rare audio type mis-detection of MP2/MP3 audio tracks in MPEG program streams causing mkvmerge to abort with an error message.
  • mkvmerge, mkvextract: enhancement: Implemented input file buffering in mkvmerge and improved/implemented output file buffering in other tools.
  • mmg, mkvinfo's GUI: enhancement: Added new icons based on the work of Alexandr Grigorcea (see AUTHORS).
  • mmg: bug fix: Fixed a memory leak in mmg's header editor that caused the "open file" function to stop working after opening a few files. Fix for bug 679.

New in version 5.1.0 (November 29th, 2011)

  • Many bugs were fixed and great improvements were made to the MPEG transport stream handling.
  • Building now requires GCC 4.6.0 or newer and Boost 1.46 or newer, as many features from the C++11 standard are used actively.

New in version 5.0.1 (October 10th, 2011)

  • A regression in reading PGS subtitles from Matroska files was fixed.
  • Support for MPEG transport streams has been improved in several areas, mostly related to audio handling and detection.

New in version 5.0.0 (September 27th, 2011)

  • build system: libEBML 1.2.2 and libMatroska 1.3.0 are required for building. If external versions are not found or if they're too old then the included versions will be used as a fallback.
  • mkvmerge: bug fix: The "writing application" element will not be localized but always be written in English.
  • mkvmerge: new feature: MPEG TS: mkvmerge will extract the track languages from a corresponding clpi (clip info) file. That file is searched for in the same directory and in ../CLIPINF and must have the same base name but with the ".clpi" extension.
  • mkvmerge: enhancement: Added new stereo mode options to match the current specs. The new options are "anaglyph_green_magenta" (12), "both_eyes_laced_left_first" (13) and "both_eyes_laced_right_first" (14).
  • mkvmerge: The --stereo-mode named option "anaglyph" was renamed to "anaglyph_cyan_red" to match the specs. The numerical value (10) remains unchanged.
  • mkvextract: bug fix: Fixed attachment number displayed during extraction. Fix for bug 663.
  • mkvmerge: enhancement: MPEG TS: Added support for HDMV PGS subtitles.
  • mkvmerge: enhancement: MPEG TS: Added support for DTS HD Master Audio tracks.
  • mkvmerge: enhancement: MPEG TS: Streams that are mentioned in the PMT but do not actually contain data are neither reported during identification nor muxed.
  • mkvmerge: new feature: MPEG TS: Added support for reading the language code.
  • mmg: enhancement: Added MPEG transport streams to the "add file" dialog file selector.
  • mkvmerge: new feature: MPEG TS: Added support for normal DTS tracks.
  • mkvmerge: Tons of fixes and additions to the MPEG transport stream demuxer.
  • build system: configure will accept external versions of libEBML and libMatroska again. Minimum required versions are libEBML 1.2.1 and libMatroska 1.1.0.
  • All: Updated the French translation with a complete set by DenB (see AUTHORS).
  • mmg: mmg respects the XDG Base Directory Specification regarding its configuration files (environment variable $XDG_CONFIG_HOME/mkvtoolnix if set, otherwise ~/.config/mkvtoolnix).
  • all: Added an Lithuanian translation by Mindaugas Baranauskas (see AUTHORS).
  • mkvmerge: new feature: Implemented a MPEG transport stream demuxer.
  • mkvmerge: enhancement: When looking for MPEG files with the same base name as a source file mkvmerge will be stricter what it accepts. The file name must consist of at least one char followed by "-" or "_" followed by a number. That will match VTS_01_1.VOB but not e.g. "some_series_s03e10.mpg".
  • mkvmerge: bug fix: Opening MPEG files with numbers in their name from folders with e.g. Cyrillic names failed on Windows.
  • mkvmerge: bug fix: Several elements are not written when creating WebM compliant files. In the segment headers: SegmentUID, SegmentFamily, ChapterTranslate, PreviousSegmentUID, NextSegmentUID. In the track headers: MinCache, MaxCache and MaxBlockAdditionID.
  • mkvmerge: enhancement: Sped up file identification by caching read operations.
  • mkvmerge: bug fix: Fixed identifying QuickTime/MP4 files that start with a 'skip' atom.
  • mkvmerge: bug fix: Fixed a crash when reading AVI files with DTS audio tracks that do not contain valid headers in the first couple of packets. Fix for bug 646.

New in version 4.9.1 (July 14th, 2011)

  • mkvmerge: bug fix: Fixed endless loop when reading AVI files on Windows if MKVToolNix was compiled with a gcc mingw cross compiler v4.4.x. Fix for bug 642.
  • mkvmerge: bug fix: Fixed long file identification time caused by DV detection. Fix for bug 641.

New in version 4.7.0 (April 22nd, 2011)

  • build system: For the time being the build system will always build and link statically against the internal versions of libEBML and libMatroska.
  • mkvmerge: bug fix: Fixed appending timecode calculation for appended subtitle tracks if the subtitle tracks are read from complex containers (e.g. Matroska, MP4, AVI etc). Fix for bug 620.
  • mkvextract: bug fix: Fixed extraction of MPEG-1/2 video tracks whose sequence headers change mid-stream but whose key frames are not all prefixed with a sequence header. Fix for bug 556.
  • mkvmerge: bug fix: Fixed reading AAC tracks from AVI files with 7 bytes long codec data. Fix for bug 613.
  • mkvmerge: enhancement: Added support for WAV and AVI files that use a WAVEFORMATEXTENSIBLE structure (wFormatTag == 0xfffe). Fix for bug 614.
  • mmg: bug fix: The output file name extension will be updated on each track selection changed as well. The extension is based on the actually selected tracks, not on the presence of tracks of certain types. Fix for bug 615.
  • mkvmerge: bug fix: mkvmerge was dropping the last full DTS packet from a DTS files if that file was not encoded in "14-in-16" mode and if the file size was not divisible by 16.
  • mkvmerge: bug fix: Fixed huge slowdown when splitting by size is active with certain kinds of input files. Fix for bug 611.
  • mkvinfo: bug fix: Fixed redirecting the output into a file with "--redirect-output"/"-r" and verbosity levels of 2 and higher.
  • mkvpropedit, mmg header/chapter editor: bug fix: Fixed parsing Matroska files if mkvtoolnix is compiled with newer versions of libebml/libmatroska (SVN revisions after the releases of libebml 1.2.0/libmatroska 1.1.0).
  • mkvmerge: bug fix: WAV files with unsupported format tags are rejected instead of being treated like containing PCM. Fix for bug 610.
  • mkvmerge: enhancement: The EBML header values "doc type version" and "doc type read version" are both set to 3 if at least one of the video tracks uses the stereo mode parameter.

New in version 4.6.0 (March 10th, 2011)

  • build system: Fixed building the Qt version of mkvinfo's GUI (again). Fix for bug 576.
  • mmg: bug fix: If the header editor finds 'language' elements with ISO-639-1 codes (e.g. "fra" instead of "fre" for "French") then it will map the code to the corresponding ISO-639-2 code. Fix for bug 598.
  • mmg: bug fix: Fixed one of the issues causing mmg to report that it is configured to use an unsupported version of mkvmerge when the reported version was actually empty.
  • mkvmerge: enhancement: HD-DVD subtitles are recognized as being an unsupported file format. This makes the error message presented to the user a bit clearer. Fix for bug 600.
  • build: Boost 1.36.0 or newer is required (up from 1.34.0). Also fixed building with v3 of Boost's filesystem library, e.g. with Boost 1.46.0 Beta 1 or newer.
  • mkvpropedit: new feature: Added support for adding, replacing and removing tags.
  • all: Added a translation for the programs into Turkish by ßouЯock (see AUTHORS).
  • build system: Fixed compilation if configure choses the internal versions of libebml and libmatroska while older versions are still installed in a location named with "-I..." or "-L..." in CFLAGS/CXXFLAGS/LDFLAGS or with configure's

New in version 4.5.0 (February 3rd, 2011)

  • build: Building mkvtoolnix now requires libebml v1.2.0 and libmatroska v1.1.0 or later. * build: enhancement: mkvtoolnix now includes libebml and libmatroska. The configure script will use them if either no installed versions of them is found or if the installed version is too old

New in version 4.4.0 (November 2nd, 2010)

  • build system: bug fix: Installation no longer fails if xsltproc is available but the DocBook stylesheets aren't. Fix for bug 575.
  • mkvmerge: new feature: If the name of an input file starts with '=' then mkvmerge will not try to open other files with the same name (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB') from the same directory. A single '=' as an argument disables this as well for the next input file. Implements bug 570.
  • mmg: new feature: Added an option to disable extra compression when adding tracks by default.
  • mkvmerge: bug fix: Made file type detection stricter for MP3, AC3 and AAC files. This prevents mis-detection of other file types as one of these for certain files. Fix for bug 574.

New in version 4.3.0 (September 6th, 2010)

  • SSA/ASS subtitle tracks were discarded even if selected for inclusion.
  • The header editor and mkvpropedit sometimes crashed and created broken files.
  • The job manager's "total remaining time" was totally wrong.
  • A couple of malformatted translation entries were causing mmg to crash.
  • Certain h.264 frame types were handled wrong. All of these problems have been fixed.
  • mkvinfo displays the level and profile information for h.264 tracks.
  • Attachments are written at the start of the file again.
  • mkvextract will not continue after encountering an error anymore.

New in version 4.2.0 (July 29th, 2010)

  • Various crashes in mkvmerge have been fixed.
  • Splitting by size was basing the split decision on uninitialized variables causing multiple very small files to be created.
  • DisplayWidth/DisplayHeight values that were only used to store the display aspect ratio are fixed to sensible values while providing the same aspect ratio information.
  • mmg will remove entries from "recently used files" lists if they don't exist anymore.

New in version 4.1.1 (July 4th, 2010)

  • A crash in mkvmerge regarding the header removal compression that occurred often in version 4.1.0 has been fixed. mmg no longer adds .mmg files opened by job execution to the file menu's list of recently accessed files.

New in version 4.1.0 (July 2nd, 2010)

  • Placement of key frames inside clusters has been improved.
  • Support for PGS/SUP files has been added.
  • Several crashes have been fixed.
  • The handling of default values in mmg has been fixed.
  • mkvmerge uses "header removal compression" for several track types.
  • Muxing speed has been improved by caching write operations.
  • The man pages have been translated into Dutch and the programs into Spanish.

New in version 3.3.0 (March 25th, 2010)

  • Build system: Sped up builds by using pre-compiled headers. Patches by Steve Lhomme (see AUTHORS) and myself.
  • mkvmerge: bug fix: Fixed the default duration for interlaced MPEG-1/2 video tracks. Also added the 'interlaced' flag for such tracks.
  • mkvmerge: bug fix: Specifying a FourCC with spaces at the end will not result in an error anymore.
  • mkvmerge: bug fix: Timecodes for MPEG-1/2 tracks are calculated properly, especially for B frames.
  • mmg: bug fix: The jobs will be saved in the 'mkvtoolnix/jobs'sub-directory of the 'application data' folder instead of the'jobs' folder in the current directory. On Windows this is the special 'application data' folder inside the user's profile directory, e.g. 'C:\Users\mbunkus\AppData\mkvtoolnix'. On
  • non-Windows systems this is the folder '.mkvtoolnix' in the user's home directory. mmg's configuration file has also been moved from ~/.mkvmergeGUI
  • to ~/.mkvtoolnix/config on non-Windows systems. Fix for bug 466.

New in version 2.7.0 (April 16th, 2009)

  • Build requirements changed: mkvtoolnix requires Boost v1.32.0 or later.

New in version 2.6.0 (March 24th, 2009)

  • A header editor capable of changing almost any header field in an existing Matroska file without remuxing was added to mmg.
  • A Japanese translation was added.
  • Several bugs related to charset seletcion and translations were fixed.

New in version 2.5.3 (March 7th, 2009)

  • Another bug regarding locale selection has been fixed.
  • Concatenation of AVC elementary files does not cause segmentation faults anymore.
  • he track selection for the "--attachments" option has been fixed.

New in version 2.5.2 (March 1st, 2009)

  • Locale detection was fixed.
  • MIME type autodetection was fixed for file names and paths with non-ASCII characters.
  • Several issues with the new "attached files" feature in mmg were fixed.
  • Several issues with wxWidgets 2.9 regarding compilation and GUI layout were fixed.
  • mmg now has buttons for enabling or disabling all attached files.
  • mkvinfo's GUI is now translatable and translated to German.

New in version 2.5.1 (February 23rd, 2009)

  • This release contains fully translatable versions of the tools and a German translation of them.
  • The second new feature is fine-grained control over file attachments both in mkvmerge and in mmg.
  • A couple of smaller bugs were fixed.

New in version 2.4.2 (January 19th, 2009)

  • Appending external subtitle files works again. mkvmerge can handle simple chapter files with more than 100 chapters.
  • mkvmerge does not report arbitrary display dimensions for OGM files anymore.
  • The parse speed of Quicktime/MP4 header fields has been improved.

New in version 2.4.1 (December 6th, 2008)

  • The timecode handling during appending files has been fixed so that audio/video sync issues should not occur anymore.
  • mkvmerge is much more tolerant regarding the format of timecodes in SRT files, has an updated list of ISO-639-2 language codes, and processes WAV files bigger than 8 GB correctly.
  • mkvmerge can now handle SRT/SSA subtitles in AVI files.
  • mmg processes redraw events much more often during muxing, and allows short timecodes to be entered for splitting.

New in version 2.4.0 (October 12th, 2008)

  • New features include support for VC1 video reading from elementary streams and MPEG program streams, Dirac video elementary streams, support for 7.1 channel EAC3 tracks, and the extraction of Theora video tracks into Ogg files.
  • Bugs that were fixed include the handling of unknown tracks in Ogg files, the automatic garbage detection for AC3/MP3 tracks, the handling of DTS in MPEG program streams, (E)AC3 files bigger than 2 GB, and many more.

New in version 2.3.0 (September 9th, 2008)

  • Newly supported features include DTS-HD tracks (both "high definition" and "master audio"), Ogg Kate text subtitles, skipping of ID3 tags in AAC and AC3 files, Vorbis-in-AVI, delaying any track type, and floating point WAV files.
  • Several bugs were fixed including time code handling for various track types and use cases, A/V desynchronization in VOBs, incorrect VobSub packets, and more.