mkvtoolnix gui绿色版是一款视频编辑时用于提取所需模块的MKV格式视频处理工具,mkvtoolnix gui绿色版使您能够从Matroska视频文件(MKV格式)中获取轨道,即音频,视频和字幕流,章节和附件。该工具使您可以查看,追加和拆分曲目,章节和标签,以及编辑各种数据。
功能介绍
mkvtoolnix gui绿色版设置非常简单,因为您只需要将可执行文件复制到MKVToolnix的安装目录,然后单击运行即可。
该界面由具有简单布局的标准窗口构成,您可以在其中使用文件浏览器或拖放支持将MKV文件加载到工作环境中。该任务仅限于一次处理一个视频,因此您无法加载多个文件以进行批提取。
指定输出目录(与源目录或自定义目录相同)后,可以选择要提取的轨道,指定章节格式(XML或OGM)并初始化任务。另外,您可以在“命令提示符”对话框中查看相应的命令行参数并将其复制到剪贴板以进行进一步修改。
mkvtoolnix gui绿色版使用很少的CPU和RAM即可快速执行任务。它具有良好的响应时间,不会导致操作系统挂起,崩溃或弹出错误对话框。总而言之,此应用程序提供了一个直接的解决方案,用于提取MKV文件的各个部分。
软件特色
用于MKVToolnix的GUI提取模块,可快速从MKV文件获取音频,视频和字幕流,章节和附件。
该界面简单直观,意味着新手和有经验的用户都可以使用它,而不会遇到问题。此外,它由几个选项卡组成,可让您轻松访问所有可用选项。
可以借助“添加”按钮或“拖放”功能将视频上传到程序中。支持AVI,FLV,OGG,MOV,MPEG,MKV,MP4和FLAC...。
您可以自定义曲目名称,标签,时间码,还可以选择语言和默认曲目标志。此外,可以更改长宽比,显示宽度和高度以及裁剪和压缩。
您的操作日志可以保存到TXT文件中的HDD中,以供进一步分析。还可以显示命令行或将其复制到剪贴板。
使用说明
一般性备注
mkvmerge(1) 切割文件时会同时适当调整章节。这意味着每个文件只包含应用到该文件的章节项,时间码也将被调整到与各输出文件相匹配。
mkvmerge(1) 能够从 Matroska(tm) 输入文件中复制章节,除非使用 --no-chapters 选项明令禁用。来自各类来源 (Matroska(tm) 文件、Ogg 文件、MP4 文件、章节文本文件) 的章节通常不被合并,而是分成多个 ChapterEditions(章节版本)。仅当从多个Matroska(tm) 或 XML 文件读取的章节具有相同的版本 UID 时,章节才会被合并为单个 ChapterEdition。如果在其他情况下需要此类合并,用户需要先用 mkvextract(1) 从所有来源提取章节,手动合并 XML 文件然后再混流。
标签
Matroska(tm) 广泛支持废弃标签,还支持一种新式的、类似其他大多数容器使用的较简单的标签系统: KEY=VALUE。然而,在 Matroska(tm) 中这些标签也可以嵌套,KEY 与 VALUE 都是属于它们自身的元素。示例文件 example-tags-2.xml 展示了如何使用这个新系统。
标签细述
Matroska(tm) 标签不会自动应用到整个文件上。它们可以应用到整个文件,还可以应用到文件的不同部分: 一个或多个轨道, 一个或多个章节, 甚至是两者的组合。Matroska 规范 有这方面的更多详情。
重要的一点是标签通过 Targets Matroska(tm) 标签元素与轨道或章节相连,而用于此链接的 UID 并非 mkvmerge(1) 常用的轨道 ID。而是 mkvmerge(1) 自动计算而来 (当轨道来自非 Matroska(tm) 文件时) 或当轨道输入文件是 Matroska(tm) 文件时复制而来的 的 UID。因此在文件被 mkvmerge(1) 处理过之前很难知道应该在标签文件中使用哪些 UID。
mkvmerge(1) 支持两个为 Matroska(tm) 文件添加标签的选项: --global-tags 与 --tags 选项。不同之处在于前者,--global-tags,将通过移除上文提到的所有 Targets 元素使标签应用到整个文件。 而后者,--tags,将使 mkvmerge(1) 为通过 --tags选项的 TID 部分指定的标签自动插入 UID。
示例
假定您希望为从一个 AVI 文件读取的视频轨道添加标签。mkvmerge --identify 文件.avi 告诉您该视频轨道的 ID (不要将此 ID 与 UID 混淆!) 为 0。于是您创建了一个标签文件,省去了所有 Targets 元素,然后这样调用 mkvmerge(1):
$ mkvmerge -o 文件.mkv --tags 0:标签.xml 文件.avi
标签文件格式
mkvmerge(1) 支持基于 XML 的标签文件格式。此格式是以 Matroska 规范 为依据严格制定的。MKVToolNix 的程序以及源码分发包都含有名为 example-tags-2.xml 的示例文件,该文件已简明地列出了所有已知的可用作实际处理的基本标签。
基本要点有:
最外层的元素必须为 。
实际意义上的标签放在 XML 标签对中。
标签内容前后的空白将被忽略。
数据类型
新的 Matroska(tm) 标签系统只识别两种数据类型,UTF-8 字串与二进制类型。前者用于标签名称和 元素,而二进制类型用于 元素。
由于二进制数据自身与 XML 文件不相容,mkvmerge(1) 支持另两种储存二进制数据的方法。如果 XML 标签的内容以 '@' 开头,则后续文本将被作为文件名对待。相应文件的内容将被复制到 Matroska(tm) 元素中。
还有一种可能,即数据经 Base64 编码。这是将二进制数据转换为一定的 ASCII 字集字符,在电子邮件等程序中有所应用。mkvextract(1) 将将二进制元素以 Base64 编码的数据的形式输出。
已被废弃的标签系统可识别更多的数据类型,这在 Matroska(tm) 官方的标签规范中可以找到。由于 mkvmerge(1) 不再支持此系统,此处不对这些类型作多余说明。
XML 文件格式的已知标签
下面列出的是支持的 XML 标签,其数据类型及有效值域:
Tags (主)
Tag (主)
Targets (主)
TargetTypeValue (无符号整数)
TargetType (UTF-8 字符串)
TrackUID (无符号整数)
EditionUID (无符号整数)
ChapterUID (无符号整数)
AttachmentUID (无符号整数)
Simple (主)
Simple (主)
Name (UTF-8 字符串)
TagLanguage (UTF-8 字符串)
DefaultLanguage (无符号整数)
String (UTF-8 字符串)
Binary (二进制)
剪辑信息 XML 文件
可以通过剪辑信息 XML 文件设置 Matroska(tm) 文件 "剪辑信息" 头部字段的特定值。所有这些值都无法通过其他命令行选项设置。
还有一些 "剪辑信息" 头部字段可以通过命令行选项设置,而非通过 XML 文件。包括如 --title 及 --timestamp-scale 选项。
还有其他元素既不能通过命令行选项,也不能通过 XML 文件设置。这些包括下述元素: DateUTC (即 "混流时间")、混流应用程序 MuxingApp、写入库 WritingApp 及 总时长 Duration。这些元素均由 mkvmerge(1) 自行设置。
下面列出的是支持的 XML 标签,其数据类型及有效值域:
Info (主)
SegmentUID (二进制,有效值域: 长度(字节) == 16)
SegmentFilename (UTF-8 字符串)
PreviousSegmentUID (二进制,有效值域: 长度(字节) == 16)
PreviousSegmentFilename (UTF-8 字符串)
NextSegmentUID (二进制,有效值域: 长度(字节) == 16)
NextSegmentFilename (UTF-8 字符串)
SegmentFamily (二进制,有效值域: 长度(字节) == 16)
ChapterTranslate (主)
ChapterTranslateEditionUID (无符号整数)
ChapterTranslateCodec (无符号整数)
ChapterTranslateID (二进制)
Matroska 文件规划
Matroska(tm) 文件规划非常灵活。mkvmerge(1) 将按预先定义的方式渲染文件。生成的文件是这样的:
[EBML 头] [剪辑 {元定位 #1} [剪辑信息] [轨道信息] {附件} {章节} [簇 1] {簇 2} ... {簇 n} {索引} {元定位 #2} {标签}]
大括号中的元素是可选的,依所用的内容和选项而定。有两点要注意的:
元定位 #1 只包含很少量的 level 1 元素,且仅当它们存在时才包含:附件、章节、索引、标签以及元定位 #2。较早版本的 mkvmerge(1) 亦曾将簇放置在元定位元素中。因此应留给不精确的传言一些空间——真相总会大白。 现在只有簇才被储存在元定位 #2 中,元定位 #1 将引用元定位元素 #2。
附件、章节和标签元素仅当被添加后才会出现。
允许的最精简的 Matroska(tm) 文件是像这样的:
[EBML 头] [剪辑 [剪辑信息] [轨道信息] [簇 1]]
这也是纯音频文件的样子。
外部时间码文件
mkvmerge(1) 允许用户为各轨道选择特定的时间码。这可用来创建包含可变帧率视频或音频中有空隙的文件。这种情况下的帧是 mkvmerge(1) 创建各 Matroska(tm) 块的单位。对视频来说恰好是一帧,对音频来说是相应音频类型的一个数据包。例如对 AC-3 来说是包含 1536 采样的一个数据包。
用于轨道追加合并的时间码必须只指定给一系列(同一)轨道的第一部分。例如当您追加合并两个文件,v1.avi 与 v2.avi,且希望使用时间码时,您的命令行必须像这样组织:
$ mkvmerge ... --timestamps 0:我的时间码.txt v1.avi +v2.avi
mkvmerge(1) 可识别四种格式的时间码。版本号在时间码文件的第一行内。空行,只含有空格的行,以及以 '#' 开头的行在处理时将被忽略。
时间码文件格式 v1
此格式的第一行是版本声明。第二行则声明默认的帧率。 接下来的各行包含由逗号分隔的三个数字: 起始帧(0 代表第一帧)、终止帧以及此范围内的帧率。FPS(帧率) 为浮点数,小数点用 '.' 表示。各行定义的范围间可以有间隔,间隔内将使用默认的 FPS。一个示例:
# timestamp format v1
assume 27.930
800,1000,25
1500,1700,30
时间码文件格式 v2
此格式中每行包含相应帧的时间码。此时间码必须以毫秒为精度。可以使浮点数,但不强求。您指定的时间码行数 必须 不少于对应轨道的帧数。此类文件中的时间码必须经过排序。 以 25fps 为例:
# timestamp format v2
0
40
80
时间码文件格式 v3
此格式中各行包含时长(秒数),后接(可选)帧率。 二者均可为浮点数。 如果未提供帧率,则采用默认的帧率。 对于音频,您应当让编解码器自行计算各帧的时间码。 这样您应当使用 0.0 作为帧率。 您可以使用 'gap' 关键词后接空隙时长在流中创建空隙。 以音频文件为例:
# timestamp format v3
assume 0.0
25.325
7.530,38.236
gap, 10.050
2.000,38.236
时间码文件格式 v4
此格式与 v2 格式相似。 唯一的不同在于时间码不必经过排序。 通常不应使用此格式。
退出代码
mkvmerge(1) 退出时会返回以下三个退出代码中的一个:
0 -- 此退出代码说明已成功完成混流。
1 -- 这种情况下 mkvmerge(1) 至少输出了一条警告信息,但混流并未因之中止。 警告信息以文字 '警告:' 为前缀。根据问题的不同,生成的文件可能是好的,也可能不是。 强烈建议用户检查警告信息以及生成的文件。
2 -- 此退出代码用于错误发生之后。 mkvmerge(1) 在输出错误信息后即中断处理。错误信息可能是错误的命令行参数,也可能是损坏文件的读取/写入错误。