mosu's tips & news from the Matroska world
MKVToolNix v6.8.0 released
Monday 3 March 2014 @ 6:30 pm


I’ve released MKVToolNix 6.8.0. There were tons of bug fixes for the Windows builds, especially for the 64bit builds.

The one new feature that is present is support for h.265/HEVC video: but only for reading it from elementary streams or from other Matroska files. My initial plan was to have reading it from MPEG transport streams work as well, but alas, free time is in short supply, and this release is a week overdue already.

The HEVC support has been implemented by Rovi Corp (DivX). I’ve merged their changes, updated them to the current code base and cleaned them up somewhat. Their work is much appreciated.

For package maintainers nothing has changed compared to 6.7.0.

You can download the source code or one of the binaries.

Here’s the full ChangeLog since release 6.7.0:

  • 2014-03-02 Moritz Bunkus <>
    • Released v6.8.0.
  • 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 (\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.
  • 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.

Have fun.


Comments (8) - Posted in Matroska by  

MKVToolNix v6.7.0 released
Wednesday 8 January 2014 @ 10:33 pm


I’ve release v6.7.0 of MKVToolNix. It contains tons of bug fixes all over the place, but also a couple of enhancements. The most important bug fix is probably the change to how MPLS files are handled (see below).

This is the first release for which I’m providing 64bit binaries for Windows as well. They offer the same functionality as the 32bit binaries. Versions can be distinguished in their version number output as well as mmg’s »about« dialog.

Please note that the Windows installer and portable archive do not contain the word »Unicode« anymore. That’s not because they don’t support Unicode; they do. It’s just that the last release without Unicode support was v2.something quite a lot of years ago, and there’s simply no reason to point out the Unicode-awareness anymore.

There’s one change for package maintainers: Ruby 1.9.x is now required for building. I don’t support 1.8.x anymore. This should not be a problem for current distributions anyway.

You can download the source code or one of the binaries.

Here’s the full ChangeLog since release 6.6.0:

  • 2014-01-08 Moritz Bunkus <>
    • Released v6.7.0.
    • 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.

Have fun.

Comments (18) - Posted in Matroska by  

MKVToolNix v6.6.0 released
Sunday 1 December 2013 @ 8:41 pm


I’ve released MKVToolNix 6.6.0. I’m trying to get back on a release cycle of roughly six weeks between minor versions (minor being the middle part of the version number). So releases may happen more often than over the summer but contain few changes.

This release fixes a couple of bugs and greatly improves the compatibility to the newly released wxWidgets 3.0.0. A new translation into Portuguese has been added, and you can now re-order chapters in the chapter editor with the usual drag & drop operations.

Nothing has changed for package maintainers compared to the previous release, v6.5.0.

You can download the source code or one of the binaries.

Here’s the full ChangeLog since release 6.5.0:

  • 2013-12-01 Moritz Bunkus <>
    • Released v6.6.0.
    • 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.

Have fun.

Comments (22) - Posted in Matroska by  

MKVToolNix v6.5.0 released
Sunday 20 October 2013 @ 11:23 am


I’ve released MKVToolNix 6.5.0. One new feature is present: support for the VP9 video codec (reading it from IVF and Matroska/WebM files, extracting it into IVF files). A German translation of the man pages has been added as well. Several minor bugs have been fixed here and there.

For package maintainers nothing has changed compared to 6.4.1.

You can download the source code or one of the binaries.

Here’s the full ChangeLog since release 6.4.1:

  • 2013-10-19 Moritz Bunkus <>
    • Released v6.5.0.
    • 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).

Have fun.

Comments (5) - Posted in Matroska by  

Older Posts »