MKVEXTRACT(1) | 用户命令 | MKVEXTRACT(1) |
名称¶
mkvextract - 将 Matroska 文件中的轨道提取为单独的文件
概要¶
mkvextract {输入文件名} {模式1} [选项] [提取规格1] [模式2] [选项] [提取规格2] [...]
说明¶
该程序可将 Matroska 文件的指定部分提取为其他有用的格式。第一个参数是输入文件名,该文件必须为 Matroska 文件。
其余参数可切换到特定提取模式、更改当前活动模式的选项、指定要将什么内容提取到哪些文件。单次调用 mkvextract 可同时使用多种模式,以便只读取一遍就提取多项内容。 大多数选项只能在特定模式下使用,少数选项可用于所有模式。
目前支持提取 tracks 轨道、tags 标签、attachments 附件、chapters 章节、cue 表单、timestamps 时间戳 以及 cues。
通用选项¶
以下选项在所有模式下可用,只在本段落讲一遍,不赘述。
-f, --parse-fully
--command-line-charset 字符集
--output-charset 字符集
-r, --redirect-output 文件名
--flush-on-close
--ui-language 语言代码
--abort-on-warnings
--debug 主题
--engage 功能
--gui-mode
-v, --verbose
-h, --help
-V, --version
@选项文件.json
轨道提取模式¶
语法: mkvextract 输入文件名 tracks [选项] TID1:目标文件名1 [TID2:目标文件名2 ...]
以下命令行在「tracks」轨道提取模式下对各轨道可用。它们应当在所应用到的轨道指令(参阅下文)之前出现。
-c 字符集
--blockadd 层级
--cuesheet
--raw
--fullraw
TID:输出文件名
每个输出文件名只能用一次。但 RealAudio 与 RealVideo 轨道例外。如果您为不同轨道使用了同样的输出文件名,这些轨道将被存入同一个文件中。示例:
$ mkvextract 输入.mkv tracks 0:视频.h264 2:输出两个vobsub轨道.idx 3:输出两个vobsub轨道.idx
附件提取模式¶
语法: mkvextract 输入文件名 attachments [选项] AID1:输出文件名1 [AID2:输出文件名2 ...]
AID:输出文件名
章节提取模式¶
语法: mkvextract 输入文件名 chapters[选项] 输出文件名.xml
-s, --simple
--simple-language 语言
本选项允许用户决定,在章节单位包含多个章节名称时,应该输出哪些章节名称。语言 参数必须为 ISO 639-1 或 ISO 639-2 代码。
章节将写入指定的输出文件。默认使用 mkvmerge(1) 能理解的 XML 格式。如果文件中没有发现章节条目,则不会创建输出文件。
标签提取模式¶
语法: mkvextract 输入文件名 tags [选项] 输出文件名.xml
标签将写入指定的输出文件,使用 mkvmerge(1) 能理解的 XML 格式。如果文件中没有发现标签条目,则不会创建输出文件。
Cue 表单提取模式¶
语法: mkvextract 输入文件名 cuesheet [选项] 输出文件名.cue
cue 表单将写入指定的输出文件。如果文件中没有发现章节或标签条目,则不会创建输出文件。
时间戳提取模式¶
语法: mkvextract 输入文件名 timestamps_v2 [选项] TID1:目标文件名1 [TID2:目标文件名2 ...]
TID:输出文件名
示例:
$ mkvextract 输入.mkv timestamps_v2 1:时间戳-轨1.txt 2:时间戳-轨2.txt
cue 提取模式¶
语法: mkvextract 输入文件名 cues [选项] TID1:目标文件名1 [TID2:目标文件名2 ...]
TID:目标文件名
输出的格式为简单文本格式: 每个 CuePoint 及 键=值 对占一行。如果 CuePoint 中未出现某个可选元素 (如 CueDuration) 则将输出短横作为其数值。
示例:
timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11
可用的关键词包括:
timestamp (时间戳)
duration (时长)
cluster_position (簇位置)
注意
Matroska 文件中,CueClusterPosition 相对于剪辑数据的起始偏移。而 mkvextract(1) 的 cue 提取模式所输出的值,已经计入该偏移,因此是从文件开头起的绝对偏移。
relative_position (相对位置)
注意
Matroska 文件中,CueRelativePosition 相对于簇数据的起始偏移。而 mkvextract(1) 的 cue 提取模式所输出的值,相对于簇的 ID。在文件内的绝对位置可以通过将 cluster_position 与 relative_position 相加得出。
示例:
$ mkvextract 输入.mkv cues 1:cues-轨1.txt 2:cues-轨2.txt
示例¶
同时提取章节与标签,并按其相应的 XML 格式保存:
$ mkvextract 影片.mkv chapters 影片章节.xml tags 影片标签.xml
同时提取一些轨道及其对应的时间戳:
$ mkvextract "另一部影片.mkv" tracks 0:video.h265 "1:主音轨.aac" "2:导演评论.aac" timestamps_v2 "0:视频时间戳.txt" "1:主音轨时间戳.txt" "2:导演评论音轨时间戳.txt"
以 Ogg/OGM 格式提取章节,并将一条文本字幕轨道用另一种字符集重新编码:
$ mkvextract "我的影片.mkv" chapters --simple "我的章节.txt" tracks -c MS-ANSI "2:我的字幕.srt"
文本文件与字符集转换¶
关于 MKVToolNix 套件中所有工具如何处理字符集转换、输入/输出编码、命令行编码及控制台编码的深入讨论,请参见 mkvmerge(1) 手册中相对应名称的段落。
输出文件格式¶
输出的格式取决于轨道的类型,而不是输出文件名的扩展名。目前支持以下轨道类型:
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
A_AC3, A_EAC3
A_ALAC
A_DTS
A_FLAC
A_MPEG/L2
A_MPEG/L3
A_OPUS
A_PCM/INT/LIT, A_PCM/INT/BIG
A_REAL/*
A_TRUEHD, A_MLP
A_TTA1
A_VORBIS
A_WAVPACK4
S_HDMV/PGS
S_HDMV/TEXTST
S_KATE
S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS
S_TEXT/UTF8, S_TEXT/ASCII
S_VOBSUB
S_TEXT/USF
S_TEXT/WEBVTT
V_MPEG1, V_MPEG2
V_MPEG4/ISO/AVC
V_MPEG4/ISO/HEVC
V_MS/VFW/FOURCC
V_REAL/*
V_THEORA
V_VP8, V_VP9
标签
附件
章节
时间戳
退出代码¶
mkvextract(1) 退出时会返回以下三个退出代码中的一个:
环境变量¶
mkvextract(1) 使用决定系统区域设置的默认变量 (如 LANG 与 LC_* 族)。其他变量包括:
MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG 及其缩略形式 MTX_DEBUG
MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE 及其缩略形式 MTX_ENGAGE
参阅¶
网络¶
最新版本总可以在 MKVToolNix 主页[1] 找到。
作者¶
Moritz Bunkus <moritz@bunkus.org>
备注¶
- 1.
- MKVToolNix 主页
2024-09-07 | MKVToolNix 87.0 |