MKVToolnix

Software Screenshot:
MKVToolnix
Software Details:
Version: 25.0.0 updated
Upload Date: 17 Aug 18
Developer: Moritz Bunkus
Distribution Type: Freeware
Downloads: 245

Rating: 3.3/5 (Total Votes: 4)

MKVToolNix is an open source set of command-line and graphical utilities that empower users to extract streams from MKV files, display information about MKV files, merge several MKV streams into one, and split Matroska media files. The resulting files from MKVToolNix can be played back with various media players on Linux/UNIX, or with the Matroska Direct Show filters under Windows operating systems.

Comprises of several command-line and graphical tools

The main tools are mkvmerge, mkvextract, mkvinfo, mmg and mkvpropedit. While the mkvmerge component can be used for joining two or more multimedia streams into a single Matroska file, the mkvextract tool will split MKV files into separate streams.

Supports a wide range of audio and subtitle formats

In addition, the mkvextract program can be used to extract audio, subtitle and video tracks, chapters, tags, CUE sheets, attachments and timecodes from Matroska files. At the moment, it supports the following track types: H.264/AVC, RealVideo, Theora, VP8/VP9, MP2, MP3, AC3, raw PCM, AAC, OGG Vorbis, TrueAudio, ALAC, FLAC, WavPack, Opus, SSA, ASS, Kate, VobSub, and USF.

Edit the properties of MKV files or view detailed information

The mkvinfo program is capable of displaying detailed information about all the elements that are included in a Matroska file. It outputs a list of tracks and provides information about the codecs used in them.

Advanced users can use the mkvpropedit tool to edit the properties of a MKV file without a complete remux. There’s also a GUI front-end for the mkvextract tool, called mmg, designed to used for editing a chapters and headers.

Supported operating systems

MKVToolNix is a platform-independent project that supports Linux (Gentoo, Arch Linux, CentOS, Red Hat Enterprise Linux, Fedora, Debian, Ubuntu, Mandriva, openSUSE, Slackware, Zenwalk), BSD (FreeBSD, NetBSD), Mac OS X and Microsoft Windows operating systems.

Bottom line

The truth is that you won’t find a better application for working with MKV files under a Linux-based operating system. It does for Matroska files what the OGMtools application does for OGM files.

What is new in this release:

  • New features and enhancements:
  • mkvmerge: SRT/ASS/SSA text subtitles: for files for which no encoding has
  • been specified, mkvmerge will try UTF-8 first before falling back to the
  • system's default encoding. Part of the implementation of #2246.
  • mkvmerge: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if
  • invalid 8-bit characters are encountered outside valid multi-byte UTF-8
  • sequences. Part of the implementation of #2246.
  • mkvmerge: Matroska & MPEG transport stream readers: the encoding of text
  • subtitles read from Matroska files can now be changed with the
  • --sub-charset parameter.
  • Linux: starting with release 25 an AppImage will be provided which should
  • run on any Linux distribution released around the time of CentOS 7/Ubuntu
  • 14.04 or later.
  • macOS: translations: updated the build.sh script to build libiconv and a
  • complete gettext. Together with an additional fix to how translation files
  • are located, MKVToolNix can now use all interface languages on macOS,
  • too. Fixes #2110, #2307, #2323.
  • Bug fixes:
  • mkvmerge: AVC/h.264: fixed file identification failing for certain
  • elementary streams due to internal buffers not being cleared properly. Fixes
  • #2325.
  • mkvmerge: HEVC/h.265: fixed file identification failing for certain
  • elementary streams due to internal buffers not being cleared properly. This
  • is the HEVC analog to what was fixed for AVC in #2325.
  • mkvmerge: MLP code: fixed various issues preventing MLP from being parsed
  • correctly. Fixes #2326.
  • mkvmerge: TrueHD/MLP packetizer; dialog volume normalization removal isn't
  • attempted if the track is an MLP track as the operation is only supported
  • for TrueHD, not MLP.
  • mkvmerge: MPEG TS reader: when reading MPLS mkvmerge will now compare the
  • MPLS's start and end timestamps against the transport stream's PTS instead
  • of its DTS. Otherwise the first key frame of a video track might be dropped
  • if it isn't the first in presentation order. Fixes #2321.
  • mkvmerge: JSON identification: mkvmerge will ensure that all strings passed
  • to the JSON output modules are valid UTF-8 encoded strings by replacing
  • invalid bytes with placeholder characters. This avoids the JSON library
  • throwing an exception and mkvmerge aborting on such data. Fixes #2327.
  • mkvmerge: audio packetizers: mkvmerge will now keep discard padding values
  • if they're present for packets read from Matroska files. Fixes #2296.
  • mkvmerge: Ogg Opus reader: packet timestamps aren't calculated by summing up
  • the duration of all packets starting with timestamp 0 anymore. Instead the
  • algorithm is based on the Ogg page's granule position and which packet
  • number is currently timestamped (special handling for the first and last
  • packets in the stream).
  • This fixes the first timestamp if the first Ogg packet's granule position
  • is larger than the number of samples in the first packet (= if the first
  • sample's timestamp is bigger than 0). mkvmerge will keep those offsets now
  • and inserts "discard padding" only where it's actually needed.
  • It also improves handling of invalid files where the first Ogg packet's
  • granule position is smaller than the number of samples in the first packet
  • (= the first sample's timestamp is smaller than 0). mkvmerge will now
  • shift all timestamps up to 0 in such a case instead of inserting "discard
  • padding" elements all over the place.
  • mkvmerge will no longer insert "discard padding" elements if the
  • difference between a) the calculated number of samples in the packet
  • according to the granule position and b) the actual number of samples as
  • calculated from the bitstream is one sample or less and if the packet
  • isn't the last one in the stream. This circumvents certain rounding
  • errors.
  • The timestamp of the first packet after a gap in the middle of the stream
  • is now calculated based on the Ogg page the packet belongs to, and not
  • based on the timestamps before the gap.
  • Fixes #2280.
  • mkvmerge: complete rewrite of the progress handling. It's now based upon the
  • total size of all source files and the current position within them instead
  • of the number of frames/blocks to be processed. This simplifies calculation
  • when appending files and fixes rare cases of when progress report was
  • obvious wrong (e.g. stuck at 0% right until the end). Fixes #2150 and #2330.
  • MKVToolNix GUI: header editor: non-mandatory elements couldn't be removed
  • anymore due to a regression while fixing #2320. They can now be removed
  • again. Fixes #2322.

What is new in version 24.0.0:

  • New features and enhancements:
  • mkvmerge: MP4 reader: improved the detection of edit lists consisting of two identical entries, each spanning the file's duration as given in the movie header atom. The second entry is ignored in such cases. See #2306.
  • mkvmerge: JSON identification: the "display unit" video track property is now reported as `display_unit`. The JSON schema has been bumped to v11 for this change.
  • mkvmerge, mkvextract: AVC/h.264: empty NALUs will now be removed.
  • mkvextract: VobSub extraction: empty SPU packets will now be dropped during extraction as other tools such as MP4Box cannot handle them correctly. Implements #2293.
  • Bug fixes:
  • mkvmerge: E-AC-3 parser: fixed determining the number of channels for streams that contain an AC-3 core with dependent E-AC-3 frames. Fixes #2283.
  • mkvmerge: Matroska reader: fixed mkvmerge buffering the whole file if a video track is multiplexed that consists of only one or a few frames. Fixes #2304.
  • mkvmerge: the "display unit" video track property will now be kept if it is set in the source file. Fixes #2317.
  • MKVToolNix GUI: multiplexer: when scanning playlists, all playlists were offered for selection regardless of the value of the "minimum playlist duration" setting. Fixes #2299.
  • MKVToolNix GUI: multiplexer: deriving track languages from file names: the regular sub-expressions for ISO 639-1 codes could match on empty strings, too, causing matches in wrong places and hence no language being recognized in certain situations. Fixes #2298.
  • MKVToolNix GUI: header editor: fixed a crash when saving the file fails (e.g. because it isn't writable). Fixes #2319.
  • MKVToolNix GUI: header editor: the editor was wrongfully claiming that mandatory elements with default values cannot be removed in the "status" text. Fixes #2320.
  • MKVToolNix GUI: preferences: on macOS & Linux the setting "enable copying tracks by their type" wasn't restored on program start. Fixes #2297.
  • ## Other changes:
  • Niels Lohmann's JSON library: the bundled version has been updated from v1.1.0 (git revision 54d3cab) to v3.1.1 (git revision g183390c1).
  • pugixml library: the bundled version has been updated from v1.8 to v1.9 (git revision e584ea3).

What is new in version :

  • Important notes:
  • The MKVToolNix project now contains a Code of Conduct.
  • The MKVToolNix project's source code repository, bug tracker and wiki have been moved to GitLab.
  • New features and enhancements:
  • mkvmerge: splitting by duration, by timestamps or by timestamp-based parts: mkvmerge will now consider the first key frame within 1ms of the requested value to be eligible for splitting.
  • MKVToolNix GUI: the GUI will now save and restore the widths of columns in tree and list views. Implements #2057.
  • MKVToolNix GUI: header editor: when closing or reloading a modified file, the GUI will now focus the first element that's been modified before asking the user for confirmation regarding discarding unsaved changes.
  • Bug fixes:
  • mkvmerge: fixed reading text files encoded in UTF-16 order UTF-32 that have different forms of line endings (new lines, carriage returns or a mix of both). Fixes #2160.
  • mkvmerge: MP4 reader: fixed mkvmerge's interpretation of edit list entries with segment_duration == 0 when there's more than one edit list entry. In that case mkvmerge was reading the whole content more than once. Fixes #2152.
  • mkvmerge, GUI's multiplexer: MIME types: added the font top-level media types from RFC 8081. This means that the following new MIME types for fonts can be used: font/ttf, font/otf, font/woff and font/woff2.
  • mkvmerge: MPEG transport stream reader: fixed slow speed on Windows due to lack of buffering.
  • mkvextract: fixed slow track extraction speed on Windows due to lack of buffering. Fixes #2166.
  • MKVToolNix GUI: multiplexer: changing the "subtitle/chapter character set" drop-down was ignored when the selected track was a chapter track. Fixes #2165.
  • MKVToolNix GUI: multiplexer: once a "subtitle/chapter character set" was set for a track it couldn't be changed back to the empty entry (= auto-detection) anymore.
  • MKVToolNix GUI: header editor: fixed re-translating several displayed strings when the GUI language is changed if the language the GUI was started with was not English. Fixes #2159.
  • MKVToolNix GUI: header editor: whenever a file did not contain a "date" element in its segment information section, the GUI would erroneously ask the user to confirm discarding unsaved changes when closing or reloading the tab. Fixes #2167.
  • MKVToolNix GUI: job queue: jobs are now saved when their status changes in addition to when the program exits. Fixes #2168.

What is new in version 18.0.0:

  • New features and enhancements:
  • build system: when building with clang v3.8.0 or newer, configure will no longer restrict optimization flags to -O1 and use -O3 again (older versions of clang suffered from excessive memory usage with higher optimization levels).
  • build system: when building with mingw 7.2.0 or newer, configure will no longer restrict optimization flags to -O2 and use -O3 again (older versions of mingw suffered from bugs such as segmentation faults with higher optimization levels).
  • build system: stack protection is enabled when building with clang 3.5.0 or newer on all platforms.
  • mkvmerge: AVC & HEVC ES parsers: performance improvements by copying much less memory around.
  • mkvmerge: tags: reintroduced a workaround for non-compliant files with tags that do not contain the mandatory SimpleTag element. This workaround was removed during code refactoring in release v15.0.0.
  • GUI: multiplexer: the "AAC is SBR/HE-AAC/AAC+" checkbox in the "audio properties" section will be disabled if the functionality is not implemented for the selected track's codec & container.
  • GUI: multiplexer: the "reduce to core" checkbox in the "audio properties" section will be disabled if the functionality is not implemented for the selected track's codec. See #2134.
  • Bug fixes:
  • mkvmerge: AAC ADTS parser: fixed interpretation of the channel_configuration header element for ADTS files that do not contain a program configuration element: value 7 means 7.1 channels. Fixes #2151.
  • mkvmerge: Matroska identification: the date_local and date_utc attributes will only be output if the identified Matroska file actually contains the "date" header field.
  • mkvmerge: WebVTT: mkvmerge did not recognize timestamp lines if the hours components were absent. Fixes #2139.
  • mkvpropedit, GUI's header editor: the date header field won't be added automatically anymore whenever the segment info section is edited and the date element is either deleted or not present in the first place. Fixes #2143.

What is new in version 15.0.0:

  • Important notes:
  • mkvmerge, mkvpropedit, GUI's header and chapter editors: the programs will no longer add most missing Matroska elements that are mandatory but have a default value in the Matroska specification (e.g. the TagLanguage element with a value of und if it isn't present in its SimpleTag parent). Due to this change libEBML v1.3.5 is now required.
  • New features and enhancements:
  • MKVToolNix GUI: multiplex tool: added a new entry to the "source files" context menu labeled "Set destination file name from selected file's name". It will force the GUI to consider the selected file to be the reference for automatically setting the file name, no matter which file was originally added as the first file. It will also force setting the destination file name once if automatic destination file name generation is turned off in the preferences. Implements part of #2058.
  • MKVToolNix GUI: multiplex tool: added an option in the preferences on "Multiplexer" -> "Output" labeled "Only use the first source file that contains a video track". If enabled, only source files containing video tracks will be used for setting the destination file name. Other files that are added are ignore. Implements the rest of #2058.
  • MKVToolNix GUI: header editor: added support for editing the video colour attributes. Implements the second half of #2038.
  • MKVToolNix GUI: header editor: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • MKVToolNix GUI: job queue: selected jobs can now be move up and down by pressing the Ctrl+Up and Ctrl+Down keys. Additionally, push buttons to move them up & down are shown if the corresponding option is enabled in the preferences. Implements #2060.
  • mkvmerge: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • mkvinfo: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • mkvpropedit: added support for editing the video colour attributes. Implements one half of #2038.
  • mkvpropedit: added support for the "video projection" track header attributes. Part of the implementation of #2064.
  • Bug fixes:
  • all: selecting the program's language (e.g. via the --ui-language command-line option or via the GUI's preferences) did not work on Linux & Unix if the LANGUAGE environment variable was set and didn't include the desired language. Fixes #2070.
  • MKVToolNix GUI: removed the keyboard shortcuts for switching between the different tools (e.g. Ctrl+Alt+1 for the multiplexer). They overlapped with basic functionality on keyboards that use an AltGr key, e.g. German ones, where AltGr+7 emits {. As AltGr+key is implemented as Ctrl+Alt+key under the hood, this means that AltGr+7 is really Ctrl+Alt+7 which the GUI now took to mean "switch to the job queue" instead of "insert {". Fixes #2056.
  • MKVToolNix GUI: header editor: after saving the file the GUI wasn't updating its internal file modification timestamp. That lead to the GUI wrongfully claiming that the file had been modified externally when the user wanted to save the file once more, requiring a reload of the file losing all modifications made since saving the first time.
  • mkvmerge: DTS handling: some source files provide timestamps for audio tracks only once every n audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number n - 1 (the second audio timestamp read from the source file was used one output frame too early). Fixes #2071.
  • mkvinfo: fixed a null pointer dereference if an EbmlBinary element's data pointer is a null pointer. Fixes #2072.
  • Build system changes:
  • configure: added option --disable-update-check. If given, the code checking online for available updates will be disabled. The update check is enabled and included in the GUI by default.
  • libEBML v1.3.5 is now required.
  • Other changes:
  • mkvmerge: the option --colour-matrix has been renamed to --colour-matrix-coefficients in order to match the specification more closely. The old option name will continue to be recognized as well.

What is new in version 9.9.0:

  • New features and enhancements:
  • GUI: chapter editor: added a character set selection in the preferences for text files. If a character set is selected there, it will be used instead of asking the user when opening text chapter files. Implements #1874.
  • GUI: multiplexer: added a column "character set" to the "tracks, chapters and tags" list view showing the currently selected character set for that track. Implements #1873.
  • mkvmerge: added an -engage option "all_i_slices_are_key_frames" for treating all I slices of an h.264/AVC stream as key frames in pathological streams that lack real key frames. Implements #1876.
  • GUI: running programs after jobs: added a new variable for the directory the MKVToolNix GUI executable is located in.
  • mkvmerge: DVB subtitle tracks whose CodecPrivate data is only four bytes long will now be fixed up to the proper five bytes by adding the subtitling type byte.
  • mkvmerge: MP4 reader: "ctts" version 1 atoms are now supported.
  • Bug fixes:
  • mkvmerge: AC-3 handling: some source files provide timestamps for audio tracks only once every n audio frames. In such situations mkvmerge was buffering too much data resulting in a single gap in the timestamps of one frame duration after frame number n - 1 (the second audio timestamp read from the source file was used one output frame too early). Fixes #1864.
  • mkvmerge: MP4 reader: mkvmerge was only reading a small part of MP4 DASH files where the first "moov" "mdat" atoms occur before the first "moof" atom. This is part of the fix for #1867.
  • mkvmerge: MP4 reader: edit list ("edts" atoms) that are part of the "moof" atoms used in MP4 DASH files weren't parsed. Instead the edit lists from the main track headers inside the "moov" atom were used. This is part of the fix for #1867.
  • mkvmerge: MP4 reader: when an MP4 DASH file contained both normal chunk offset table ("stco"/"co64" atoms) in their regular "moov" atoms, a sample-to-chunk table ("stsc" atom) whose last entry had a "samples per chunk" count greater than 1 and DASH "trun" atoms, then mkvmerge was calculating wrong positions the frame content. This is part of the fix for #1867.
  • mkvmerge: MP4 reader: mkvmerge couldn't deal with the key frame index table having duplicate entries. The result was that only key frames up to and including the first duplicate entry were marked as key frames in the output file. All other frames weren't, even though some of them were referenced from the key frame table after the first duplicate entry. This is part of the fix for #1867.
  • mkvmerge: MP4 reader: when an MP4 file contained more than one copy of the "moov" atom (the track headers etc.), mkvmerge was parsing them all adding tracks multiple times. Fix for #1877.
  • mkvmerge: MP4 reader: fixed an integer overflow during the timestamp calculation leading to files with wrong timestamps. Such files could not be played back properly by most players. Fixes #1883.
  • mkvmerge: MPEG TS reader: if the PMT lists a DVBSUB track, mkvmerge will now recognize it without having to find a packet for it within the probed range.
  • mkvmerge: splitting by parts (both the "timestamps" and the "frames" variants): fixed the calculation of track statistics tags. When calculating the duration the skipped portions weren't taken into account leading to a too-high duration. As a consequence the BPS tag (bits per second) was wrong, too. Fixes #1885.
  • mkvmerge: reading files with DVB/HDMV TextSV subtitle tracks with invalid CodecPrivate caused mkvmerge to abort with an error from boost::format about the format string not having enough arguments. Fixes #1894.
  • mkvmerge: fixed misdetection of certain AC-3 files as MP3 files which led to an error message that "the demultiplexer could not be initialized".
  • mkvmerge: fixed huge memory consumption when appending big Matroska files with sparse tracks (e.g. forced subtitle tracks). The Matroska reader will now queue at most 128 MB of data. Fixes #1893.
  • mkvmerge: MP4 reader: the timestamps of all multiplexed tracks will now be 0-based properly.
  • mkvmerge: MP4 reader: the DTS-to-PTS offsets given by the "ctts" atoms are now applied for all tracks containing a "ctts" atom, not just h.264 & h.265 tracks.
  • Build system changes:
  • Up to and including release 9.8.0 the man pages and their translations came pre-built and bundled with the source code. Those pre-built files have now been removed and must be built during the build process. Therefore the tool "xsltproc" and the DocBook XSL stylesheets for man pages are now required dependencies. Additionally the tool "po4a" must be installed for the translated man pages to be built and installed, though this is optional. In order to facilitate finding the new requirements new options have been added to confiure: "-with-xsltproc=prog", "-with-docbook-xsl-root=dir", "-with-po4a=prog" and "-with-po4a-translate=prog.
  • pugixml detection will be attempted via "pkg-config" first. If that fails, "configure" will fall back to the previous method of trying just to compile and link a test program with the standard include and library locations. Implements #1891.

What is new in version 9.8.0:

  • Important notes:
  • build system: the included version of the "drake" build tool has been removed. Since Ruby 2.1 rake has supported parallel builds, too. The MKVToolNix build system has been adjusted to enable parallel builds by default.
  • New features and enhancements:
  • mkvmerge: VobSub in Matroska: mkvmerge will now create and use a default index for VobSub tracks read from Matroska files that are missing their CodecPrivate element (which normally contains said index). Implements #1854.
  • GUI: added checks for several common problems with the installation. These checks will be executed when the GUI starts, and any problems will be reported to the user.
  • mkvmerge: added the ISO 639-2 language codes "qaa" and "qad" (both are titled "reserved for local use") as both are used often in France. See #1848 for more information.
  • mkvmerge: the JSON identification result now includes a track's codec delay if set (only for Matroska source files). The JSON schema version has been bumped to 6.
  • mkvmerge: MPEG TS: added a workaround for files where the subtitle packets are multiplexed properly, but where their timestamps are way off from the audio and video timestamps. Implements #1841.
  • mkvmerge: added support for Digital Video Broadcasting (DVB) subtitles (CodecID `S_DVBSUB`). They can be read from MPEG transport streams and from Matroska files. Implements #1843.
  • Bug fixes:
  • mkvmerge: MP4 reader: when an MP4 file contained fewer entries for timestamps than frames (which they never should), mkvmerge would use 0 as the timestamp for all the other frames. This resulted in effects such as the last frame of an output file having a timestamp of 0 and in split files having a much longer duration than they should have. Fixes #1847.
  • GUI: the cache cleanup process that's run automatically when the GUI starts no longer blocks file identification until it is finished. Additionally the process will only be run once per release of MKVToolNix. Fixes #1860.
  • GUI: certain failures during file identification that can be traced to broken installations (e.g. mkvmerge being too old) won't be stored in the cache anymore. Without this fix the GUI would still use the cached failed identification result even though the underlying might have already been fixed.
  • mkvmerge: fixed that the error message "not enough space on disk" was shown twice on some operating systems. Fixes #1850.
  • mkvmerge, Matroska: if a codec delay is set for a track in the input file, it is kept. Fixes #1849.
  • GUI: multiplexer: changing default values in the preferences (e.g. the default track language to set) did not affect files whose identification results had already been cached.
  • mkvmerge, MP4: fixed detection of MP3 audio when the object type ID in the ESDS signals MP2 and the track headers have invalid values for number of channels or sampling frequency. Fixes #1844.
  • Build system changes:
  • nlohman json-cpp: configure now looks for a system-wide installed version of the nlohmann json-cpp header-only library. If one is found, it is used; otherwise the included version will be used. Implements #1858.
  • If MKVToolNix is built with rake v10.0.0 or newer, its "multitask" feature will be turned on allowing automatic parallel builds.
  • CURL is no longer used by MKVToolNix and is therefore not required for building anymore.
  • Other changes:
  • GUI: the update check now uses Qt's networking classes instead of CURL.
  • The command line option "-check-for-updates" has been removed, even though the deprecation warning in release 9.7.0 stated that it would be removed in 2018.

What is new in version 9.7.1:

  • MKVToolNix GUI: multiplex tool bug fix: under certain circumstances the GUI was creating invalid JSON files when starting to multiplex resulting in an error message ("JSON option files must contain a JSON array consisting solely of JSON strings").
  • Deprecation warning: Several options and features are now deprecated and will be removed at the start of 2018. These are:
  • mkvmerge: the options "--identify-verbose", "identify-for-gui", "identify-for-mmg" and "identification-format verbose". Please convert existing users of these interfaces to use mkvmerge's JSON identification output which can be invoked with "-identification-format json -identify ...".
  • all command line tools: the old, proprietary format used for option files. Please convert users of this interface to the new JSON option file format introduced in this release.
  • all command line tools: the option "-check-for-updates" (the GUI will keep its online check for updates, though). There is and will be no equivalent interface in the tools themselves. Users of this interface can switch to retrieving the information about available updates directly from the MKVToolNix website. The information is available as JSON and XML files at the following URLs:
  • https://mkvtoolnix.download/latest-release.json.gz
  • https://mkvtoolnix.download/latest-release.xml.gz
  • mkvmerge: enhancement: added a new track property in JSON/verbose identification mode called "multiplexed_tracks". It's an array of track IDs that describe which of the tracks mkvmerge reports as separate ones were originally part of the same source track (e.g. TrueHD+AC-3 in a single track in MPEG transport streams). Implements #1835.
  • mkvmerge: added support for skipping APE(v2) tags in TTA files.
  • mkvextract: enhancement: added support for reporting progress in --gui-mode the same way mkvmerge does.
  • mkvmerge: bug fix: when using --track-order without specifying all tracks, the track numbers could end up in a way the user did not expect. Now mkvmerge will always assign track numbers for those tracks that are listed in -track-order first. The other tracks are assigned numbers afterwards. Fixes the second part of #1832.
  • mkvmerge: bug fix: when reading Matroska files the movie title was always taken from the first Matroska source file, even if that file didn't have a title set. Fixes one part of #1832.
  • all: new feature: all command line tools can now read JSON-formatted option files. Such a file's name must have an extension of ".json" (e.g. "mkvmerge @options.json"). Its content must be a valid JSON array consisting solely of JSON strings.
  • build system: building the GUI components of MKVToolNix now requires Qt v5.3.0 or newer.
  • MKVToolNix GUI: header editor & job output enhancement: added menu entries for saving or closing all open tabs.
  • MKVToolNix GUI: chapter editor enhancement: added menu entries for saving or closing all open tabs.
  • build system: MKVToolNix now requires a compiler that supports the following features of the C++14 standard: "std::make_unique()", "digit separators", "binary literals" and "generic lambdas". For the GNU Compiler Collection (gcc) this means v4.9.x or newer; for clang it means v3.4 or newer.
  • mkvmerge: MPEG TS/MPLS reader improvements: added support for subtitle tracks that are referenced from the MPLS file as sub-paths in other M2TS files than the main tracks.
  • MKVToolNix GUI: re-worked the startup code not to use lock files when trying to open a socket for communicating with an already-running instance. This aims to prevent situations with stale lock files not being cleaned up and the GUI not starting anymore as a result. This might fix or prevent issues like #1805.
  • mkvmerge: teletext subtitle bug fix: fixed the handling of DVB teletext subtitles signaled with data unit ID 0x02 and that contain pages from multiple magazines.
  • MKVToolNix GUI: multiplexer enhancement: the file identification process has been re-written to be properly multi-threaded. This allows the user to continue working with the GUI while e.g. playlists from a Blu-ray are identified.
  • mkvmerge: enhancement: mkvmerge can now handle Blu-ray playlists from the "BACKUP" sub-directory of a Blu-ray disc.
  • MKVToolNix GUI: new multiplexer feature: added a menu entry for copying the title to the destination file name. It will replace the destination file's base name but keep its path & extension.
  • MKVToolNix GUI: new multiplexer feature: all positive file identification results will now be cached between runs. This speeds up adding the same file a lot, especially when scanning the same Blu-ray playlists again. Cached results are invalidated automatically with newer MKVToolNix releases or when the source file changes.
  • MKVToolNix GUI: multiplexer enhancement: when the user tries to add one of the main Blu-ray index files (index.bdmv, MovieObject.bdmv) the GUI will automatically scan the Blu-ray playlist files and offer them for selection.
  • mkvmerge: bug fix: files smaller than 4 bytes were wrongly identified as MPEG transport streams.
  • MKVToolNix GUI: multiplexer enhancement: tracks, chapters, tags, attachments not selected for multiplexing will be displayed the same way as other disabled controls. Implements #1819.
  • mkvmerge: bug fix: the MPEG transport stream reader was using an outdated format for the "CodecPrivate" element for HDMV TextST subtitles. This has been updated to the current format which only contains the "dialog style element". Existing Matroska files using this outdated scheme can be fixed by running them through mkvmerge v9.6.0 itself or any later release as the old format is automatically converted to the new one when it is read from Matroska files.

What is new in version 9.6.0:

  • mkvmerge & mkvextract: added support for HDMV TextST subtitles.
  • mkvextract: VobSub bug fix: mkvextract will add a "langidx" line to the .idx file upon extraction.
  • MKVToolNix GUI: multiplexer enhancement: added a column "source file's directory" to the track list.
  • MKVToolNix GUI: multiplexer enhancement: added an option for selecting all tracks of the currently selected source files in the source file context menu.
  • MKVToolNix GUI: job output tool bug fix: the button for acknowledging warnings & errors wasn't properly disabled when the user used outside methods of acknowledging them (e.g. via the menu or via the job queue).
  • mkvmerge: MPLS parser bug fix: fixed reading the "in" & "out" timestamps for "play items". This bug resulted in mkvmerge not reading the correct range from the referenced M2TS file under certain rare circumstances.
  • mkvmerge: bug fix: mkvmerge was entering endless loops under certain conditions when appending files. This was a regression introduced with the fix to #1774 (using very large -sync values causing mkvmerge to abort).
  • MKVToolNix GUI: new feature: added options in the preferences to only show the list of often used languages/country codes/character sets in their respective selections instead of both the often used and the full list.

Screenshots

mkvtoolnix-68041_1_68041.png

Similar Software

beep
beep

3 Jun 15

Phat4X
Phat4X

3 Jun 15

eSpeak
eSpeak

11 May 15

Other Software of Developer Moritz Bunkus

Ogmtools
Ogmtools

3 Jun 15

Comments to MKVToolnix

Comments not found
Add Comment
Turn on images!