Daily Archives: February 1, 2011

mkvtoolnix v4.5.0 released


I’ve released mkvtoolnix v4.5.0. It contains a lot of bug fixes as well as a couple of new features and a few enhancements.

There are two important changes for package maintainers:

  1. mmg’s guide is now installed into the $docdir location (“–docdir” option to configure) instead of $datadir/mkvtoolnix. This usually means
    /usr/share/doc/mkvtoolnix/guide instead of /usr/share/mkvtoolnix/guide. As the guide was the only thing installed in $datadir/mkvtoolnix that directory is not needed anymore.
  2. mkvtoolnix requires libebml 1.2.0 and libmatroska 1.1.0 for compilation. Both have been released a few days ago. However, starting with this release mkvtoolnix includes the source of libebml and libmatroska. configure will still try to find globally installed copies of libebml and libmatroska like before and use them if they’re recent enough. If they’re not then configure will fall back to using the included versions.

    This breaks in certain cases. If CFLAGS/CXXFLAGS/LDFLAGS contain include/library path directives to directories containing older versions of ibebml/libmatroska then configure will correctly say it’ll use its internal copies of libebml/libmatroska but compilation will fail (due to the order in which CFLAGS/CXXFLAGS/LDFLAGS etc are passed to gcc). I plan to fix this for the next release. For the time being it should be enough not to specify include/library paths with any of these environment variables. Then you can even leave older copies installed and compilation will work.


    Old libs in /usr/include/ebml, /usr/include/matroska is OK.

    Old libs in e.g. /opt/libebml, /opt/libmatroska and configuring with CFLAGS="-I/opt/libebml -I/opt/libmatroska" LDFLAGS="..." ./configure will break.

Here are the usual links: the home page, the source code and the Windows installer and 7zip archive.

All binaries that I provide myself have already been uploaded.

Here’s the full ChangeLog since release 4.4.0:

  • 2011-01-31 Moritz Bunkus <moritz@bunkus.org>
    • Released v4.5.0.
    • 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.
  • 2011-01-25 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: Fixed an infinite loop when reading program stream maps in MPEG program streams. Part of a fix for bug 589.
  • 2011-01-21 Moritz Bunkus <moritz@bunkus.org>
    • mkvinfo: new feature: Added an option "–track-info" (short: "-t") that displays one-line statistics about each track at the end of the output. The statistics include the track’s total size, duration, approximate bitrate and number of packets/frames.
    • mkvinfo: bug fix: The hexdump mode was accessing invalid memory if the data to dump was shorter than 16 bytes. It was also outputting the values as characters instead of hexadecimal numbers. Patch by ykar@list.ru. Fix for bug 591.
  • 2011-01-20 Moritz Bunkus <moritz@bunkus.org>
    • mmg: enhancement: The output file name extension is automatically set to ".mk3d" if the stereo mode parameter for any video track is changed to anything else than "mono" or the default value.
    • mmg: enhancement: Added ".mk3d" to the list of known file name extensions for Matroska files.
    • mkvmerge, mmg: enhancement: Updated the "stereo mode" parameter to match the current Matroska specifications.
  • 2010-12-26 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: enhancement: If mkvmerge encounters invalid UTF-8 strings in certain files or command line arguments then those strings will simply be cut short. Before mkvmerge was exiting with an error ("Invalid UTF-8 sequence encountered").
    • all: new feature: Added online update checks. The command line tools know a new parameter "–check-for-updates". mmg has a new menu entry ("Help" -> "Check for updates") and checks automatically when it starts, but at most once in 24 hours. Can be turned off in the preferences. This function requires libcurl and is not built if libcurl is not available.
  • 2010-12-22 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: bug fix: Avoid a crash due to invalid memory access if a source file name contains numbers (happens only if mkvtoolnix is built with MS Visual Studio). Fix for bug 585.
  • 2010-12-21 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: new feature: Added support for reading VP8 video from Ogg files. Implements bug 584.
    • mkvextract: enhancement: mkvextract will exit with an error if the user specifies track IDs that do not exist in the source file. This works in the "tracks" and "timecodes_v2" extraction modes. Fix for bug 583.
    • docs: mkvextract’s man page has been updated to match the program’s expected command line syntax for the "timecodes_v2" mode. Fix for bug 583.
    • 2010-12-20 Moritz Bunkus <moritz@bunkus.org>

    • build system: Fixed building the Qt version of mkvinfo’s GUI. Fix for bug 576.
    • mkvmerge, mmg: bug fix: Option files could not contain options that started with ‘#’ as they were interpreted as comment lines.
  • 2010-11-15 Moritz Bunkus <moritz@bunkus.org>
    • mkvmerge: new feature: The "default duration" header field is set for DTS audio tracks.
  • 2010-11-09 Moritz Bunkus <moritz@bunkus.org>
    • build system: mmg’s guide and its images are installed into the location given by configure’s "docdir" variable. Patch by Cristian Morales Vega (see AUTHORS).
  • 2010-11-07 Moritz Bunkus <moritz@bunkus.org>
    • all: Made the French translation selectable in all programs.
  • 2010-11-01 Moritz Bunkus <moritz@bunkus.org>
    • mmg: bug fix: On Mac OS X the application type is set to a foreground application preventing issues like the GUI never getting focus.