Category Archives: Matroska

MKVToolNix v65.0.0 released

Heyo!

Here it is, the first release of 2022. This time I’ve worked a bit on implementing a handful of feature requests/enhancements. Have fun with them!

Nothing’s changed for package managers.

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.

Bug fixes

  • mkvmerge: Matroska reader: DVB subtitle tracks with a codec private data size of more than five bytes are accepted now, too. Fixes #3258.

Have fun 😁

MKVToolNix v64.0.0 released

Hey everyone.

Hope y’all are having a couple of stress-free days behind & ahead of you, whatever you might or might not celebrate. I still haven’t had much energy to invest into coding, to be honest, but decided to do one last release in 2021 anyway, mostly fixing a couple of smaller issues — especially the wrong-sized icons on high DPI displays, which I’ve gotten so many bug reports about 😁

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available over the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • MKVToolNix GUI: language dialog: when the user switches between the two edit modes, the mode’s corresponding first control is automatically focussed.

Bug fixes

  • all: language lists: the entries for “Ancient Greek (to 1453)” and “Modern Greek (1453-)” have been renamed to “Greek (ancient, -1453)” and “Greek (modern, 1453-)” respectively in order to be easier to find.
  • mkvmerge: VobSub reader: files containing id: -- lines to indicate that the track language isn’t known were rejected by mkvmerge. Now they’re accepted, and und (undetermined) is used as the language. Fixes #3246.
  • MKVToolNix GUI: chapter editor: the “Save to Matroska or WebM file” function was using the wrong standard file dialog (the “open file” one instead of “save”), leading to confusing button names. Fixes #3242.
  • MKVToolNix GUI: high DPI scaling: fixed the icons in the tool selector having the wrong size for scaling factors other than 100% or 200%. Fixes #3229.

Build system changes

  • The bundled fmt library was updated to v8.0.1.
  • The bundled nlohmann-json library was updated to v3.9.1.
  • The bundled pugixml library was updated to v1.11 revision 6a76cac.
  • The bundled utf8-cpp library was updated to v3.2 revision b85efd6.

Have fun 😁

MKVToolNix v63.0.0 released

Heyo!

The last couple of months have been pretty quiet regarding MKVToolNix as I’m still struggling to find time, motivation & energy for after-hour coding in general and work on MKVToolNix in particular. There are several topics on my TODO list that are rather big & require lots of work, e.g. improving Dolby Vision support further or implementing support for VVC/H.266. I’m therefore glad that some users posted a couple of bug reports & feature requests that turned out to be small enough for me to fix & implement quickly: sometimes such small wins are desperately needed.

But that’s probably more than you wanted to know. Anyway, here’s a new release with a couple of small improvements.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are stil being built and will be available over the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • mkvmerge: AC-3 parser: E-AC-3 with BSID values > 10 and ≤ 15 are recognized now, too. Implements #3211.
  • mkvmerge: when using language codes for track selection (e.g. -a und,en) all tracks that do not have a language property (due to their container not providing one, e.g. AVIs) will be treated as if they did have one set to und (“undetermined”) as that is the language the track will have in the Matroska file anyway. Before this change it wasn’t possible to match such tracks via language codes.
  • MKVToolNix GUI: only on Windows: when compiled with Qt ≥ 5.14 and < 6 (which is the case for the officially provided binaries) fractional screen scaling will be enabled. This means that the GUI will be scaled appropriately if Windows is set to 125%, 150% or 175% instead of being too small or too large. Implements #3043.
  • MKVToolNix GUI: the spinner in the bottom right corner will now be hidden when no jobs are currently running. Implements #3225.
  • MKVToolNix GUI: header editor: a new column has been added to the tree view showing the status of the “track enabled” flag. The information is also shown on the track overview page on the right. Implements #3228.
  • MKVToolNix GUI: header editor: users can now reorder tracks by dragging & dropping. Implements #3227.

Bug fixes

  • mkvmerge: AVI reader: fixed reading AVI files that contain vprp video properties header chunks; reading aborted too early. Fixes #3209.

Have fun! ☺

MKVToolNix v62.0.0 released

Hey y’all,

not a lot’s been happening over the last couple of weeks wrt. to coding for me, but I thought I’d publish the bug fixes I’ve amassed since the last release. So here you go, a fresh v62.

For package maintainers there was a small change. See the NEWS below.

You can download the source code or one of the binaries. The Windows and macOS binaries as well as the Linux AppImage are available already. The other Linux binaries are still being built and will be available over the course of the next couple of hours.

Here are the NEWS since the previous release:

New features and enhancements

  • all: IETF BCP 47/TFC 5646 language tags: all ISO 639 languages are now available, even the ones that aren’t of types “Constructed”, “Living” or “Special”.
  • mkvmerge, mkvpropedit: chapters: both programs will now write elements set to their default value, too (e.g. the legacy language element if it’s set to eng). This is done to be more consistent with how MKVToolNix GUI writes chapters. Implements #3210.
  • MKVToolNix GUI: multiplexer: when adding new files as attachments the GUI checks if there are other attachments with the same name. If so, the GUI would ask whether to skip the affected files or add them anyway. There’s now an option in the preferences to always skip such files, and it’s enabled by default. Implements #3213.
  • MKVToolNix GUI: chapter editor: removed the support for explicitly setting the legacy country elements. Instead the legacy country elements are derived from the region parts of the IETF BCP 47 languages. Part of the implementation of #3193.

Bug fixes

  • mkvmerge: fixed a crash when splitting by chapters is enabled but there are no chapters at all. Part of the fix of #3198.
  • mkvmerge: the error message when trying to split by a chapter number that doesn’t exist contained the wrong number of chapters that actually do exist. Part of the fix of #3198.
  • mkvmerge: AVC ES parser: fixed mkvmerge aborting due to uncaught exception when encountering bad SPS data. Part of the fix of #3176.
  • mkvmerge: AVC/H.264 parser: re-added the hack --engage all_i_slices_are_key_frames which was accidentally removed in release v61.
  • mkvmerge: AVI reader: fixed a crash trying to allocate too big of a memory chunk due to an integer overflows in check conditions. Part of the fix of #3176.
  • mkvmerge: HEVC ES parser: fixed another issue with frame type recognition. Certain frames were marked as B frames/discardable on the container level even though they could be reference pictures. Now only SLNR pictures (sub-layer non-reference) are marked that way. Fixes #3192.
  • mkvmerge: HEVC ES reader: improved file content detection for HEVC ES files with wrong file name extensions (e.g. .mkv), which fixes them being mis-detected as something else, e.g. DTS. Fixes #3201.
  • mkvmerge: HEVC ES parser: “end of sequence” NALUs are kept now, and no superfluous flushing will be done when one is found. This prevents splitting NALUs into two different Matroska blocks when they should really be part of a single one, also causing problems with erroneous timestamps. Mostly affects DoVi NALUs. Fixes #3202.
  • mkvmerge: Matroska reader, TrueHD: mkvmerge will now probe much more TrueHD frames trying to find the first sync frame. This fixes track detection in situations when a TrueHD doesn’t start with a sync frame, e.g. when the source file’s the result of splitting between sync frames.
  • mkvmerge, MKVToolNix GUI’s chapter editor: IETF BCP 47/RFC 5646 language tags: when reading chapters from MPLS playlist files, the ChapLanguageIETF element will now be set to the configured default chapter language, not just the legacy ChapterLanguage element. Part of the fix of #3193.
  • mkvmerge, mkvpropedit, MKVToolNix GUI’s chapter editor: IETF BCP 47 elements will now always be created before writing chapters unless IETF BCP 47 elements are disabled. Part of the fix of #3193.
  • mkvmerge, mkvpropedit, MKVToolNix GUI’s chapter editor: when a chapter display element contains legacy language & country elements but no IETF BCP 47 elements and IETF BCP 47 elements aren’t disabled, the IETF BCP 47 elements created will contain the region from the legacy element. Part of the fix of #3193.
  • mkvmerge, mkvpropedit, MKVToolNix GUI’s chapter editor: Legacy country elements are now created when IETF BCP 47 elements are present & contain a region code allowed in legacy country elements. Part of the fix of #3193.

Build system changes

  • The tools sub-directory is now always built. The corresponding configure option --with-tools has been removed. The install target still doesn’t install them, though.

Have fun ☺