MKVToolNix v20.0.0 发布,开发者表示该版本修复了 mkvmerge 中的一些错误,并删除了一年前就弃用的那些选项和功能。 另外一个巨大的变化是几乎完全重写 mkvinfo 的内部。目标是在下一个版本中将其 GUI 包含到 MKVToolNix GUI 中。它不会是 1:1 的副本;相反,新的 GUI 将会有更多的功能。结果是由命令行实用程序生成的输出以多种方式发生了变化。请参阅下面的相应的新闻条目了解更多详情。 对于包维护者的一个重要变化是 cmark 库的新要求。 Fedora/CentOS/openSUSE 已经包含必要的软件包(cmark-devel),而 Debian/Ubuntu 目前还没有(只有 cmark 软件包,但只包含二进制文件,而 MKVToolNix 需要库和头文件)。 重要说明 Feature removal: several deprecated features have been removed: mkvmerge: the deprecated options --identify-verbose (and its counterpart -I), --identify-for-gui, --identify-for-mmg and --identification-format verbose-text all command line tools: support for the deprecated, old, proprietary format used for option files all command line tools: support for passing command line options via the deprecated environment variables MKVTOOLNIX_OPTIONS, MKVEXTRACT_OPTIONS, MKVINFO_OPTIONS, MKVMERGE_OPTIONS and MKVPROPEDIT_OPTIONS mkvinfo: most of its code was re-written in order to lay the groundwork for including its functionality in MKVToolNix GUI but with more features than the existing mkvinfo GUI. The result is that a lot of its output has been changed slightly while keeping the basic layout. Changes include but aren’t limited to: Several element names are a bit clearer (e.g. Maximum cache instead of MaxCache). All timestamps and durations are now output as nanoseconds in formatted form (e.g. 01:23:45.67890123). All additional formats (e.g. floating point numbers output in seconds or milliseconds) were removed. Element names for chapters and tags are now translated if a translation is available. Elements located in wrong positions within the Matroska document are handled better. While mkvinfo’s output is mostly kept very stable, it is not designed to be parsed by other utilities. Even though I’ve tried hard to cram all changes and cleanups into this version, additional changes may be made in the next couple of releases depending on user feedback and bug reports. 新特性和增强 mkvmerge: AVC/h.264 packetizer (framed): access unit delimiter NALUs will now be removed. Implements #2173. Bug 修复 mkvmerge: AVC/h.264 parser: when fixing the bitstream timing information mkvmerge will now use exact representations of the desired field duration if possible. For example, when indicating 50 fields/second num_units_in_tick is set to 1 and time_scale to 50 instead of 5368709 and 268435456. Part of the fix for #1673. mkvmerge: AVC/h.264 parser: mkvmerge no longer assumes that encountering sequence parameter set or picture parameter set NALUs signal the start of a new frame. Fixes #2179. mkvmerge: AVC/h.264 packetizer (framed): when mkvmerge is told to fix the bitstream timing information, it will now update all SPS NALUs, not just the ones in the AVCC. Part of the fix for #1673. mkvmerge: MPEG TS reader: TS packet payloads will only be treated as PES packets if the payload actually starts with a PES start code. The prior behavior led to wrong timestamps and potentially broken frame data. Fixes #2193. mkvmerge: MPEG TS reader: mkvmerge will now drop incomplete PES packets as soon as an error is detected in the transport stream instead of passing the incomplete frame to the packetizer. An error is assumed either if the transport_error_indicator flag is set or if the value of the continuity_counter header field doesn’t match the expected value. Fixes #2181. mkvmerge: Opus: when re-muxing Opus from Matroska mkvmerge will now write "block duration" elements for all block groups where a "discard padding" is set, too. Fixes #2188. mkvmerge: SRT reader: mkvmerge can now handle SRT files with timestamps without decimal places (e.g. 00:01:15 instead of 00:01:15.000). mkvmerge: read buffer I/O class: the class could get out of sync regarding the file position of the underlying file I/O class causing wrong data to be returned on subsequent read operations. One result was that trying to identifying MPLS files that refer to very short M2TS files caused mkvmerge to segfault. mkvmerge: multiplexer core: if there’s a gap in audio timestamps, a new block group/lace will be started for the first frame after each gap. Before the fix the frame after the gap was often stored in the previous block group causing the gap to be in the wrong place: at the end of that block group. Fixes #1700. mkvextract: AVC/h.264: if two consecutive IDR frames with the same idr_pic_id parameter and no access unit delimiters are found between them, mkvextract will insert an access unit delimiter in order to signal the start of a new access unit. Fixes #1704. MKVToolNix GUI: update check dialog: Markdown links will now be converted to clickable links. Fixes #2176. build system: fixed a race condition when creating new directories if rake is run with -jN in newer versions of Ruby/rake. Fixes #2194. 构建系统的变更 cmark, the CommonMark parsing and rendering library in C, is now required when building the GUIs. 详情更新及下载地址请查看发布说明:https://www.bunkus.org/blog/2018/01/mkvtoolnix-v20-0-0-released/ MKVToolNix v20.0.0 发布,几乎完全重写 mkvinfo 内部下载地址