MKVToolnix - Aktuelle Version

    • 26.0.0 "In The Game"
      ## New features and enhancements

      * mkvmerge: chapter generation: if the name template given by
      `--generate-chapters-name-template` is empty, no names (`ChapterDisplay`
      master elements with `ChapterString`/`ChapterLanguage` children) will
      be generated for the chapter atoms. Part of the implementation of #2275.
      * mkvmerge: chapters: chapter names generated from MPLS files will now
      use the name template if one is set via
      `--generate-chapters-name-template`. Part of the implementation of
      * mkvmerge: mkvmerge will no longer abort with an error message if no
      audio, video and subtitle tracks should be multiplexed. This allows
      copying of chapters from non-chapter source files (e.g. Matroska or MP4
      * MKVToolNix GUI: the font size in the tool selector on the left will
      scale with the font size the user selects in the preferences.
      * MKVToolNix GUI: the GUI will no longer automatically resize the
      columns in tree and list views to match the content size. Instead it
      remembers and restores the widths set by the user. Implements #2353.
      * MKVToolNix GUI: multiplexer: the chapter name template will now be set
      automatically to the name template in the preferences' "chapter editor"
      section. Additionally the option `--generate-chapters-name-template …`
      will be passed to mkvmerge in situations when mkvmerge will generate
      chapters (either because automatic generation is enabled or if chapters
      are generated for MPLS playlists). Part of the implementation of #2275.
      * MKVToolNix GUI: chapter editor: if the chapter name template is empty,
      chapters will be generated without names. Part of the implementation of
      * MKVToolNix GUI: chapter editor: added an option to remove all chapter
      names to the "additional modifications" dialog. Part of the
      implementation of #2275.

      ## Bug fixes
      * mkvmerge: Matroska reader: fixed wrong timestamps when appending
      Matroska files where the second Matroska file's first timestamp is
      bigger than 0. Fixes #2345.
      * mkvmerge: MP4 reader: fixed division by zero errors during file identification if the timescale is 0 in the `MVHD` atom.
      * mkvmerge: Windows Television DVR files are now recognized as an
      unsupported file type. This prevents mis-detection as MPEG-2 with an
      accompanying flood of error messages. Fixes #2347.
      * MKVToolNix GUI: info tool: under certain circumstances "cues" were
      shown at the wrong level (inside the previous master element instead of
      on level 1). Fixes #2361.
      * MKVToolNix GUI: job queue: fixed invalid memory handling and
      consequent crashes when using the "edit in corresponding tool &
      remove from job queue" option if one of the files in that job contained
      attached files. Fixes #2368.

      ## Build system changes
      * An AppStream metadata file will be installed in `$prefix/share/metainfo`.
    • 27.0.0 "Metropolis"
      ## New features and enhancements

      * mkvmerge: chapters: the timestamps of chapters read from containers or
      from chapter files can be adjusted (multiplication and addition) with
      the new `--chapter-sync` option or using the special track ID `-2` for
      the existing `--sync` option. Part of the implementation of #2358.
      * MKVToolNix GUI: multiplexer: adjusted & added controls for
      mkvmerge's new feature of being able to adjust chapter timestamps. Part
      of the implementation of #2358.
      * MKVToolNix GUI: multiplexer: the GUI can now ask for confirmation when
      the user is about to create a file that won't contain audio tracks. It
      does this by default if at least one source file contains an audio
      track. Implements #2380.

      ## Bug fixes

      * mkvmerge: AC-3: dialog normalization gain removal was corrupting
      E-AC-3 frames irreversibly by writing checksums in places where they
      didn't belong. Additionally only the first E-AC-3 frame in a Matroska
      was processed but not additional dependent frames in the same block.
      Fixes #2386.
      * MKVToolNix GUI: fixed a leak of Windows font resources leading to a general slowdown and subsequent crash. Fixes #2372.
    • 28.0.0 "Voice In My Head"

      ## New features and enhancements

      * mkvmerge: AV1 parser: updated the code for the finalized AV1 bitstream specification. Part of the implementation of #2261.
      * mkvmerge: AV1 packetizer: updated the code for the finalized
      AV1-in-Matroska & WebM mapping specification. Part of the
      implementation of #2261.
      * mkvmerge: AV1 support: the `--engage enable_av1` option has been removed again. Part of the implementation of #2261.
      * mkvmerge: MP4 reader: added support for AV1. Part of the implementation of #2261.
      * mkvmerge: DTS: implemented dialog normalization gain removal for extension substreams. Implements #2377.
      * mkvmerge, mkvextract: simple text subtitles: added a workaround for
      simple text subtitle tracks that don't contain a duration. Implements
      * mkvextract: added support for extracting AV1 to IVF. Part of the implementation of #2261.
      * mkvextract: IVF extractor (AV1, VP8, VP9): precise values will be used
      for the frame rate numerator & denominator header fields for
      certain well-known values of the track's default duration.
      * mkvmerge: VP9: mkvmerge will now create codec private data according
      to the VP9 codec mapping described in the WebM specifications.
      Implements #2379.
      * MKVToolNix GUI: automatic scaling for high DPI displays is activated
      if the GUI is compiled with Qt 5.6.0. Fixes #1996 and #2383.
      * MKVToolNix GUI: added a menu item ("Help" "System information") for
      displaying information about the system MKVToolNix is running on in
      order to make debugging easier.
      * MKVToolNix GUI: multiplexer, header editor: the user can enter a list
      of predefined track names in the preferences. She can later select from
      them in "track name" combo box. Implements #2230.

      ## Bug fixes

      * mkvmerge: JSON identification: fixed a bug when removing invalid UTF-8
      data from strings before they're output as JSON. Fixes #2398.
      * mkvmerge: MP4/QuickTime reader: fixed handling of PCM audio with FourCC `in24`. Fixes #2391.
      * mkvmerge: MPEG transport stream reader, teletext subtitles: the
      decision whether or not to keep frames around in order to potentially
      merge them with the following frame is made sooner. That avoids problems
      if there are large gaps between teletext subtitle frames which could
      lead to frames being interleaved too late. Fixes #2393.
      * mkvextract: IVF extractor (AV1, VP8, VP8): the frame rate header
      fields weren't clamped to 16 bits properly causing wrong frame rates to
      be written in certain situations.
      * mkvpropedit, MKVToolNix GUI's header editor: fixed file corruption
      when a one-byte space must be covered with a new EBML void element but
      all surrounding elements have a "size length" field that's eight bytes
      long already. Fixes #2406.
    • 28.1.0 "Morning Child"

      ## Bug fixes

      * mkvmerge: AV1 parser: fixed an error in the sequence header parser if
      neither the `reduced_still_picture_header` nor the
      `frame_id_numbers_present_flag` is set. Part of the fix for #2410.
      * mkvmerge: AV1 parser: when creating the `av1C` structure for the Codec
      Private element the sequence header OBU wasn't copied completely: its
      common data (type field & OBU size among others) was missing. Part
      of the fix for #2410.
      * mkvmerge: Matroska reader, AV1: mkvmerge will try to re-create the
      `av1C` data stored in Codec Private when reading AV1 from Matroska or
      WebM files created by mkvmerge v28.0.0. Part of the fix for #2410.
      * MKVToolNix GUI: info tool: the tool will no longer stop scanning
      elements when an EBML Void element is found after the first Cluster
      element. Fixes #2413.
    • 28.2.0 "The Awakening"
      ## Bug fixes

      * mkvmerge, mkvinfo, mkvextract, mkvpropedit, MKVToolNix GUI's info tool
      & chapter editor: fixed a case of memory being accessed after it
      had been freed earlier. This can be triggered by specially crafted
      Matroska files and lead to arbitrary code execution. The vulnerability
      was reported as Cisco TALOS 2018-0694 on 2018-10-25.
    • 29.0.0 "Like It Or Not"
      ## Important notes

      * The string formatting library used was switched from `boost::format`
      to [`fmt`]( See the section "Build system changes"
      for details.

      ## New features and enhancements

      * MKVToolNix GUI: added an option in the preferences for disabling automatic scaling for high DPI displays. Implements #2415.
      * MKVToolNix GUI: the GUI will now prevent the system from going to
      sleep while the job queue is running. This feature is implemented for
      macOS, Windows and Linux/Unix systems where the
      `org.freedesktop.login1.Manager` D-Bus interface is available.
      Implements #2411.

      ## Bug fixes

      * mkvmerge: chapter generation: the start timestamps of chapters
      generated in intervals was wrong for files whose smallest video
      timestamp was bigger than 0. Fixes #2432.
      * mkvmerge: MP4 reader: fixed handling of atoms whose size exceeds the parent atom's size. Fixes #2431.
      * mkvmerge, MKVToolNix GUI's chapter editor: the chapter name template
      will now also be used when reading Ogg-style chapter files with empty
      chapter names. Fixes #2441.
      * mkvextract: AAC: mkvextract will now write the program config element
      (PCE) before the first AAC raw data packet if the PCE is present in the
      `AudioSpecificConfig` structure in the `Codec Private` Matroska element.
      The PCE carries vital information about the number of channels and is
      required in certain cases. Fixes #2205 and #2433.
      * mkvpropedit, MKVToolNix GUI's header editor: in situations when a
      one-byte space must be covered by a new EBML void element the following
      element must be moved up instead. If that moved element is a cluster,
      the corresponding cue entries will now be updated to reflect the
      cluster's new position. Fixes #2408.
      * MKVToolNix GUI: Windows: the application manifest is now included properly so that Windows actually recognizes it. See #2415.

      ## Build system changes

      * Qt's D-Bus implementation is now required for building on systems other than macOS and Windows,
      * The `boost::format` library is not used anymore.
      * The [`fmt` library]( is now required. Versions 3
      and newer are supported. As not all Linux distributions include packages
      for the library, its release 5.2.1 comes bundled with MKVToolNix. The
      `configure` script will check for a system version of the library and
      use it if present and recent enough. Otherwise it will fall back to the
      bundled version and link that statically.
    • 30.0.0 "Interstellar"
      ## New features and enhancements

      * mkvextract: WAV extractor: mkvextract will now write W64 files instead of WAV files if the file name extension is `.w64` or if the final file size is bigger than 4 GB, the file size limit for WAV files. Implements #2458.
      * MKVToolNix GUI: multiplexer: a new button was added next to the "destination file" controls. Clicking it shows a menu with the ten most recently used output directories. Selecting one of them will change the destination file to the selected directory keeping the file name. Implements #2468.
      * MKVToolNix GUI: multiplexer (preferences): the ten most recently used values for the "relative output directory" and "fixed output directory" settings are now saved. The corresponding settings have been changed into combo boxes allowing quick access to those recent values.
      * MKVToolNix GUI: multiplexer (preferences): the predefined split sizes and durations can now be customized in the preferences.
      * MKVToolNix GUI: chapter editor: added an option in the "Chapter editor" menu for appending chapters from an existing file to the currently open editor tab. Part of the implementation of #2439.
      * MKVToolNix GUI: chapter editor: added an action in the context menu for copying the selected entry and all of its children to another open editor tab. Part of the implementation of #2439.

      ## Bug fixes

      * mkvmerge: all files opened for writing will now be flushed once before they're closed. This ensures the operating system actually writes all cached data to disk preventing data loss in certain situations such as power outages or buggy drivers in combination with suspending the computer. Fixes #2469.
      * mkvmerge: AAC: under certain conditions 8 channel audio files were taken for 7 channel ones.
      * MKVToolNix GUI: multiplexer: removing a file added as an "additional part" will no longer cause a crash. Fixes #2461.
      * source code: fixed compilation with Boost 1.69.0 after API-breaking change to the `boost::tribool` class. Fixes #2460.
    • 30.1.0 "Forever And More"
      ## Bug fixes

      * build system: fixed building on non-UTF-8 locales. Fixes #2474.
      * MKVToolNix GUI: multiplexer: implemented a workaround for drag & drop not working on macOS with Qt 5.12 due to a bug in Qt 5.12. Fixes #2472.
      * MKVToolNix GUI: chapter editor: when opening a Matroska/WebM file that doesn't contain chapters and later saving chapters back to them, the editor was truncating the file down to a couple of KB in size. This was a regression introduced with the implementation of #2439 in v30.0.0 Fixes #2476.
    • 31.0.0 "Dolores In A Shoestand"

      ## New features and enhancements

      * all programs: added a new option `--abort-on-warnings` that will cause the program to abort after it has emitted the first warning, similar to how it aborts after the first error. Implements #2493.
      * mkvmerge, mkvextract: when closing files that were opened for writing, cached data will not be flushed to storage automatically anymore. This reverts the workaround implemented for #2469. A new option was added to both programs (`--flush-on-close`) that re-enables flushing for people who are affected by data loss such as described in #2469.
      The reason is that automatic flushing causes long delays in processing queues when the output by mkvmerge/mkvextract isn't the final product but just an intermediate result to be processed further.
      Implements #2480.
      * MKVToolNix GUI: multiplexer: the dialog previewing different character sets for text subtitles will now keep the position of the displayed text when switching between character sets. Implements #2489.

      ## Bug fixes
      * mkvmerge: AVI reader: using DV type 1 AVIs will now result in an unsupported file type being reported (as the underlying AVI library doesn't support them) instead of crashing mkvmerge. Fixes #2491.
      * mkvmerge: HEVC: the height of interlaced streams will now be set correctly to the height of the full frame instead of the height of a single interlaced field. Fixes #2446.
      * mkvmerge: MP4 reader: edit lists consisting solely of elements that mkvmerge doesn't support (such as dwells) are simply ignored. Before no data was read for such tracks at all. Fixes #2487.
      * mkvmerge: text subtitles: entries with an explicit duration of 0ms will now be handled correctly: the 0ms duration will be stored in Matroska instead of the difference between the current and the following entry. Fixes #2490.
      * MKVToolNix GUI: multiplexer, chapter editor: fixed drag & drop handling with Qt 5.12.0 and newer. Fixes #2472.
      * MKVToolNix GUI: multiplexer: the GUI did not clean up temporary files created when running `mkvmerge`. Fixes #2499.

      ## Build system changes
      * Qt 5.4.0 or newer has required (up from 5.3.0) since version 30.0.0; I just forgot to include this entry.
    • 32.0.0 "Astral Progressions"

      ## New features and enhancements

      * mkvinfo: when sizes are output the size of the element's data portion is output in addition to the element's total size.
      * MKVToolNix GUI: info tool: the element's data portion is shown as an extra column.
      * MKVToolNix GUI: multiplexer: added column "Delay" to the track list containing the additional delay to apply during multiplexing. Implements #2506.

      ## Bug fixes
      * all: fixed handling of Unicode code points > U+FFFF. Fixes #2516.
      * mkvmerge: Windows: mkvmerge was crashing with an exception when trying to identify certain files that can be used on Blu-rays (such as MPEG transport streams of MPLS play list files) and when the file name was given as a UNC path (e.g. `\servernamesharenamepathtofile.m2ts`). The GUI emitted errors such as "the JSON output could not be parsed" in that case. Fixes #2507.
      * MKVToolNix GUI: the portable mode wasn't detected correctly when the current working directory the GUI was started from wasn't the directory the GUI's executable file was located it. Examples for when this is the case are Windows' "send to" or "open with" functions. Fixes #2501.
      * MKVToolNix GUI: multiplexer: using button to change the current destination directory to one of the recently used ones did not update the file name according to the "make file name unique" setting. Part of the fix of #2519.
      * MKVToolNix GUI: multiplexer: the function "set destination file name from selected file's name" will now only change the destination file's name but not its path. Part of the fix of #2519.

      ## Build system changes
      * libEBML v1.3.7 and libMatroska 1.5.0 are now required as they fix their handling of Unicode code points > U+FFFF (see #2516).
    • 33.0.0 "A Little Bit of Madness"
      ## Bug fixes

      * mkvinfo: when using the `--size` option, mkvinfo will now report the correctly if an element has an unknown size. Part of the fix of #2530.
      * MKVToolNix GUI: info tool: clusters with an unknown size will now be read and displayed correctly. Part of the fix of #2530.
      * MKVToolNix GUI: multiplexer: Windows: trying to open Blu-ray index or playlist files failed when the path to the files contained symbolic links (e.g. when mounting a drive in a sub-folder via Windows' disk management utility). Fixes #2522.
      * MKVToolNix GUI: multiplexer: if a destination file names ends with a number in parenthesis (e.g. a year such as "(2017)"), that number will not be stripped anymore during the process of ensuring the destination file name is unique. Only those suffixes added automatically in prior attempts to make the file name unique will be removed. Fixes #2521.
      * MKVToolNix GUI: multiplexer: Windows: the GUI will let the user change the drive letter part of the destination file name freely again and only verify its validity right before starting to mux/adding to the job queue. Before it tried to force that into something valid, often resulting in unintentional paths (such as "C:\users\…\DC\files\…"). Fixes #2527.
    • 34.0.0 "Sight and Seen"
      Bug fixes

      * mkvmerge: all subtitle frames are now treated as key frames in order to fix wrong data in source files. Fixes #2541.
      * mkvmerge: AV1: fixed frame timestamp calculation when reading bitstreams that lack timing information from IVF files. Fixes #2553.
      * mkvmerge: Matroska reader: fixed an infinite loop that could happen with large video frames and applied timestamp files due to too much data being buffered at the wrong time. Fixes #2550.
    • 35.0.0 "All The Love In The World"
      ## New features and enhancements
      * mkvmerge: JSON identification: the "codec name" track property will be output as `codec_name`. The JSON schema has been bumped to v12 for this change.
      * MKVToolNix GUI: job queue: added a new type of action to execute after job completion: deleting source files for of multiplexer jobs. As this is a destructive operation, the action is disabled by default. Implements #869 and #2570.

      ## Bug fixes
      * mkvmerge: the "codec name" track property wasn't copied from Matroska files. Fixes #2566.
      * MKVToolNix GUI: multiplexer: Windows: clearing the destination file name will reset the tab name to "<No destination file>" again. Fixes #2571.
      * MKVToolNix GUI: multiplexer: the file types were not re-translated if the UI language was changed. Fixes #2572.
    • 36.0.0 "Is That Jazz?"

      ## New features and enhancements
      * mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and H.265/HEVC tracks whose pixel dimensions differ. Implements #2582.

      ## Bug fixes
      * source code: fixed building with Boost 1.71.0. Fixes #2599.
      * all: fixed the spelling of the H.264 & H.265 codec names.
      * mkvmerge: Blu-ray MPLS handling: mkvmerge will now find corresponding M2TS files even if the `clip_codec_identifier` playlist item field is not set to `M2TS` in the MPLS file. Fixes #2601.
      * mkvmerge: fixed handling of text files that use both DOS-style and Unix-style line endings resulting in problems such as text subtitle files not being parsed correctly. Fixes #2594.
    • 37.0.0 "Leave It"
      ## New features and enhancements

      * MKVToolNix GUI: the list of often used languages now contains those from Wikipedia's "List of languages by native speakers" by default. Also by default only those languages will be shown in the language drop-down boxes.

      ## Bug fixes
      * MKVToolNix GUI: multiplexer: fixed a bug in the "make destination file names unique" logic that caused an existing number-in-parenthesis at the end of the file base name to be removed in certain situations (e.g. when the first added file was named `m (3).mkv` and both `m (3) (1).mkv` and `m (3) (2).mkv` existed already, the GUI was suddenly use `m.mkv` instead of `m (3) (3).mkv`).
      * MKVToolNix GUI: on Windows the GUI is built with a slightly older version of the Qt library again (5.12.4). The Qt version used in release v36.0.0, v5.13.0, lead to crashes when doing certain things such as selecting multiple tracks in the multiplexer. Fixes #2605 and #26008.