跨平台Matroska处理工具-MKVToolnix
2011-03-12 10:04:04 阿炯

Mkvtoolnix (又叫Matroska toolkit),是一套功能强大的mkv(Matroska)格式制作和处理的工具,支持将多种视频、音频、字幕等格式封装成mkv格式。


MKVToolnix -- Cross-platform tools for Matroska.

MKVToolnix is a set of tools to create, alter and inspect Matroska files under Linux, other Unices and Windows. They do for Matroska what the OGMtools do for the OGM format and then some.

MKV 是 Matroska 的一种媒体文件,Matroska 是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中。MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流。

MKVToolNix 是 Matroska(MKV)的多媒体处理工具包,可以用来编辑MKV视频文件,分割文件,视频同步录音。

它包含以下命令行工具:
mkvmerge – 从其他格式创建的Matroska文件的工具

mkvinfo – 用户能够获取有关Matroska文件曲目信息的工具

mkvextract – 即从Matroska文件提取曲目为其他格式的工具

最新版本:9.0
修复了大量的 bug,大大改进对最新发布的 wxWidgets 3.0.0 的兼容性;增加葡萄牙语的翻译;可通过拖拉操作实现对章节的重新排序。最主要的特性是这是第一个支持 h.265/HEVC 的版本。

最新版本:11.0
该版本修复了 HEVC/h.265 和 AVC/h.264 解析器中出现的几个重要错误,在修复的错误中会静默地产生一些无效的文件。建议大家更新。还包括对 GUI 的一些较小的增强功能。值得注意的是实现的这几个功能是以前被要求的:在当前工作完成后播放声音或关闭计算机。更多详情请参考发布主页

最新版本:20.0
开发者表示该版本修复了 mkvmerge 中的一些错误,并删除了一年前就弃用的那些选项和功能。另外一个巨大的变化是几乎完全重写 mkvinfo 的内部,目标是在下一个版本中将其 GUI 包含到 MKVToolNix GUI 中,新的 GUI 将会有更多的功能。结果是由命令行实用程序生成的输出也有变化。请参阅更新日志的相应的条目了解更多详情。对于包维护者的一个重要变化是 cmark 库的新要求。 Fedora/CentOS/openSUSE 已经包含必要的软件包(cmark-devel),而 Debian/Ubuntu 目前还没有(只有 cmark 软件包,但只包含二进制文件,而 MKVToolNix 需要库和头文件)。

最新版本:22.0
此版本首次支持 AV1 标准,同时对 GUI 中的信息工具也做了一些改进。新特性与功能完善:
mkvmerge: AV1: 增加了对从 IVF,WebM 和 Matroska 文件读取 AV1 视频的支持。
mkvmerge: FLAC: mkvmerge 下面可以忽视 FLAC 文件中的 ID3 标志。
mkvinfo: “SimpleBlock” 和 “BlockGroup” 中的帧的大小和位置现在将以与其他元素相同的方式显示。
MKVToolNix GUI: info tool: 实现在第一个集群之后读取文件中的所有元素。
MKVToolNix GUI: chapter editor: 在 "additional modifications" 对话框中增加移除所有末端时间戳的选项。
mkvmerge: MP4 reader: 修复读取 ESDS 音频头部问题。
mkvmerge: MP4 reader: 轨道头中AAC音轨追踪信号中有八个通道,但编解码器专用配置中只有七个频道。
mkvmerge: 文件类型头字段更正。
mkvpropedit, MKVToolNix GUI header editor: 强制性元素如果在规格中有默认值,那么现在可以被删除。
source code: 在 FreeBSD 上用 clang ++ 5.0 修正了一个编译错误。

最新版本:36.0
mkvmerge 可以附加 AV1,VP8,VP 9,H.264/AVC 和 H.265/HEVC 的像素尺寸不同的轨道
修复了 H.264 和 H.265 编解码器名称的拼写
Blu-ray MPLS 处理:mkvMerge 现在将找到相应的 M2TS 文件,即使在 MPLS 文件中没有将  clip_codec_identifier播放列表项字段设置为 M2TS 时也是如此
mkvMerge:修复了同时使用 DOS 样式和 Unix 样式的行尾的文本文件的处理,否则导致一些问题,例如,没有正确解析文本文件

最新版本:56.0
MKVToolNix 56.0 于2021年4月初发布了。新的功能和改进:
mkvmerge, mkvpropedit: tags: 程序将不再写入强制性的标签元素,并设置默认值;
mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: 程序将不再写入强制性的章节元素,并设置默认值;
mkvextract: chapters: 如果源文件不包含 ChapterLanguage 元素,mkvextract 将不再将设置为 eng 的 ChapterLanguage 元素添加到生成的XML内容中。
MKVToolNix GUI:多路复用器:当使用 "文件和轨道下方的标签小部件 "布局选项来处理轨道属性时,"常规选项 "标签中的元素将使用六行四列,而不是十二行两列,大大降低了所需高度。
mkvmerge: AAC 阅读器:修复了 mkvmerge 读取大于 2 GB 的 AAC 文件时,出现无法分配内存的信息而中止的问题;
mkvmerge: chapters: 当选项 --disable-language-ietf 被置于创建章节的选项之后时,ChapLanguageIETF 元素仍会被创建;
mkvmerge: chapters: 当使用了 --disable-language-ietf 选项时,ChapLanguageIETF 元素不会被写入,即使读取包含这些元素的源文件;
mkvmerge: tags: 当使用 --disable-language-ietf 选项时,TagLanguage-IETF 元素不会被写入;
mkvmerge: tags: mkvmerge 将不再为其创建的跟踪统计标签写入语言元素,由于 und 是传统标签语言元素的默认值,使得有效语言为 "undetermined";
mkvmerge: tags: XML 标签解析器现在将验证 <Tag> 元素的所有 <Simple> 子元素,而不仅仅是每个 <Tag> 的第一个;
mkvmerge: tags: XML 标签解析器现在使用符合规范的 und ("undetermined") 作为 <Simple> 标签的默认语言,而不是 eng;
mkvmerge, mkvpropedit: tags: mkvmerge 不再为轨迹统计标签设置 "目标类型"(之前使用 MOVIE)。"目标类型值 "仍然会被设置为50;
mkvmerge, mkvextract: HEVC/H.265: 这两个程序现在将规范VPS、SPS 和 PPS NALU 的位置。每个关键帧的前缀正好是当前活动参数集的一个副本。这修复了某些类与分割/追加相关的错误;
mkvinfo:当使用较新版本的 fmt 库编译时,某些数字无法正确输出;
MKVToolNix GUI:多路复用器:从文件名推导出音轨语言时,将再次不区分大小写地匹配语言;
MKVToolNix GUI:章节编辑器:在偏好设置中没有选择默认国家的情况下添加章节名称时,编辑器将不再创建空的 ChapterCountry 元素;
构建系统更改与捆绑的 fmt 库更新到了 v7.1.3。
更多详情可查看此处

最新版本:75.0
75.0 正式于2023年3月下旬发布,该版本只是修复了一些错误,并增加了一个从 Timed Text 到 Matroska 简单格式(类似 SRT)的转换器。更新内容如下:
mkvmerge: MP4 reader: mkvmerge 现在可以读取 Timed Text(FourCC tx3g)字幕轨,并将其转换为 Matroska 的简单文本字幕格式( S_TEXT/UTF8;只有文本,没有样式)。
改回使用 boost::filesystem 函数来创建目录,而不是为了解决 std::filesystem 中的错误而引入的函数。后者在 v74 版切换到 boost::filesystem::path 后,不能正确处理 UNC 路径。
mkvmerge: VobSub reader: mkvmerge 现在会在 VobSub 识别过程中探测 .idx 文件,即使 .sub 文件被作为源文件传递。
MKVToolNix GUI: 在寻找 mkvmerge 或 mediainfo 可执行文件中由于无法访问文件夹,GUI 在启动时可能会出现异常。
MKVToolNix GUI:当第一次打开偏好设置时,如果操作系统的语言对 MKVToolNix 不可用,用户界面可能会预先选择界面语言列表中的第一个条目。例如:此前,如果系统语言设置为 en_GB,尽管 MKVToolNix 支持 en_US,但 MKVToolNix 默认不会选择,更新后现在 MKVToolNix 将选中 en_US。
MKVToolNix GUI:多路复用器:当添加文件时,GUI 对章节 / 标签 / 片段信息文件有特殊处理。这是通过将它们的内容与某些模式进行比较来完成的。
mkvpropedit,GUI header editor:删除了对废弃的 "minimum cache" 和 "maximum cache" 轨道标题元素的支持。
更多详情可查看此处

最新版本:77.0
77.0 正式于2023年6月上旬发布,这个版本主要修复了 Windows 上黑暗应用模式的混乱情况,此外 mkvmerge 现在将默认按照轨道的类型进行排序。
mkvmerge:目标文件中的轨道现在将自动按其类型排序,除非用 -track-order 选项指定轨道顺序。顺序如下:视频轨道优先,其次是音频和字幕轨道,其他很少使用的轨道类型排在最后。同一类型的轨道将按照其源文件在命令行参数中出现的顺序排序。
多路复用器:用于区分源文件的默认列表颜色不再包括最暗的一层,因为它们很难相互区分。GUI 现在会在开始复用或将作业添加到作业队列时检查所有视频、音频和字幕轨道的 "轨道启用" 标志的状态。如果某个类型的轨道没有开启标志,GUI 将为该类型的第一个轨道开启标志。
header 编辑器:轨道 / 附件视图中的列和 "轨道类型" 页面上的值现在将在每次相应的属性改变时更新,而不是显示磁盘上的文件。
macOS: 当你从 DMG 安装应用程序时,它会将自己注册为其支持的文件类型的备用处理程序。这允许在 Finder 中使用 "Open with" 上下文菜单操作。
Windows:偏好设置中的一个新设置让用户可以选择是否使用浅色或深色调色板,或遵循系统设置。
修复了使用 fmt v10.0.0 进行编译的问题
更多详情可查看此处



官方主页:https://mkvtoolnix.download/
该文章最后由 阿炯 于 2023-06-06 09:14:43 更新,目前是第 2 版。