Tag Archives: Matroska

MKVToolNix v76.0 released

Here’s yet another release, v76.0. This is a slightly bigger one in terms of the number of fixed bugs & implemented improvements. Due to the change wrt. the handling of BlockAddition elements (which is required for HDR content for WebM, VP9, AV1`) I strongly recommend users to upgrade.

NOTE: Windows 11 users having problems with the dark mode & links being too dark: I’ve implemented a workaround for hat since the release. Please download & use one of the latest continuous builds.

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:

Important notes

  • mkvmerge: removed the option --blockadd. Removing block additional data is not possible anymore, as it is often required for proper decoding. Part of the implementation of #3511.

New features and enhancements

  • mkvmerge: JSON file identification: added a child element called num_index_entries to the properties track element containing the number of index entries found for a track. Currently only implemented for Matroska files where it contains the number of cue points. See #3510.
  • mkvmerge: the maximum block addition ID track header value is now calculated automatically from both the existing mappings & the actually used block additions in the block groups. Part of the implementation of #3511.
  • mkvmerge: Matroska reader: when reading WebM files that use block additions with ID 4 (HDR for VP9) an appropriate block addition mapping will be created automatically. Part of the implementation of #3511.
  • mkvmerge: MP4 reader: the title/movie name meta data (content of the udta.meta.ilst.©nam atom) will now be copied over as the segment title track header attribute. Part of the implementation of #3475.
  • mkvmerge: MP4 reader: the comment & encoder meta data (content of the udta.meta.ilst.©cmt & ….©too atoms) will now be copied over as global tags COMMENT & ENCODER respectively. Part of the implementation of #3475.
  • mkvmerge, MKVToolNix GUI’s multiplexer: added an option to stop processing after the primary video track ends called --stop-after-video-ends. This discards any remaining packets of other tracks. Part of the implementation #3506.
  • MKVToolNix GUI: only on Windows: the GUI now uses Qt’s “Fusion” style instead of the deprecated “Windows Vista” style. The advantage is that as of Qt 6.5 the “Fusion” style properly supports Windows 10’s & 11’s dark application mode. The Windows binaries are now built with said Qt version. Therefore the option to disable the dark mode has been removed. Fixes #3264 and likely others.
  • MKVToolNix GUI: multiplexer: automatically setting the destination file name: added an option in the preferences for using the first source file’s directory name instead of its file name as the basis for the destination file name. Implements #3512.
  • MKVToolNix GUI: multiplexer: double-clicking on certain columns in the “tracks” view will now toggle them directly (columns “Default track” & “Forced track”) or activate the corresponding control (columns “Language”, “Name” & “Delay”). Double-clicks on other columns will do what they’ve done before, too: toggling the “Copy item” state. Implements #3513 & others.
  • MKVToolNix GUI: the dialog for editing language tags is now created only the first time the user wants to edit a language tag & cached afterwards instead of creating a new instance each time. This makes subsequent uses instant.

Bug fixes

  • mkvmerge: mkvmerge will now only try to probe for VobSubs if the name of the file to identify ends in either .idx or .sub, preventing mis-identification of other file types if VobSubs with the same base name exist in the same directory. Fixes #3508.
  • mkvmerge: AC-3: mkvmerge will now skip certain types of garbage data (16 bytes starting with 0x01 0x10) that can occur before each sync frame, fixing the file not being identified as AC-3. Fixes #3484.
  • mkvmerge: Matroska reader: when reading files that use block additions with IDs other than 1 (e.g. 4 for HDR for VP9) the IDs will now be kept & written to the output file. Before no ID would be written, effectively using 1 as that’s the default value for the corresponding element. Part of the implementation of #3511.
  • mkvmerge: mkvmerge will no longer write block addition mappings or the max block addition ID track header elements when creating a WebM file as those elements aren’t supported there. Part of the implementation of #3511.
  • mkvpropedit: fixed replacing chapters & tags in files that don’t contain tracks. Fixes #3498.

Have fun 😁

MKVToolNix v75.0 released

Heyo!

Time for another release. Again nothing major, just some bug fixing & adding a simple converter from timed-text to Matroska’s simple format (SRT-like).

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: MP4 reader: mkvmerge will now read Timed Text (FourCC tx3g) subtitle tracks & convert them on the fly to Matroska’s simple text subtitle format (S_TEXT/UTF8; text only, no styles). Implements #2208, #2242, #2613, #3000, #3243, #3418 and possibly others.

Bug fixes

  • all: switched back to using boost::filesystem functions for creating directories instead of the ones introduced to work around bugs in std::filesystem. The latter didn’t work correctly with UNC paths after the switch to boost::filesystem::path in v74. Fixes #3483.
  • mkvmerge: VobSub reader: mkvmerge will now probe the .idx file during VobSub identification even if the .sub file is passed as the source. Avoids mis-detection of the .sub as MPEG program streams. Fixes #3489.
  • MKVToolNix GUI: the GUI could abort with an exception on startup while looking for the mkvmerge or mediainfo executables due to inaccessible folders. Fixes #3481.
  • MKVToolNix GUI: preferences: when opening the preferences the first time the UI might pre-select the first entry in the list of interface languages if the operating system’s language is not available for MKVToolNix. This might also happen on Linux if e.g. en_GB is set, even though en_US is available. Now English (en_US) will be selected instead. Fixes #3486.
  • MKVToolNix GUI: multiplexer: when adding files the GUI has special handling for chapter/tags/segment info files. This is done by comparing their content to certain patterns. This recognition could wrongfully be triggered if any such file was embedded in another file verbatim, e.g. with a chapter XML file attachment in a Matroska file. When trying to add that Matroska file, the GUI would treat it as a chapter file instead of a regular one. This content-based detection was fixed. Fixes #3487.

Other changes

  • mkvpropedit, GUI’s header editor: removed support for the deprecated “minimum cache” & “maximum cache” track header elements.

Have fun! 😁

MKVToolNix v74 released

Hey y’all!

MKVToolNix v74 is out. This is another one in a longer line of small-ish bug fix releases. Nothing too earth shattering. Anyway, have fun with it.

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

  • mkvmerge: SRT handling: added a hack called --engage keep_whitespaces_in_text_subtitles which disables stripping whitespaces from the start & end of each line of SRT entries during muxing. Part of the implementation of #3470.

Bug fixes

  • all: Windows: UNC paths of type \\?\C:\… are supported again by switching back to Boost’s file system library instead of using C++17’s file system library. Fixes #3058.
  • mkvmerge: AVC/H.264 & HEVC/H.265 packetizers: when appending tracks the pixel dimensions will be checked & muxing will be aborted if they don’t match. Fixes #3480.
  • mkvmerge: file type detection: file types that can be detected unambiguously by their content (e.g. Matroska, MP4, WAV…) will now preferred in the detection order over file types based on their extension. Prevents certain cases of mis-detection, e.g. DTS in WAV but with a file name extension of .dts being detected as the wrong type of DTS. Fixes #3462.
  • mkvmerge: SRT handling: whitespaces will now be stripped from the start & the end of each line of each entry, not just from the end of the last line. Part of the fix of #3470.
  • mkvextract: SRT extraction: whitespaces will not be stripped from the start & end of the whole entry anymore. Part of the fix of #3470.
  • MKVToolNix GUI: multiplexer: when adding multiple files that include certain file types (chapters, segment info and tag files) and when the choice where to add them is “all files to a single new tab”, these certain file types will now be added in the newly added tab as well instead of the current tab that had already been open. Fixes #3469.
  • build system: fixed compatibility with Ruby 3.2.0 by using FileTest.exist? instead of File.exists?, Dir.exists? & FileTest.exists? which were removed in that release.

Build system changes

  • MKVToolNix is now using & requiring Boost’s “file system” and “system” libraries again instead of C++17’s file system library. This is due to gcc’s library not supporting UNC paths of types \\?\C:\dir\file.ext.

Have fun 😁

MKVToolNix v73.0 released

Hey y’all!

Even though not much has happened with MKVToolNix over the last six or seven weeks, I’ve decided to finalize the first release of the year, v73. Nothing overly amazing in it.

One note for macOS users that isn’t stated in the NEWS below: this release’s DMG was built with FLAC support again. Sorry for the confusing in the previous version; that was due to build system setup SNAFUs on my end.

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: greatly enhanced the speed of Base64 decoding which is used used e.g. when reading pictures embedded in Ogg or FLAC files or for binary data inside XML chapter & tag files. Even small blocks of data could take unreasonably long.
  • mkvmerge: added support for reading HEVC/H.265 video from FLV containers. Implements #3466.

Bug fixes

  • mkvmerge: splitting: fixed a typo in the string output in GUI mode regarding the timestamps before which splitting was done. See #3421.
  • MKVToolNix GUI: job output: after having run multiple jobs the “Clear output” functionality only reset the visible parts. However, using the “save output” function would also save the output generated before the user used “clear output”. Now only the output after the last use of “clear output” is saved. Fixes #3438.
  • build system: when probing for the FLAC library the Ogg libraries will be linked with the compiled test program as well. This fixes detection if the pkg-config settings for FLAC don’t list Ogg & the linker doesn’t find the library automatically (e.g. for my macOS builds). Fixes #3439.

Have fun 😁