
v72.0 [Nov 14, 2022]
## New features and enhancements:
- mkvmerge: AV1 parser: the variable-width OBU size field will be re-written with minimal length if it's encoded longer than necessary.
- mkvmerge: when splitting is active the program will output the timestamps actually used for making the decision when to split. If GUI mode is active, a specially formatted line `#GUI#splitting_before_timestamp timestamp` is output as well. Lines prefixed with`#GUI#` are suitable for machine parsing, won't be translated and are guaranteed not to change in format. Implements #3421.
- MKVToolNix GUI: multiplexer: when dragging & dropping directories to the "attachments" tab, the files contained in those directories will be attached. Implements #3410.
- MKVToolNix GUI: info tool: added information about the file (directory, size, modification timestamp) at the top of each tab. Implements #3407.
## Bug fixes:
- mkvmerge: AV1 parser: fixed the parser completely aborting when parsing the OBU size field fails due to there not being enough data to parse. Instead the parser will remember the last known-good position & restart from there after more data is available. Fixes #3431.
- mkvmerge: HDMV PGS subtitles: reverted the change that implemented a heuristic for detecting bogus timestamps & attempting to fix them. This was done to fix #3268. Unfortunately this affected valid subtitle files with intentional huge gaps in timestamps, e.g. forced subtitle tracks. The heuristic has simply been removed, fixing #3392.
- mkvmerge: Matroska reader: fixed reading files with EBML Void elements before the Matroska Segment element.
- mkvmerge: fixed reversed attachment selection: `--attachments !4` would not copy any attachment instead of all attachments but the one with ID 4. Fixes #3427.
- mkvextract: IETF BCP 47/RFC 5646 language tags: mkvextract will now use & prefer IETF BCP 47 track language elements if they're present. Only affects the VobSub & USF subtitle extraction.
- mkvpropedit, MKVToolNix GUI's chapter & header editors: updated the list ofdeprecated Matroska elements. The applications will no longer try to writethose elements, even if they're found in the file to be modified. Theprograms will no longer abort with error messages such as `assertion "false"failed`. Fixes #3416.
- mkvpropedit, MKVToolNix GUI's chapter & header editors: when the Matroskaversion numbers stored in the EBML Head element are updated, the updatedEBML Head element might be smaller than the existing one. In that case theprograms used to shrink the EBML Head & write a small EBML Void elementbetween the updated EBML Head & the following element, usually a MatroskaSegment element. This isn't widely supported by programs includingMKVToolNix itself, causing them to declare such files as invalid. Theprograms will now create the EBML Void element inside the EBML Head element,making them a level 1 element instead of a level 0 element. Fixes #3355.
- mkvpropedit, MKVToolNix GUI's chapter & header editors: often the programshave to relocate the Master elements in which the modifications weredone. In that case the Seek Head elements must also be updated to reflect tothe Master elements' new positions. If a file contained a Seek Head elementat the start already and if that Seek Head was too small to contain theupdated positions, the programs would end up in an endless loop trying towrite data to the end, creating ever-growing files. This is now handledproperly by voiding this too-small Seek Head & finding a proper space for anew one instead. Fixes #3338.
- MKVToolNix GUI: header editor: fixed pixelated icons on higher displayscaling values. Fixes #3420.
v66.0 [Mar 13, 2022]
## New features and enhancements * mkvmerge: the options `--default-track` and `--forced-track` have been renamed to `--default-track-flag` and `--forced-display-flag` respectively for improved consistency with other option names & the wording used in the GUI. However, the old names will be supported and recognized indefinitely. What will remain unchanged is the property names for those flags in mkvmerge's identification output. Existing third-party programs will continue working as they are. * mkvmerge: added a new option `--track-enabled-flag` to set or unset the "track enabled" track header flag. * mkvmerge: MP4 reader: `mkvmerge` will now evaluate the `flags` field of the track header atom (`tkhd`) and set the track's "enabled" flag accordingly. Implements #3272. * MKVToolNix GUI: multiplexer: added support for the "track enabled" track header flag. * MKVToolNix GUI: multiplexer, header editor: added several menu entries & keyboard shortcuts for toggling various track flags of the currently selected tracks, e.g. `Ctrl+Alt+F, D` (that's `Ctrl` and `Alt` with `F` simultaneously followed by `D` without any other key pressed) for toggling the "default track" flag. Part of the implementation of #3253. * MKVToolNix GUI: multiplexer, header editor: added menu entries & keyboard shortcuts for setting the language of the currently selected tracks to one from a configurable list of languages. The shortcuts used are `Ctrl+Alt+A, 1` through `Ctrl+Alt+A, 0` for the first ten entries of that list (that's `Ctrl` and `Alt` with `A` simultaneously followed by a digit without any other key pressed). Part of the implementation of #3253. * MKVToolNix GUI: chapter editor: if the user enters commas in start or end timestamps they will automatically be changed to points as the decimal separator, allowing for easier copy & paste from other programs/sources. Implements #3273. * MKVToolNix: header editor: the selected track or attached file can now be moved up & down with the keyboard shortcuts `Ctrl+Up` & `Ctrl+Down` respectively. Part of the implementation of #3253.
v61.0 [Aug 31, 2021]
New features and enhancements
- all: IETF BCP 47/RFC 5646 language tags: implemented support for officially registered IANA language tag extensions.
- mkvmerge: track selection: when using language tags for selecting which tracks to keep, mkvmerge will now use component-based language tag matching instead of comparing them verbatim. This means that only those components (language, region etc.) the user specified will be required to exist and be equal. For example, if a file contains three subtitle tracks with languages `es` (generic Spanish), `es-MX` (Spanish as spoken in Mexico) and `es-ES` (Spanish as spoken in Spain), the user can use `--stracks es` to match all three tracks or be more specific with e.g. `--stracks es-MX` which would only match one track. Similarly inverting the selection with e.g. `--stracks !es` would get rid of all three tracks, not just the one for the generic Spanish.
- MKVToolNix GUI: multiplexer: deriving track languages from file names: the GUI can now detect full BCP 47/RFC 5646 language tags in file names. Part of the implementation of #3173.
- MKVToolNix GUI: multiplexer: deriving track languages from file names: the default list of boundary characters now includes `-`. Part of the implementation of #3173.
- MKVToolNix GUI: multiplexer: the GUI now defaults to the "lower" process priority setting for new installations in order to leave more room for other applications, especially interactive ones. Up to and including v59 the default was the "normal" process priority. v60 changed that to "lowest", which turned out to be much slower on Windows for no real gain over "lower". The setting will be auto-corrected by the GUI if the settings file were saved last with a version between v60.0.0.0 & v60.0.0.17 & "lowest" & it is still set to "lowest".
- HEVC dumper development tool: the tool has been renamed to `xvc_dump` and extended to be able to dump AVC/H.264 bitstreams, too. It now also detects the type of bitstream framing (ISO 14496-15 vs. ITU-T H.264/H.265 Annex B).
Bug fixes
- all: IETF BCP 47/RFC 5646 language tags: fixed a corner case of wrongfully allowing scripts/variants not listed in any of the entries in the prefix list when the prefix list contains prefixes restricting scripts/variants and a prefix solely with the language at the same time (example: the variant `ekavsk` with its prefixes `sr`, `sr-Cyrl` and `sr-Latn` where e.g. `sr-ekavsk` and `sr-Cyrl-ekavsk` should be allowed but not `sr-Bali-ekavsk`).
- mkvmerge: HEVC/H.265: the frame type of B frames was often wrongfully signalled as P frames instead, both with `BlockGroup` (missing second references) and `SimpleBlock` ("discardable" flag not set) elements.
- mkvmerge: SSA/ASS packetizer: the frame numbers will now be re-calculated when appending SSA/ASS tracks so that frame numbers of appended tracks are always strictly higher than frame numbers of the track they're appended to.
- mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: when BCP 47 language tags are used with a language code that isn't part of ISO 639-2, the programs will now write a legacy language element set to `und` ("undetermined") instead of not writing such an element at all or writing one with an invalid code. Fixes #3174.
- mkvmerge, MKVToolNix GUI's chapter editor: BCP 47/RFC 5646 language tags: the programs will ensure that the legacy and IETF language elements written will be unique within the scope of the same "chapter display" element.
- mkvinfo, MKVToolNix GUI's info tool: in summary mode the frame type was reported wrong for `BlockGroup` elements in which the `ReferenceBlock` elements were located behind the `Block` element.
Build system changes
- all: `std::codecvt_utf8` is now used instead of Boost's `utf8_codecvt_facet`. The bundled copy the latter in `lib/boost` has therefore been removed.
v57.0 [May 22, 2021]
New features and enhancements:
- mkvmerge: MP4 reader: added support for reading Dolby Vision from MP4 files (FourCCs `dvh1` and `dvhe`; configuration records `dvcC`, `dvvC` and `hvcE` will be converted into block addition mappings).
- mkvmerge: SRT subtitles: mkvmerge now accepts empty text files with the extension `.srt` as SRT subtitle files, enabling the creation of empty SRTtracks.
- mkvmerge, mkvextract: HEVC/H.265: access unit delimiter NALUs will no longer be discarded, neither during muxing nor during extraction.
- MKVToolNix GUI: preferences: switched the order & wording of controls in the "enabling items" panel to make it clearer that certain controls define exceptions. Inspired by 3086.
Bug fixes:
- mkvmerge: HEVC/H.265 parser: several NALU types, notably the Dolby Vision-specific NALUs ("unspecified 62" and "unspecified 63") and suffix SEI NALUs, are now stored with the frame they belong to instead of with the next frame.
- mkvmerge: HEVC/H.265 packetizer: fixed setting the track's default duration when reading HEVC/H.265 from Matroska files that don't have a default duration set.
- mkvmerge: HEVC/H.265 packetizer: fixed the calculation of the duration of frames so that `SimpleBlock` elements can be used again instead of `BlockGroups` with `BlockDuration` elements.
- mkvmerge, mkvextract: HEVC/H.265 parser: fixed issues with ordering &duplication of certain NALUs (parameter set & prefix SEI NALUs).
- MKVToolNix GUI: multiplexer: when dragging & dropping files to the multiplexer, the source directory will be remembered as the "last open directory" again, causing subsequent uses of the "open file" dialog to start in the same directory.
- mkvinfo: fixed the position of frames in block groups containing "block duration" elements in summary mode (e.g. for subtitle tracks).
Build system changes:
- `configure` will now try to detect `libmagic` via `pkg-config` and fall back to including & linking directly if it cannot be found via `pkg-config`.
v51.0
New features and enhancements:
- mkvmerge, mkvpropedit, MKVToolNix GUI: IETF BCP 47 language tags: added missing support for UN M.49 regions for which there are no corresponding ISO 3166 alpha codes. This enables language tags such as `es-419` = Spanish in Latin America and the Caribbean.
- MKVToolNix GUI: IETF BCP 47 language tags: the text in the widget displaying the current language & the corresponding edit button is now displayed like a link (depending on the theme: different color & underlined), making it clearer that not just the edit button can be clicked but the text, too.
Bug fixes:
- mkvmerge: AV1 parser: fixed mkvmerge crashing after uncaught exceptions due to certain data conditions. Found by fuzzying.
- mkvmerge: AV1 packetizer: the duration of frames wasn't set properly. When appending AV1 IVF or OBU files this meant that the last frame of the Nth file and the first frame of file N 1 had the same timestamp.
- mkvmerge: DTS reader: fixed handling of buffers with an odd length when byte-swapped DTS is detected so that mkvmerge doesn't abort with a failed assertion. Found by fuzzying.
- mkvmerge: h.264/AVC and h.265/HEVC elementary stream readers: mkvmerge will no longer claim to recognize data that looks like AVC or HEVC but with invalid video width/height values as that lead to failed assertions in libEBML later. Found by fuzzying.
- mkvmerge: h.265/HEVC parser: fixed mkvmerge aborting after uncaught exceptions due to certain data constellations found by fuzzying.
- mkvmerge: IVF reader: fixed mkvmerge crashing with a "division by zero" error due to certain data conditions. Found by fuzzying.
- mkvmerge: fixed mkvmerge aborting with a "division by zero" error due to the timestamp scaling factor being 0 after handling certain data constellations found by fuzzying.
- mkvmerge: track statistics: fixed a "division by zero" error when the content's shorter than 1ms. Found by fuzzying.
- mkvmerge, mkvinfo, mkvextract, mkvpropedit: Matroska access class: fixed an invalid memory access under certain data conditions. Found by fuzzying.
- MKVToolNix GIU: IETF BCP 47/RFC 5646 language tags: the GUI will no longer open the language dialog when clicking on a disabled language display widget.
- MKVToolNix GUI: IETF BCP 47 language tags: the "variants" combo-boxes were not populated even when the language tag was valid and contained at a variant.
- MKVToolNix GUI: IETF BCP 47 language tags: when no language is selected, at least one of the other components (extended subtags, region, or variants) has something selected and "private use" is not empty, the GUI would claim this to be a valid tag, which it isn't.
- MKVToolNix GUI: multiplexer: when the tracks/chapters/tags selection changes from "at least one entry selected" to "no entry selected", the input controls will be reset to their default state and not just disabled.
Build system changes:
- `configure` now checks for the presence of the a system-wide installed copy of the JPCRE2 C wrapper library for the PCRE2 library and uses that if it's new enough (at least v10.32.1). If not, the bundled version will be used as a fallback.
v50.0 [Sep 6, 2020]
New feature: IETF BCP 47 language tags:
- I've written up a [nice FAQ entry] https://gitlab.com/mbunkus/mkvtoolnix/-/wikis/Languages-in-Matroska-and-MKVToolNix) about the switch to using IETF BCP 47 language tags, how they interact with legacy language elements, how the programs actually behave and how to disable their use if necessary.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: mkvmerge will now accept full BCP 47 language tags for all options taking a language. mkvmerge will always write "LanguageIETF" track header elements. If the language tag contains a valid ISO 639-2 language code it will also set the legacy "Language" track header element to the included ISO 639-2 code.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: if present the "LanguageIETF" track header element will be reported as the `language_ietf` property in JSON identification mode.
- mkvmerge: IETF BCP 47/RFC 5646 language tags in chapters: mkvmerge will now write "ChapLanguageIETF" elements when creating chapter atoms, either when reading the simple chapter format or when generating chapters due to the `--generate-chapters` command line option.
- mkvmerge: IETF BCP 47/RFC 5646 language tags in tags: mkvmerge will now write "TagLanguageIETF" elements when creating "simple tag" elements, either when reading tag XML files or when generating them.
- mkvmerge: IETF BCP 47/RFC 5646 language tags: added an option `--disable-language-ietf` that causes mkvmerge to only write the legacy language elements.
- mkvmerge, mkvpropedit, MKVToolNix GUI's chapter editor: IETF BCP 47/RFC 5646 language tags in chapters: when reading XML chapter files the programs will now add "ChapLanguageIETF" elements for atoms that don't contain them. The values are derived from existing "ChapterLanguage" elements.
- mkvpropedit: IETF BCP 47/RFC 5646 language tags: setting/deleting the track language now acts on both the old language element as well as the "LanguageIETF" track header element.
- mkvpropedit: IETF BCP 47/RFC 5646 language tags: added an option --disable-anguage-ietf` that causes mkvpropedit to apply changes to the `language` track header property only to the legacy language track header element.
- mkvinfo: IETF BCP 47/RFC 5646 language tags: added support for the "LanguageIETF" track header element.
- MKVToolNix GUI: multiplexer: added full support for IETF BCP 47/RFC 5646 language tags for both track and chapter languages.
- MKVToolNix GUI: chapter: added full support for IETF BCP 47/RFC 5646 language tags for chapter languages.
- MKVToolNix GUI: header editor: added full support for IETF BCP 47/RFC 5646 language tags for track header languages. The header editor allows editing of the legacy language elements and the IETF BCP 47 language elements independent of each other.
Other new features and enhancements:
- mkvmerge: the chapter generation mode `when-appending` now also works with the splitting modes `parts:` & `parts-frames:` when using the `…,+…` syntax for appending other sections of the source file to the same destination file.
- MKVToolNix GUI: multiplexer: the file selection dialogs now include the extension `.dtsma` for DTS files.
- mkvmerge: MP4 reader: sped up parsing MP4 DASH files with a lot of segments (`trun` atoms) quite a bit.
- The PCRE2 regular expression library is now used instead of `std::regex` for big performance improvements in all places where regular expressions are used for parsing big chunks of text, e.g. in the subtitle parsers.
- all programs: Windows: all programs now support long file names on Windows 10 release 1604 if they're turned on in the registry.
Bug fixes:
- MKVToolNix GUI: preferences: under certain conditions changing the selected entry in the page tree on the left did not cause the page shown on the right to be updated.
- mkvmerge: splitting text by a fixed string (e.g. `,`) is now done by using `std::string.find()` instead of using a regular-expression-based text splitting function, greatly improving its performance.
- mkvmerge: mkvmerge will now read-buffer file I/O when probing text file formats which increases its speed significantly on Windows.
- mkvmerge: MP4 reader: fixed handling of `tkhd` atoms of version 1.
Build system changes:
- The PCRE2 library (the 8-bit variant) is now required.
v44.0 [Mar 9, 2020]
New features and enhancements:
- MKVToolNix GUI: header editor: the attachments can now be reordered via drag & drop. Implements #2753.
Bug fixes:
- mkvmerge: Matroska reader: when encountering certain errors in the track headers such as the codec ID not being present mkvmerge will simply skip those tracks instead of exiting with an error. Fixes #2737.
- MKVToolNix GUI: multiplexer: the "ask before overwriting" functionality did not look for the correct file names when splitting was active. Fixes #2741.
v38.0 [Oct 7, 2019]
New features and enhancements:
- mkvextract: chapters, tags & cue sheets will now be written to standard output if no file name is given, same as ifis given as the file name.
- MKVToolNix GUI: job queue: added a new setting in the preferences- 'job queue & job status- section that, when enabled, will cause the GUI to remove all output files created by jobs that are either aborted by the user or that end in an error. Implements #2614.
Bug fixes:
- all programs: macOS: fixed file access if the file name (including all path components) contains any Unicode character where NFC (Normalization Form Canonical Composed) and NFD (Normalization Form Canonical Decomposed) differ, e.g. German Umlauts. Fixes #2620.
- mkvmerge: when splitting by chapters the user can now split by chapters coming from one of the appended files, too. Fixes #2625.
- mkvmerge: AAC reader: fixed reading codec parameters (channels, sample rate) if a file starts with garbage that includes valid-but-bogus AAC headers. Fixes #2622.
- MKVToolNix GUI: Hebrew was added to the list of often-used languages so that it can be selected by default again Fixes #2610.
- MKVToolNix GUI: when updating the GUI’s settings from V37.0.0 or older, the GUI checks if the list of often-used languages equals the built-in list from V36.0.0. If it does, it will be updated to the built-in list changed in V37.0.O. Fixes #2611.
Build system changes:
- Boost's Operators header library is now required.
v36.0 [Aug 11, 2019]
- Mkvmerge: mkvmerge now allows appending AV1, VP8, VP9, H.264/AVC and H.265/HEVC tracks whose pixel dimensions differ. Implements #2582.
- 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.
v33.1 [Apr 16, 2019]
- MKVToolNix GUI: multiplexer: Windows: using UNC paths (e.g. `\\server\Videos`) when the option "automatically set the destination file name" was set in the preferences, the GUI would create a destination file name with forward slashes (e.g. `//server/Videos/outputfile.mkv`), a syntax not supported by `mkvmerge`. Fixes #2533 & #2534.
- Build system: the programs were accidentally built without stack protection (`-fstack-protector-strong`) on recent versions of gcc and clang.
v28.2 [Oct 25, 2018]
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.
v25.0 [Jul 13, 2018]
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).
v21.0 [Feb 24, 2018]
## New features and enhancements
* mkvmerge: track statistics tags: the `TagDefault` element will not be
written anymore as it was always set to the default value `1`
anyway. Implements #2202.
* mkvmerge, MKVToolNix GUI: JSON files can now contain C++-style line comments
outside of strings (e.g. something like this: `// this is ignored`). Such
comments, even though not part of the official JSON specifications, are now
ignored when reading JSON files.
* MKVToolNix GUI: chapter editor: opening a Matroska file without chapters in
it will now open the file in an empty chapter editor instead of showing an
error message. Implements #2218.
* MKVToolNix GUI: an "info" tool has been added, replacing the functionality
of mkvinfo's GUI. The functionality is not on par yet but will be for
release v22. Implements most of the functionality of #2104.
## Bug fixes
* build system: `configure` was treating `--disable-ubsan` and
`--disable-addrsan` the same as `--enable-ubsan` and
`--enable-addrsan`. Fixes #2199.
* build system: an error message is output if a command to execute is not
found instead of silently failing.
* build system: in addition to looking for the `gettext` C function and
library, `configure` now also verifies the presence of the `msgfmt` program
instead of simply relying on it.
* mkvmerge: appending files with additional parts at the same time was broken
if more than one additional part was appended (e.g. when appending files
from DVDs with something like `'(' VTS_01_1.VOB VTS_01_2.VOB ')' + '('
VTS_02_1.VOB VTS_02_2.VOB ')'`). In such a situation the content from files
`VTS_02_1.VOB` and `VTS_02_2.VOB` where laid out in parallel to the content
from the earlier files.
* mkvmerge: FLV reader: a single invalid AAC frame was written for AAC audio
tracks with codec initialization data longer than five bytes.
* mkvmerge: FLV reader: timestamps will be normalized down to 0. Fixes #2220.
* mkvmerge: MP4 reader: if an AAC track doesn't contain an AAC-specific
decoder configuration in the ESDS portion, then a default decoder
configuration will be generated based on the track's header data instead of
skipping the track. Fixes #2221.
* mkvmerge: MP4 reader: fixed reading HEVC/h.265 video tracks if they're
stored as Annex B byte streams inside MP4. Fixes #2215.
* mkvmerge: Ogg Opus reader: mkvmerge will now emit a warning instead of
aborting when it encounters an Ogg Opus page with no data in the
packet. Fixes #2217.
* mkvmerge, mkvextract: Matroska parser: fixed a segmentation fault that
occurred whenever the first level 1 element after resyncing after an error
in the file structure isn't a cluster. Fixes #2211.
* mkvmerge, MKVToolNix GUI multiplexer & header editor: fixed a crash during
file type detection for attachments if MKVToolNix is installed in a path
with non-ASCII characters (e.g. German Umlauts). Fixes #2212.
* mkvinfo: the `--hex-positions` parameter did nothing in summary mode.
* mkvinfo: Windows: line endings will be written as `\r\n` (carriage return &
line feed) again instead of just `\n` (line feed).
* mkvpropedit: adding track statistics tags: for tracks with content encoding
(compression) mkvpropedit is now accounting the uncompressed number of
bytes, not the encoded (compressed) number of bytes. Fixes #2200.
* MKVToolNix GUI: multiplexer: the subtitle character set can now be set for
appended subtitle files, too. Fixes #2214.
* MKVToolNix GUI: multiplexer: when appending, all tracks appended to disabled
tracks will start out disabled, too.
## Build system changes
* mkvinfo: the GUI portion has been removed. mkvinfo is now a pure
command-line program again.
v18.0 [Nov 18, 2017]
- 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.
v17.0 [Oct 14, 2017]
- The word "timecode" has been changed to "timestamp" everywhere it was used in MKVToolNix.
- The command line interface has been changed to allow extraction of multiple items at the same time.
- During identification regular AC-3 and E-AC-3 tracks will now be identified differently for most container formats (exception: AVI, Real Media, Ogg/OGM).
- mkvmerge will now parse the `program_config_element` if it is located at the start of an AAC frame in order to determine the actual number of channels.
- Fixed AC-3 being misdetected as encrypted MPEG program streams under certain conditions.
- Fixed calculating the duration of entries starting with at a negative timestamp.
v12.0 [May 22, 2017]
mkvmerge: FLAC reader: added support for handling embedded pictures as attachments. Implements #1942.
mkvmerge: MP4 reader: merged pull request #1804 adding support for parsing the "COLR" atom and including its values as track headers.
MKVToolNix GUI: watch jobs: the user can now have the GUI execute an action once as soon as the current job or the whole queue finishes. The actions are the same ones that can be configured to be run automatically after job or queue completion.
MKVToolNix GUI: implemented several built-in actions that can be executed either on special events or once via the "watch jobs" tool. These are: playing an audio file (implemented for all operating systems); hibernating, sleeping and shutting down the computer (only implemented for Windows and for Linux systems using systemd).
MKVToolNix GUI: multiplex tool: added a new option for what to do after starting to multiplex/adding to the job queue: "close current settings" will close the current multiplex settings without opening new ones.
v9.5 [Oct 16, 2016]
VobSub handling bug fix: mkvmerge and mkvextract will now update the duration stored in the SPU bitsream with the duration from the container level if it differs at least 1ms.
v9.2 [May 30, 2016]
- Released v9.1.0 "Little Earthquakes".
- mkvmerge: MPEG TS/teletext enhancement: included the teletext page number in the JSON/verbose identification output as track property "teletext_page".
- mkvmerge: MPEG TS bug fix: the "text_subtitles" property of the JSON/verbose identification modes was always set to true for all subtitle tracks, even for those that aren't text subtitles (VobSub, PG).
- mkvmerge: MPEG TS/teletext enhancement: if a teletext track contains multiple teletext pages then mkvmerge will now recognize all of those pages as separate tracks to merge instead of only merging the first page.
v8.9 [Feb 21, 2016]
* MKVToolNix GUI: the default font size adjustment has been deactivated for the time being as it causes problems on high DPI displays. See #1602.
* MKVToolNix GUI: bug fix: ampersands (&) in file names were shown as keyboard shortcuts in tab titles in various tools (merge tool, chapter and header editors, job output tool). Fixes #1603.
v8.8 [Jan 11, 2016]
2016-01-09 Moritz Bunkus <[email protected]>
* MKVToolNix GUI: "run program after XYZ" enhancement: added a
button for executing the program right now as a test run. See
#1570.
* MKVToolNix GUI: "run program after XYZ" enhancement: an error
message is shown if the program couldn't be executed. See #1570.
* MKVToolNix GUI: "run program after XYZ" enhancement: any leading
spaces in the executable path are removed in order to make copying &
pasting less error-prone.
* MKVToolNix GUI: "run program after XYZ" bug fix: the paths used
in the variables and the executable are converted to the platforms
native path separators. This fixes compatibility with Windows
applications that don't support the use of forward slashes in path
names like e.g. VLC. See #1570.
2016-01-08 Moritz Bunkus <[email protected]>
* mkvpropedit: enhancement: mkvpropedit will accept terminology
variants of ISO 639-2 language codes and convert them to the
bibliographic variants automatically. Implements #1565.
2016-01-06 Moritz Bunkus <[email protected]>
* MKVToolNix GUI: enhancement: the GUI's default font's size is
now scaled with the screen's DPI and is at least 9 points high (up
from 8). Additionally on Windows "Segoe UI", which is Windows'
default user interface font, is used instead of the default
provided by Qt, "MS Shell Dlg 2".
* MKVToolNix GUI: enhancement: the user can select the font family
and size for the GUI in the preferences.
2016-01-04 Moritz Bunkus <[email protected]>
* mkvmerge: bug fix: fixed TrueHD detection both as raw streams as
well as inside other contains if the stream does not start with a
TrueHD sync frame.
2016-01-03 Moritz Bunkus <[email protected]>
* MKVToolNix GUI: new merge tool feature: added a layout for the
track properties where they're on the right of the files/tracks
lists in two fixed columns. Implements #1526.
2016-01-02 Moritz Bunkus <[email protected]>
* mkvmerge: bug fix: fixed a mis-detection of an MPEG-2 video
elementary stream as a TrueHD file which then caused a
segmentation fault. Fixes #1559.
* mkvmerge: bug fix: Matroska attachments with the same name, size
and MIME type were not output during file identification.
* MKVToolNix GUI: merge tool enhancement: added a column to the
"attachments" tab containing the file size.
* MKVToolNix GUI: enhancement: pressing the insert key when the
focus is on the merge tool's source files or attachments list, on
the chapter editor's chapter list or on the header editor's list
will invoke the corresponding action for adding elements to that
list.
2016-01-01 Moritz Bunkus <[email protected]>
* MKVToolNix GUI: merge tool bug fix: when using one of the
"select all tracks (of type€...)" actions the "properties" column
didn't show the selection.
* MKVToolNix GUI: new feature: implemented adding, changing and
removing attachments in existing Matroska files as part of the
header editor. Implements #1533.
v8.6 [Nov 29, 2015]
* mkvpropedit, GUI's chapter & header editors bug fix: in certain
situations the modified file would not contain a seek head before
the first cluster anymore resulting in most players not finding
elements such as attachments or the index located at the end of
the file anymore. Fixes #1513.
* mkvmerge: bug fix: the change to do a deeper file analysis if no
seek head was found was causing huge increases in file type
detection time as popular tools like x264 don't write seek
heads. The way elements at the end are searched has been changed
to only scan the last 5 MB of the file instead of iterating over
every level 1 element from the beginning of the file.
v8.4 [Sep 20, 2015]
* Released v8.4.0.
* MKVToolNix GUI: chapter editor bug fix: whenever the additional
modification of »expanding start/end timecodes to include the
minimum/maximum timecodes of their children« was run on an edition
entry then ChapterTimeStart and sometimes ChapterTimeEnd nodes
were inserted as direct children of the EditionEntry node when
saving. This resulted in invalid chapters.
v8.1 [Jun 27, 2015]
- Released v8.1.0.
- mmg: bug fix: fixed handling of the characters [ and ] in container and track properties.
- MKVToolNix GUI: merge tool enhancement: moved the "output file name" controls below the three tabs so they're always visible. Also added an option in the preferences to move them back inside the "output" tab.
v7.9 [May 10, 2015]
2015-05-10 Moritz Bunkus <[email protected]>
* Released v7.9.0.
* build system: configure will now check for Qt by default. If at
least v5.2.0 is found then the Qt versions of mkvinfo's GUI and
the new mkvtoolnix-gui will be enabled. You can affect this
detection with the options --disable-gui (turns off all GUIs;
works the same as before), --disable-qt (will compile the
wxWidgets GUI for mkvinfo and mmg) and --without-mkvtoolnix-gui
(will compile the Qt version of mkvinfo's GUI but no
mkvtoolnix-gui).
v7.7 [Mar 1, 2015]
2015-02-28 Moritz Bunkus <[email protected]>
* Released v7.7.0.
2015-02-28 Lionel Fourquaux <[email protected]>
* source code: Fixed the compilation on cygwin.
v7.5 [Jan 6, 2015]
2015-01-04 Moritz Bunkus
* Released v7.5.0.
* mkvmerge: bug fix: If the target drive is full then a nicer
error message is output instead of simply crashing due to an
uncaught exception.
* mkvmerge: bug fix: Fixed reading MPEG transport streams in which
all PATs and/or PMTs have CRC errors. Fixes #1100.
v7.3 [Oct 23, 2014]
2014-10-22 Moritz Bunkus
* Released v7.3.0.
2014-10-11 Moritz Bunkus
* mkvmerge: new feature: implemented support for reading teletext
subtitles from MPEG transport streams. They're converted to
SRT-style subtitles (CodecID S_TEXT/UTF8). Implements #773.
2014-10-07 Moritz Bunkus
* mkvmerge: bug fix: probing MPEG transport streams with certain
types of broken MPEG-2 inside caused mkvmerge to exit with an
error message. Such tracks are now ignored instead.
2014-09-29 Moritz Bunkus
* mkvmerge, mmg's chapter editor: fixed the default value for the
»language« element if it isn't present in a chapter XML file.
2014-09-28 Moritz Bunkus
* MKVToolNix GUI: implemented drag & drop in the files pane.
2014-09-26 Moritz Bunkus
* mkvinfo (Qt version on Windows): bug fix: the console window is
closed if the GUI is launched.
2014-09-25 Moritz Bunkus
* mkvmerge: bug fix: Reading tracks from MPEG transport streams
resulted in the track being cut off at points with a five minute
gap in between frames. It is due to timecode wrap detection
introduced in v6.9.0. As it affects subtitles the most the wrap
detection has been relaxed for them.
2014-09-20 Moritz Bunkus
* MKVToolNix GUI: implemented drag & drop in the track pane.
2014-09-17 Moritz Bunkus
* mkvmerge: new feature: added support for PCM in MPEG program
streams (.vob €“ DVDs) and transport streams (.ts, .m2ts €“
Blu-rays). Implements #763.
2014-09-16 Moritz Bunkus
* MKVToolNix GUI: fixed missing command line switch for audio
sync/stretch.
2014-09-15 Moritz Bunkus
* MKVToolNix GUI: implemented drag & drop in the job queue.
2014-09-14 Moritz Bunkus
* MKVToolNix GUI: implemented storing the job queue when the
application exits and retrieving it when it starts again.
* Installer: bug fix: the shortcut for the GUI preview on the
desktop is removed upon uninstallation. If the user opts not to
have shortcuts on the desktop then no shortcut is created for the
GUI preview either.
* MKVToolNix GUI: fixed clearing the file/track/attachment lists
when starting a new config or when loading an existing one.
* MKVToolNix GUI: implemented setting the output file name
automatically in four different modes (don't set at all; place in
previous output directory; place in fixed output directory; place
in parent directory of first source file) with an option to make
them unique by appending a running number.
* MKVToolNix GUI: implemented setting the file title automatically
from added files that already have a title.
v7.2 [Sep 13, 2014]
2014-09-13 Moritz Bunkus
* Released v7.2.0.
* MKVToolNix GUI: included a first preview version in the Windows
installer and portable releases.
2014-09-08 Moritz Bunkus
* mkvmerge: bug fix: Fixed calculating AC3 delay from garbage data
when reading AC3 from AVIs. This stopped working in release 5.4.0
due to commit 97cc2121.
2014-09-06 Moritz Bunkus
* mkvextract: bug fix: SSA/ASS files with sections after
"[Events]" in their CodecPrivate are now handled correctly. Fixes
#1057.
2014-09-05 Moritz Bunkus
* mkvmerge: bug fix: Fixed handling certain edit list types in MP4
files that are used for positive track delays. Fixes #1059.
2014-08-09 Moritz Bunkus
* source: Fixed compilation with Boost 1.56.0 which changed the
»indexed« range adaptor in an incompatible way.
* mkvpropedit, mmg's header editor: bug fix: when editing files
with missing track UID elements such an element will be generated
automatically instead of crashing and leaving the file in an
unplayable state. Part of a fix for #1050.
* mkvmerge: bug fix: Reading Matroska files with missing track UID
elements will no longer cause mkvmerge to abort with an error. A
warning is printed and a new unique track ID generated
instead. Part of a fix for #1050.
v6.8 [Mar 3, 2014]
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:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56742
* 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.
v6.6 [Dec 2, 2013]
- 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: implemented support for extracting VP9 tracks into IVF files.
- mkvmerge: implemented support for VP9 read from IV and Matroska/WebM files.
- mkvextract: enhancement: using the same track and attachment ID multiple times in "tracks", "attachments" or "timecodes_v2" mode will result in an error message instead of one empty file.
- 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.
v6.5 [Oct 20, 2013]
- 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: implemented support for extracting VP9 tracks into IVF files.
- mkvmerge: implemented support for VP9 read from IV and Matroska/WebM files.
- mkvextract: enhancement: using the same track and attachment ID multiple times in "tracks", "attachments" or "timecodes_v2" mode will result in an error message instead of one empty file.
- 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.
v6.4 [Sep 16, 2013]
- mkvmerge: bug fix: fixed packet ordering regression introduced in 6.4.0 if --default-duration is used for a track.
v6.3 [Jun 28, 2013]
Added builds for Windows (6.3.0-1): same source, but built against a different version of the wxWidgets library in order to circumvent a bug in the library.
v5.9 [Dec 9, 2012]
--mkvmerge: bug fix: Fixed reading seek position values bigger than 2 GB. Fixes #805.
--mkvmerge: bug fix: Fixed appending non-empty tracks to empty tracks. Fixes #793.
--mkvmerge: bug fix: mkvmerge will now keep timecodes of PCM tracks from source files if they're available. Fixes #804.
--all: bug fix: EBML void elements will be skipped when reading structures from XML (e.g. chapters). Fixes #802.
--all: bug fix: EBML void elements will be skipped when saving structures to XML (e.g. chapters). Fixes #801.
--mkvmerge: bug fix: Fixed reading linked seek heads in Matroska files.
--mmg: bug fix: Fixed reading file names containing a '%' from a .mmg settings file (both normally saved files and the job queue files). Fixes #795.
--mkvmerge: enhancement: Dirac video code: Added four more pre-defined video types from Dirac spec v2.2.2 and two from Dirac Pro.
--mkvmerge, mmg: enhancement: Added options for turning off writing "CueDuration" elements ("--engage no_cue_duration") and "CueRelativePosition" elements ("--engage no_cue_relative_positions").
--mkvmerge: new feature: The element "CueRelativePosition" is
written for all cue entries.
--mkvmerge: new feature: The element "CueDuration" will be written for all cue entries referring to subtitle tracks.
--mkvmerge: new feature: mkvmerge will write cues for subtitle tracks by default now.
--mkvinfo: new feature: added support for the new elements CueDuration, CueRelativePosition and TimecodeScaleDenimonator. The denominator's value is only shown so far but not taken into account when calculating any timecode.
--mkvpropedit, mmg, mkvmerge: removal: removed support for the deprecated element TrackTimecodeScale.
v5.6 [May 27, 2012]
Added Spanish translation of mmg's guide by Israel Lucas Torrijos.
v5.3 [Feb 9, 2012]
- doc: enhancement: Updates for option file usage and supported
subtitle formats.
- mkvmerge: new feature: mkvmerge will parse and apply the audio
encoder delay in MP4 files that contain said information in the
format that iTunes writes it. Fix for bug 715.
- mkvmerge: new feature: Implemented support for treating several
input files as if they they had been concatenated binarily into a
single big input file. Snytax is "mkvmerge -o out.mkv ( in1.ts
in2.ts in3.ts )". This feature has already been present since
version 5.1.0 but never been mentioned in the ChangeLog. Support
for this feature in mmg is still missing.
- mkvmerge: bug fix: Blocks with "BlockAdditions" will no longer
be muxed as "SimpleBlock" elements discarding the additions but
instead as "BlockGroup" elements. This applies to e.g. WAVPACK4
tracks with correction files as the correction data is stored in
"BlockAdditions". Fix for bug 713.
- mkvmerge: bug fix: Fixed some more issues with (E)AC3 being
misdtected as AVC elementary streams.
- mmg: bug fix: The header editor was sometimes creating two
instances of an element if an element was added to the second or
one of the later tracks. Fix for bug 711.
- mkvpropedit, mmg: bug fix: Trying to modify a file located in a
path mounted with GVFS SFTP will no longer crash the
programs. Instead an error message is output if an error
occurs. Fix for bug 710.
- mkvmerge: bug fix: Fixed integer underflows in the read caching
code resulting in invalid memory access. Happened in broken or
incomplete files only. Fix for bug 709.
- mkvmerge: bug fix: Appending AVI, Matroska or MPEG program
stream files with DTS audio tracks will not result in a warning
that the appended DTS tracks might not be compatible. Fix for bug
705.
- mkvextract: bug fix for the "timecodes_v2" mode: mkvextract will
write one more timecode than there are frames in the file. The
last timecode written will be the the sum of the last frame's
timecode and duration with the "last frame" being the one with the
highest timecode. Fix for bug 691.
- mkvmerge: bug fix: Fixed writing into paths on which a drive is
mounted on Windows. Fix for bug 701.
- mkvmerge: enhancement: Identification output for Matroska files:
Added the track number header field as "number" to the verbose
identification mode.
- mkvmerge: enhancement: Identification output for Matroska files:
Added a field "content_encoding_algorithms" that contains a
comma-separated list of encoding algorithm IDs used for that
track. For example, "content_encoding_algorithms:3" would indicate
that header removal compression is used.
- mkvmerge: enhancement: Identification output for Matroska files:
Added several fields to mkvmerge's verbose identification mode for
tracks: UID, CodecID, length and content (as a hex dump) of the
codec private data.
v5.2 [Dec 19, 2011]
--mkvmerge: bug fix: Fixed certain DTS files being mis-detected as AC3. Fix for bug 693.
-- build system: Added an option "--without-gettext" that allows for building without support for translations even if gettext itself is installed.
--build system: Added an option "--without-curl" that allows for building without CURL support even if CURL itself is installed.
--all: bug fix: Fixed compilation if gettext/libintl is not
available.
--mkvmerge: bug fix: The MPEG program stream reader was reporting wrong progress percentage if multiple files were used since v5.1.0.
--mkvmerge: enhancement: Removed the posix_fadvise() code. The application is using its own caching code which caused bad performance if the OS caching provided via posix_fadvise() is used as well.
--mkvmerge: bug fix: If an MP4 file contains chapters encoded in a different charset than UTF-8 and --chapter-charset is not used then the error message shown is a lot clearer why mkvmerge aborts muxing. Before the error message was a generic "mm_text_io_c::read_next_char(): invalid UTF-8 character. The first byte:..."
--mkvmerge: bug fix: MPEG program streams in which a track suddenly ends and others continue or in which a track has huge gaps will no longer cause mkvmerge to try to read the whole file at once. This could lead to excessive swapping and finally mkvmerge crashing if no more memory was available.
--mkvextract: bug fix: The track IDs used for extraction are consistent again with the IDs that mkvmerge's identification reports. Fix for bug 689.
--mkvmerge: bug fix: Fix compilation if FLAC is not available. Fix for issue #13.
v5.0 [Sep 26, 2011]
mkvmerge, mkvextract: bug fix: Skipping broken data in Matroska
- file often caused the program to abort on Windows. This has been
- fixed so that processing continues after the broken part. Fix for
bug 668.
v4.9 [Jul 11, 2011]
New and improved interface and bugs fixed.