Version 33.1.0 "Primrose"
Bug fixes
* 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.
* build system: the programs were accidentally built without stack protection
(-fstack-protector-strong) on recent versions of gcc and clang.
Version 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.
* MKVToolNix GUI: info tool: clusters with an unknown size will now be read
and displayed correctly.
* 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).
* 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.
* 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\…").
Version 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.
Bug fixes
* all: fixed handling of Unicode code points > U+FFFF.
* 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. `\\servername\sharename\path\to\file.m2ts`). The GUI emitted
errors such as "the JSON output could not be parsed" in that case.
* 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.
* 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.
* 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.
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.
Version 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.
* 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.
* 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.
* 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.
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.
* 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.
* source code: fixed compilation with Boost 1.69.0 after API-breaking change
to the `boost::tribool` class.
Version 29.0.0 "Like It Or Not"
Important notes
* The string formatting library used was switched from boost::format to
[fmt](http://fmtlib.net/). 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.
* 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.
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.
* mkvmerge: MP4 reader: fixed handling of atoms whose size exceeds the parent
atom's size.
* 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.
* 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.
* 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.
* MKVToolNix GUI: Windows: the application manifest is now included properly
so that Windows actually recognizes it.
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](http://fmtlib.net/) 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.
- restrict GUI option to Qt.
- disable compiler optimisation override
- new features:
- support for Apple ProRes videos in MOV/MP4 files
- much improves MPEG TS support
- support WebVTT subtitles
- output of Big Endian PCM to WAV supported
- ${TOOL}_OPTIONS can be used for passing additional arguments to
individual programs via environment
- support for core-less DTS streams consisting solely of XLL extension
sub-streams
- time codes computation for AAC, AC-3, DTS, MP3 and TrueHD packets
was rewritten
- support TrueHD tracks inside MPEG TS by keeping (additional) AC-3
audio track
- support MPEG-H p2/HEVC video in MP4 container
- support for AAC in LOAS/LATM multiplex if read from MPEG transport
streams or raw LOAS/LATM AAC files
- support for h.265/HEVC from MPEG TS and elementary streams
- support for teletext subtitles from MPEG TS
- faster format detection for text subtitle formats
- support for DTS audio streams in MP4
- support for VP9 from IVF and WebM files
- support for Opus
- support for reading ALAC from CAF and MP4 files
- 5 years of various bug fixes and GUI improvements.
Changes:
- mkvmerge: enhancement: Added support for MIME type detection via
libmagic (patch by Robert Millan with heavy modifications by
myself).
- mkvmerge: bug fix: Theora headers were not handled correctly.
- mkvmerge: bug fix: The WavPack reader was broken on 64bit
systems (e.g. AMD64).
- mkvmerge: bug fix: The Theora timecode handling was broken, and
Ogg/Theora files were not identified correctly (they showed up as
"unknown" in mmg).
- mmg: enhancement: The 'adjust timecodes' function accepts
timecodes like 'XXXXXunit' with 'unit' being 'ms', 'us', 'ns' or
's'.
- mkvmerge: enhancement: mkvmerge will no longer refuse to
concatenate files with differing Codec Private contents and only
issue a warning in such cases.
- mkvmerge: bug fix: Quicktime/MP4 reader: Added support for
version 1 media headers ('mdhd' atom) with 64bit fields. Fixed the
duration of the last packet passed downstream. Fixed overflow
issues during re-scaling from the Quicktime/MP4's time scale to
nano seconds used by mkvmerge.
- mkvmerge: bug fix: Muxing wasn't working Windows 9x/ME because
mkvmerge was trying to use Unicode file access functions when
determining which directories to create. Fixes Anthill bug #177.
- mkvmerge: new feature: Added support for the "Delay:" feature
and for negative timecodes in VobSub IDX files.
- mmg: new feature: If mmg is set to automatically fill in the
output file name then it will clear the output file name once all
input files have been removed.
- mmg: bug fix: Fixed a crash that occured if the user removed an
attachment and clicked somewhere in the empty space in the
attachment list. Occured only on Windows.
- mmg: bug fix: Re-added Chinese to the list of popular languages
(those are listed first in the language drop down boxes).
- mkvmerge: bug fix: The last change to the ISO 639 language
handling broke the VobSub reader so that it reported the wrong
language codes. This also caused mmg to not display the correct
language after adding a VobSub file.
Changes:
- new features (e.g., - splitting after arbitrary timecodes
and muxing of USF subtitles)
- lots of bugfixes since 1.4.2
See ChangeLog within the distfile for details.
Changes:
- added help file
1.4.1:
======
- bugfixes
1.4.0:
======
- support for MPEG-1 and MPEG-2 video read from PS and ES streams,
- support for AVC (aka h.264) video from MP4 files,
- support for concatenating files,
- support for the new elements needed for menus,
- support for WAVPACK4 lossless and lossy audio,
- support for extracting VobSubs and
- added an online help to mmg accessible by pressing F1
Changes:
- mkvextract: bug fix: The track extraction was creating the
output file twice if the Matroska file contained a copy of the
track headers. This resulted in the first extracted file being
overwritten at the end of extraction.
- mmg: bug fix: If the file title is read from an input file, not
modified by the user and that input file is removed again then the
file title will be unset.
- mkvmerge: enhancement: Converted the raw FLAC reader to use
another interface to the FLAC libraries. This results in a speedup
of up to 50%. Thanks to Josh Coalson for telling me about its
existence.
- mkvmerge: new feature: Added two warnings. One about invalid
track IDs that were used on the command line but that don't
correspond to an available track in a file and one if no track
will be copied from a source file. Both warnings hint at bad
command line arguments.
- mkvmerge: Only write the segment duration as a 64bit float if
there is no video track present. This way users won't have to
update their DirectShow filter/apps for most files. Only
audio-only files need this precision anyway.
- mkvmerge: Changed the Ogg/OGM reader to use the stream number
and not its serial number as the track ID (meaning the track IDs
will be 0, 1, 2... etc. instead of the random numbers oggenc uses
as the serial numbers).
- mkvmerge: new feature: The CUE sheet parser now accepts INDEX
lines with indices from 00 up to 99 and implements the Red Book
specification for audio CDs that way. Patch by Vegard Pettersen
<vegard_p at broadpark adot no>.
- mkvmerge, mkvextract: bug fix: ASS was handled like SSA which is
not correct in each case, especially when extracting it.
- mkvextract: bug fix: The WAV writer was not endian safe.
- mkvmerge: bug fix: The charset was not set correctly on Solaris.
- mkvmerge: bug fix: mkvmerge crashed when reading Matroska files
that contain an empty tag list.
- mkvmerge: bug fix: Some Matroska files that e.g. have had their
timecodes offset with the Matroska Stream Editor or other means
may contain timecodes that caused mkvmerge to print a warning
about "timecode < last_timecode". A new fix implements a
workaround and a warning message with a proper explanation for
this case.
- mkvmerge: bug fix: Older Matroska files containing chapters
caused mkvmerge to abort muxing.
- mkvmerge: bug fix: mkvmerge was only copying the last tag of a
list of tags applying to a track from a Matroska file.
- mkvmerge: bug fix: mkvmerge will show a nice warning if the
entries in a SRT have non-continuous timestamps. It'll also sort
the entries by their start timestamp instead of throwing the
generic "timecode < previous timecode" warning.
- mmg: bug fix: The 'Matroska file analysis' window that occurs
when reading chapters from a Matroska file did not disappear if it
was minimized when the process finished.
- mkvmerge: new feature: Added a new parameter
--aspect-ratio-factor.
- mkvinfo: bug fix: Strings from chapters and tags were shown in
UTF-8 instead of the local charset. This bug was introduced around
2004-08-28.
- mkvmerge: bug fix: Not all chapter elements were copied
correctly from a source Matroska file.
- mkvextract: Sped up the extraction of attachments, chapters,
cuesheets and tags by using the seek head information and not
parsing the full file each time.
- mkvmerge: bug fix: The Matroska reader was not handling very big
cluster timecodes correctly. Those can occur when the timecode
scale factor is very small.
- mkvmerge: bug fix: Empty clusters in Matroska files no longer
make mkvmerge think that file has been read completely.
- mkvmerge: new feature: Added support for MP2 (and maybe MP3)
audio in MP4 containers.
- mkvmerge: new feature: The chapter and tag parsers accept XML
element attributes instead of sub-elements for those sub-elements
that only contain data. Example for a "simple tag":
<Simple Name="ARTIST" String="Tori Amos"/>
- mkvmerge: bug fix: The automatic MIME type detection based on
the file name extension was using the file name extension as the
MIME type.
- mkvmerge, mkvinfo: new feature: Added the four new PixelCrop
elements.
- mkvmerge, mkvextract, mkvinfo: new feature: Added
'TargetTypeValue' as a supported tagging element.
- mkvmerge, mkvextract, mkvinfo: Complete rewrite of the chapter
and tag parsing and output functions. Additions will be much
easier now.
- mkvmerge, mkvextract, mkvinfo: feature removed: Dropped support
for the very old and deprecated tagging system. No one used it
anyway.
- mkvmerge: new feature: Allow the use of two-letter ISO639-1
country codes in for the '--language' parameter. Those will be
converted to the corresponding ISO639-2 language code
automatically.
- mkvmerge, mkvinfo, mkvextract: new feature: Added support for
the 'TargetType' tag element
- mkvmerge: bug fix: The MP3 handling was broken on weird and rare
occasions when reading MP3 from a Matroska file.
- mkvmerge: bug fix: Removed a bogus warning about an attachment's
MIME type having been given more than once.
Changes:
- patch-ab no longer needed
0.9.4:
======
- mkvextract: new feature: Added support for extracting TTA tracks
to TTA files.
new feature: Implemented the extraction of chapter
information and tags as a CUE sheet which is
the reverse operation to using a CUE sheet
with mkvmerge's '--chapters' parameter.
- mkvmerge: bug fix: SRT file recognition failed if the file
contained spaces at the end of the first line.
bug fix: Broken VobSub .idx files which contain
timestamps going backwards no longer crash
mkvmerge. A warning will be printed for such
inconsistencies.
bug fix: The Matroska reader contained a nice little
illegal memory access (introduced in 0.9.3 with
the fixes to the 'default track' handling).
bug fix: The SSA reader was segfaulting if a line
contained an empty text field.
bug fix: The CUE sheet parser interpreted a timestamp
as HH:MM:SS (hours, minutes, seconds). The
correct spec is HH:MM:FF (hours, minutes,
frames with 1 frame = 1/75 second).
new feature: The pregap from a CUE sheet is converted
into two sub-chapters (one for "INDEX 00", one
for "INDEX 01"). These sub-chapters have their
'hidden' flag set.
- mkvinfo: bug fix: Fixed compilation for MATROSKA_VERSION = 2.
bug fix: Fixed compilation with gcc 3.2.
- mmg: new feature: Added support for the two flags 'hidden' and
'enabled' in the chapter editor.
Changes:
- add patch to fix compilation when MATROSKA_VERSION is set to 2 or bigger.
Patch sent to Moritz Bunkus and it's fixed in svn repo.
- take MAINTAINERSHIP
0.9.3:
======
- mmg: bug fix: The 'default track' checkbox was broken.
- mkvmerge: bug fix: Using '--cues ...:all' was broken for audio tracks
that use lacing.
bug fix: The latest OpenDML AVI files generated by mencoder
were not read correctly. Only the first RIFF chunk
was processed.
bug fix: The default track feature did not work correctly
with the new --track-order.
new feature: When using a CUE sheet as a chapter file
mkvmerge will automatically convert some of the
entries to tags.
new feature: Added support for TTA lossless audio files.
If the user does not specify a --language for a track 'und'
('undefined') will now be used instead of 'eng'. The user
can use the new option '--default-language' to change that.
Changes:
- explicitly disable wxWindows support
- mark it as using c++
- prepare for mmg import
- delint
0.8.9:
======
- mmg: new feature: mmg will ask for confirmation before overwriting
a file. This can be turned off on the settings tab.
- mmg: new feature: Implement drag'n'drop of files onto the input,
attachment and chapter tabs. For the input and attachment tabs
it works like pressing the 'add' button. On the chapters tab it
works like calling 'Chapter Editor -> Open'.
- mkvinfo/mmg: Enabled compilation with wxWidgets 2.5 and Unicode
enabled builds of wxWidgets.
- all: Increased the precision for timecodes in chapter files to
nanoseconds (optionally, you can still use fewer digits after
the '.').
- mkvmerge: Fixes for compilation with gcc 3.4.
- mkvmerge: bug fix: Some strings read from RealMedia files were not
zero-terminated resulting in broken track recognition for some
files.