I’ve released MKVToolNix v5.5.0. It fixes a few issues all across the board. The XML handling has been completely rewritten resulting in the tag, chapter and segment info XML files supporting more of the Matroska specs. A new mode for “--split” has been implemented that let’s you keep certain ranges and discard others without the need for temporary files or multiple muxing passes.
Here are the usual links: the home page, the source code and the Windows installer and 7zip archive.
All of the binaries that I provide myself are already available.
Here’s the full ChangeLog since release 5.4.0:
- 2012-04-06 Moritz Bunkus <moritz@bunkus.org>
- Released v5.5.0.
- 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.
- 2012-04-01 Moritz Bunkus <moritz@bunkus.org>
- mkvmerge: bug fix: Fixed a wrong assertion about minimum MPEG 1/2 video start code lengths. Fixes ticket 728.
- 2012-03-31 Moritz Bunkus <moritz@bunkus.org>
- mkvmerge, mmg: new feature: Added support for keeping only certain timecode ranges from the source files with a new format to "
--split": "--split parts:...". Implements ticket #518.
- mkvmerge, mmg: new feature: Added support for keeping only certain timecode ranges from the source files with a new format to "
- 2012-03-30 Moritz Bunkus <moritz@bunkus.org>
- mmg: new feature: Added an option in the preferences dialog called "clear jobs from the job queue after they’ve been run". Can be set to "only if run was successfull", "even if there were warnings" and "even if there were errors". Defaults to off.
- 2012-03-29 Moritz Bunkus <moritz@bunkus.org>
- mkvmerge, mkvextract, mmg: Re-write of the whole XML handling code. It now uses the "pugixml" C++ library instead of the "expat" library. Therefore "expat" is not required for building MKVToolNix anymore. And neither is Boost’s "property tree" library. "pugixml" itself is included and not an external requirement either.
- Build system: removed all files and documentation related to building MKVToolNix with Microsoft’s Visual Studio because even the most recent version of Visual C++ does not support the C++11 features required for MKVToolNix.
- mkvmerge, mkvextract: removal: Removed support for the CorePicture file format. It was mostly unused and relied on old code that will be removed soon.
- documentation: enhancement: mkvmerge’s man page has been updated with a list of valid XML tags for the chapters, tags and segment info XML file formats.
- all: Updated the DTD files with the newly supported elements.
- mkvmerge: enhancement: Chapter XML files: mkvmerge can handle the "ChapterSegmentEditionUID" element.
- mkvmerge: enhancement: Segment info XML files: mkvmerge can handle the "SegmentFilename", "PreviousSegmentFilename" and "NextSegmentFilename" elements.
- 2012-03-19 Moritz Bunkus <moritz@bunkus.org>
- mmg: enhancement: Added "mts" as yet another file extension for MPEG transport streams.
- 2012-03-18 Moritz Bunkus <moritz@bunkus.org>
- mmg: bug fix: Fixed a crash due to a missing argument for a format string when clicking on the "Browse" button for the track-specific tags.
- 2012-03-15 Moritz Bunkus <moritz@bunkus.org>
- mmg, mkvinfo’s GUI, all .exes: enhancement: Added new icons by Eduard Geier. (see AUTHORS).
- 2012-03-14 Moritz Bunkus <moritz@bunkus.org>
- mkvextract: bug fix: mkvextract sometimes wrote undefined values to a single reserved header field when extracting into AVI files. Patch by buguser128k. Fix for ticket 727.
- mkvmerge: bug fix: AVC/h.264 mkvmerge was wrongfully writing a default duration of 60 frames/fields even if the source was signalling 60000/1001 frames/fields. The frame timecodes have been correct already.
- 2012-03-12 Moritz Bunkus <moritz@bunkus.org>
- mkvmerge: bug fix: Fixed timecode calculation for (E)AC3 tracks if the source container (e.g. MPEG transport streams) only provided timecodes for some of the (E)AC3 packets itself.
Hey,
I’ve released mkvtoolnix v5.4.0. It’s a release that contains one huge improvement: the AVC/h.264 timecode assignment code has been completely rewritten. Users do not have to specify the default duration/FPS for such tracks anymore safe for the rarest cases. Apart from that there were tons of bug fixes, improvements regarding file type recognition, and a complete re-write of the (E)AC3 parsing code.
A note for package maintainers: Boost’s rational library is now required.
Here are the usual links: the home page, the source code and the Windows installer and 7zip archive.
All of the binaries that I provide myself are already available.
Here’s the full ChangeLog since release 5.3.0:
- 2012-03-10 Moritz Bunkus <moritz@bunkus.org>
- Released v5.4.0.
- 2012-03-08 Moritz Bunkus <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- 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 <moritz@bunkus.org>
- doc: enhancement: Updates for option file usage and supported subtitle formats.
Have fun.
I’ve changed the bug tracker I’m using for MKVToolNix: from Bugzilla to Trac. Today I’ve finished migrating all existing bug reports and all user accounts. Therefore Trac is now the one to use, and I’ve disabled the old one.
You can browse existing bug reports without loggin in. However, if you want to open a new bug report or comment on an existing one then you still need an account. Good news for users who already had an account in my old Bugzilla installation: you can use your old credentials. Your login name in Trac is the same one you’ve used in Bugzilla (your email address — but all lowercase!), and even your old password should work. Just try it out and login.
If it does not work then you can ask Trac to re-set your password. You have to enter both your account name and your email address in the form. For accounts imported from Bugzilla both are the same: your email address (remember to use all lowercase!).
I usually provide support by email. However, often enough the issues brought up by users are generally interesting for a wider audience. And, just as often, I have to answer the same question over and over again.
Therefore I decided to open a forum for MKVToolNix in particular and Matroska in general. Everything about my programs and Matroska is ontopic there. It’s a StackExchange like forum that uses the excellent Questions2Answer software.
Feel free to come around. I’ve added all of my earlier FAQ entries as posts, and a couple of other questions have been asked by new members as well.

