MKVEXTRACT(1) | 用户命令 | MKVEXTRACT(1) |
名称¶
mkvextract - 将 Matroska 文件中的轨道提取为另外的文件
概要¶
mkvextract {模式} {输入文件名} [选项] [提取指令]
说明¶
本程序可将 Matroska 文件的指定部分提取为其他有用的格式。第一个参数,模式,告知 mkvextract(1) 要提取什么内容。目前支持提取 轨道、标签、 附件、章节、cue 表单、时间码 及 cue。第二个参数为输入文件名称。必须为 Matroska 文件。其余参数为选项以及提取指令;根据所选模式的不同,两种参数均有所区别。
通用选项¶
以下选项在所有模式下可用,只在本段落讲一遍,不赘述。
-f, --parse-fully
--command-line-charset 字符集
--output-charset 字符集
-r, --redirect-output 文件名
--ui-language 语言代码
--debug 主题
--engage 功能
--gui-mode
-v, --verbose
-h, --help
-V, --version
--check-for-updates
若无更新版本可用,程序将以退出码 0 退出,若有更新版本可用,退出码为 1,若出现错误(如无法检索更新信息),退出码则为 2。
此选项仅当程序附带 libcurl 支持编译时可用。
@选项文件.json
轨道提取模式¶
语法: mkvextract tracks 输入文件名 [选项] 轨道ID1:目标文件名1 [轨道ID2:目标文件名2 ...]
以下命令行在 'tracks' 轨道提取模式下对各轨道可用。它们应当在所应用到的轨道指令(参阅下文)之前出现。
-c 字符集
--blockadd 层级
--cuesheet
--raw
--fullraw
TID:输出文件名
每个输出文件名只能用一次。但 RealAudio 与 RealVideo 轨道例外。如果您为不同轨道使用了同样的输出文件名,这些轨道将被存入同一个文件中。示例:
$ mkvextract tracks 输入.mkv 1:输出两条轨道.rm 2:输出两条轨道.rm
标签提取模式¶
语法: mkvextract tags 输入文件名 [选项]
提取出的标签将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。
附件提取模式¶
语法: mkvextract attachments 输入文件名 [选项] 附件ID1:输出文件名1 [附件ID2:输出文件名2 ...]
AID:输出文件名
章节提取模式¶
语法: mkvextract chapters 输入文件名 [选项]
-s, --simple
--simple-language 语言
本选项允许用户决定,在章节单位包含多个章节名称时,应该输出哪些章节名称。语言 参数必须为 ISO 639-1 或 ISO 639-2 代码。
提取出的章节将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。
Cue 表单提取模式¶
语法: mkvextract cuesheet 输入文件名 [选项]
提取出的 cue 表单将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。
时间码提取模式¶
语法: mkvextract timecodes_v2 输入文件名 [选项] 轨道ID1:目标文件名1 [轨道ID2:目标文件名2 ...]
提取出的时间码将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。
TID:输出文件名
示例:
$ mkvextract timecodes_v2 输入.mkv 1:轨道1的时间码.txt 2:轨道2的时间码.txt
cue 提取模式¶
语法: mkvextract cues 输入文件名 [选项] 轨道ID1:目标文件名1 [轨道ID2:目标文件名2 ...]
轨道ID:目标文件名
输出的格式为简单文本格式: 每个 CuePoint 及 键=值 对占一行。如果 CuePoint 中未出现某个可选元素 (如 CueDuration) 则将输出短横作为其数值。
示例:
timecode=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
可用的关键词包括:
时间码
duration
cluster_position
注意
Matroska 文件中,CueClusterPosition 相对于剪辑数据的起始偏移。而 mkvextract(1) 的 cue 提取模式所输出的值,已经计入该偏移,因此是从文件开头起的绝对偏移。
relative_position
注意
Matroska 文件中,CueRelativePosition 相对于簇数据的起始偏移。而 mkvextract(1) 的 cue 提取模式所输出的值,相对于簇的 ID。在文件内的绝对位置可以通过将 cluster_position 与 relative_position 相加得出。
示例:
$ mkvextract cues 输入.mkv 1:cues-轨1.txt 2:cues-轨2.txt
输出重定向¶
有些提取模式会使 mkvextract(1) 将提取出的数据输出到命令行。通常有两种方法将数据写入文件:一种由 shell 提供,另一种由 mkvextract(1) 自身提供。
shell 的报告重定向功能可以通过在命令行后追加 '> 输出文件名.扩展名' 命令实现。示例:
$ mkvextract tags 源.mkv > 标签.xml
mkvextract(1) 自身的重定向功能可通过 --redirect-output 选项唤出。示例:
$ mkvextract tags 源.mkv --redirect-output 标签.xml
注意
在 Windows 平台上您应当使用 --redirect-output 选项,因为 cmd.exe 有时会在写入文件之前对特殊字符进行转义,导致输出文件损坏。
文本文件与字符集转换¶
关于 MKVToolNix 套件中所有工具如何处理字符集转换、输入/输出编码、命令行编码及控制台编码的深入讨论,请参见 mkvmerge(1) 手册中相对应名称的段落。
输出文件格式¶
输出文件的格式取决于轨道的类型,而不是输出文件名的扩展名。目前支持以下轨道类型:
V_MPEG4/ISO/AVC
V_MS/VFW/FOURCC
V_REAL/*
V_THEORA
V_VP8, V_VP9
A_MPEG/L2
A_MPEG/L3, A_AC3
A_PCM/INT/LIT
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
A_VORBIS
A_REAL/*
A_TTA1
A_ALAC
A_FLAC
A_WAVPACK4
A_OPUS
S_TEXT/UTF8
S_TEXT/SSA, S_TEXT/ASS
S_KATE
S_VOBSUB
S_TEXT/USF
S_HDMV/PGS
标签
附件
章节
时间码
退出代码¶
mkvextract(1) 退出时会返回以下三个退出代码中的一个:
文本中特殊字符的转义¶
有时文本中的特殊字符必须或应该转义。转义规则很简单: 用反斜杠后接一字符替换需要转义的各字符。
规则为: ' ' (空格) 变为 '\s'、'"' (双引号) 变为 '\2'、':' 变为 '\c'、'#' 变为 '\h',而 '\' (单个反斜杠) 自己则变为 '\\'。
环境变量¶
mkvextract(1) 使用决定系统区域设置的默认变量 (如 LANG 与 LC_* 族)。其他变量包括:
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG 及其缩略形式 MTX_DEBUG
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE 及其缩略形式 MTX_ENGAGE
MKVEXTRACT_OPTIONS, MKVTOOLNIX_OPTIONS 及其缩略形式 MTX_OPTIONS
参阅¶
mkvmerge(1), mkvinfo(1), mkvpropedit(1), mkvtoolnix-gui(1)
网络¶
最新版本总可以在 MKVToolNix 主页[1] 找到。
作者¶
Moritz Bunkus <moritz@bunkus.org>
备注¶
- 1.
- MKVToolNix 主页
2017-05-20 | MKVToolNix 12.0.0 |