other versions
- wheezy 5.6.0-1
- jessie 7.3.0-1
- testing 9.8.0-dmo1
- unstable 9.8.0-dmo1
- experimental 12.0.0-1
other languages
MKVEXTRACT(1) | 用户命令 | MKVEXTRACT(1) |
名称¶
mkvextract - 将 Matroska(TM) 文件中的轨道提取为另外的文件概要¶
mkvextract
{模式} {源文件名} [选项]
[提取指令]
说明¶
本程序可以将 Matroska(TM) 文件的指定部分提取为其他有用的格式。第一个参数, 模式告诉 mkvextract(1) 要提取什么。目前支持提取 tracks(轨道)、tags(标签)、attachments(附件)、chapters(章节)、CUE sheets(CUE 表单)以及timecodes(时间码)。第二个参数是源文件名。它必须是 Matroska(TM) 文件。以下参数为选项及提取指令;两者均依所选模式而定。通用选项¶
以下选项在所有模式下可用,本段落只讲一遍,不赘述。 -f, --parse-fully设置解析模式为
'full(完整)'。默认的解析模式不解析整个文件,而是使用元定位元素确定源文件中所需元素的位置。99%
的情况下这已经足够。但如果碰到不含元定位元素或者元定位元素损坏的文件,用户可能得考虑使用此模式。完整扫描文件可能要花费几分钟,而快速扫描只需要几秒钟。
--command-line-charset 字符集
设定在命令行给出的字符串的字符集,用于转为其他字符集。默认为系统当前区域设置中所给定的字符集。
--output-charset 字符集
设置输出的字符串应被转换到何种字符集。默认为系统当前区域设置中所给定的字符集。
-r, --redirect-output 文件名
将所有信息输出至文件
文件名
而不是在命令行显示。尽管该操作可以用输出重定向轻松实现,但在某些情况下还需要靠它:如当终端在写入文件之前重新解释(覆盖输出)时。将优先使用通过
--output-charset
设定的字符集。
--ui-language 语言代码
强制使用语言代码为
语言代码
的翻译(如 'de_DE'
对应德文翻译)。使用
LANG, LC_MESSAGES 及 LC_ALL
这些环境变量更好。如果在
语言代码 处输入
'list', mkvextract(1)
将输出可用翻译列表。
--debug 主题
为特定功能开启调试。该选项仅对开发者有用。
--engage 功能
开启实验性功能。可用功能列表可通过
mkvextract --engage list
得到。这些功能在正常情况下不应该使用。
-v, --verbose
使输出信息更详尽,且每当读取到重要的
Matroska(TM)
元素时就将其显示。
-h, --help
显示用法信息并退出。
-V, --version
显示版本信息并退出。
--check-for-updates
联机下载 URL
http://mkvtoolnix-releases.bunkus.org/latest-release.xml
检查新版本。将以
键=值 的样式输出四行:
检索信息的 URL(键
version_check_url),当前运行的版本(键
running_version),最新版本(键
available_version)及其下载 URL(键
download_url)。
若无更新版本可用,程序将以退出码
0
退出,若有更新版本可用,退出码为
1,若出现错误(如无法检索更新信息),退出码则为
2。
此选项仅当程序附带 libcurl
支持编译时可用。
@选项文件
从文件
选项文件
中读取额外的命令行参数。首个非空白字符为井号
('#')
的行将被当作注释对待,在处理过程中将被忽略。各行开头与结尾的空白将被除去。各行必须恰好仅含一个选项。
有些字符可以转义,如当您需要使用
'#'
作为一个不是评论的行的开头。规则在关于转义文本的段落有描述。
命令行 ' mkvextract tracks 源.mkv --raw
1:目标.raw'
可以转换为下面所示选项文件:
# 从 源.mkv 提取轨道 tracks 源.mkv # 将轨道以原始数据的形式输出。 --raw 1:目标.raw
轨道提取模式¶
语法: mkvextract tracks 源文件名 [ 选项] TID1:目标文件名1 [ TID2:目标文件名2 ...] 以下命令行在 'tracks' 轨道提取模式下对各轨道可用。它们应当在所应用到的轨道指令(参阅下文)之前出现。 -c 字符集设定下一个字幕轨应被转换为哪一字符集。仅当后面的轨道
ID
对应文本字幕轨时有效。默认为
UTF-8。
--blockadd 层级
只保留低于或等于此层级的
BlockAdditions
附加块。默认保留所有层级。
本选项仅影响特定类别的编解码器,如
WAVPACK4。
--cuesheet
让 mkvextract(1)
根据下一轨道的标签数据与章节信息提取出
CUE
表单,输出文件名为轨道的输出名后接
'.cue' 扩展名。
--raw
将原始数据提取为文件,输出文件的周围没有任何容器数据。
与 --fullraw
标记不同的是,此标记不会将
CodecPrivate
元素的内容写入输出文件。
此模式对所有 CodecIDs
有效,即使是 mkvextract(1)
不支持处理的,然而生成的文件可能无法使用。
--fullraw
提取原始数据,输出文件的周围没有任何容器数据。
如果轨道包含 CodecPrivate
编解码器私有元素,它的内容将先被写入文件。
此模式对所有 CodecIDs
有效,即使是 mkvextract(1)
不支持的那些,但是生成的文件可能无法使用。
TID:输出文件名
如果源文件中存在
ID 为 TID
的轨道,则将其提取为文件
输出文件名。本选项可多次给出。轨道
ID 与 mkvmerge(1) 的 --identify
选项所输出的相同。
每个输出文件名只能用一次。但
RealAudio 与 RealVideo
轨道例外。如果您为不同轨道使用了同样的输出文件名,这些轨道将被存入同一个文件中。示例:
$ mkvextract tracks 输入.mkv 1:输出两条轨道.rm 2:输出两条轨道.rm
标签提取模式¶
语法: mkvextract tags 源文件名 [ 选项] 提取出的标签将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。附件提取模式¶
语法: mkvextract attachments 源文件名 [ 选项] AID1:输出文件名1 [ AID2:输出文件名2 ...] AID:输出文件名如果源文件中存在
ID 为 AID
的附件,则将其提取为文件
输出文件名。如果
输出文件名
处留空,将使用所用
Matroska(TM)
文件中的附件名称。本选项可多次给出。附件
ID 与 mkvmerge(1) 的 --identify
选项所输出的相同。
章节提取模式¶
语法: mkvextract chapters 源文件名 [ 选项] -s, --simple将章节信息以
OGM tools 所用的简单格式
(CHAPTER01=..., CHAPTER01NAME=...)
导出。此模式下部分信息将被废弃。默认以
XML 格式输出章节。
提取出的章节将被输出到命令行,除非输出被重定向(详情参见关于
输出重定向
的章节)。
Cue 表单提取模式¶
语法: mkvextract cuesheet 源文件名 [ 选项] 提取出的 cue 表单将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。时间码提取模式¶
语法: mkvextract timecodes_v2 源文件名 [ 选项] TID1:目标文件名1 [ TID2:目标文件名2 ...] 提取出的时间码将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。 TID:输出文件名如果源文件中存在
ID 为 TID
的轨道,则将其时间码提取为文件
输出文件名。本选项可多次给出。轨道
ID 与 mkvmerge(1) 的 --identify
选项所输出的相同。
示例:
$ mkvextract timecodes_v2 输入.mkv 1:轨道1的时间码.txt 2:轨道2的时间码.txt
输出重定向¶
有些提取模式会使 mkvextract(1) 将提取出的数据输出到命令行。通常有两种方法将数据写入文件:一种由 shell 提供,另一种由 mkvextract(1) 自身提供。 shell 的报告重定向功能可以通过在命令行后追加 '> 输出文件名.扩展名' 命令实现。示例:$ mkvextract tags 源.mkv > 标签.xml
$ mkvextract tags 源.mkv --redirect-output 标签.xml
输出文件格式¶
输出文件的格式取决于轨道的类型,而不是输出文件名的扩展名。目前支持以下轨道类型: V_MPEG4/ISO/AVC使用此 CodecID 且 FPS
恒定的视频轨将被输出为
AVI 文件。
V_REAL/*
这些将被输出为原始的
MP3 与 AC3 文件。
A_PCM/INT/LIT
原始 PCM
数据将被输出为 WAV
文件。
A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC
所有 AAC
文件将被输出为 AAC
文件,其中数据包前有
ADTS 头。ADTS
头将不含反增强字段(deprecated
emphasis field)。
A_VORBIS
Vorbis
音频将被输出为 OggVorbis(TM)
文件。
A_REAL/*
简单的文本字幕将被输出为
SRT 文件。
S_TEXT/SSA, S_TEXT/ASS
标签将被转换为
XML 格式。此格式与
mkvmerge(1)
所支持读取的标签格式相同。
附件
附件将被以原样输出。不会进行任何转换。
章节
章节将被转换为
XML 格式。此格式与
mkvmerge(1)
所支持读取的章节格式相同。您也可以选择输出精简的简单
OGM 格式。
时间码
时间码会先被排序,然后以
timecode v2
格式文件输出,该文件适用于
mkvmerge(1)。不支持提取为其他格式
(v1, v3 或 v4)。
退出代码¶
•
0 --
此退出代码说明已成功完成提取。
•
1 -- 这种情况下 mkvextract(1)
至少输出了一条警告信息,但提取并未因之中止。
警告信息以文字 '警告:'
为前缀。根据问题的不同,生成的文件可能是好的,也可能不是。
强烈建议用户检查警告信息以及生成的文件。
•
2 --
此退出代码用于错误发生之后。
mkvextract(1)
在输出错误信息后即中断处理。错误信息可能是错误的命令行参数,也可能是损坏文件的读取/写入错误。
文本中特殊字符的转义¶
有时文本中的特殊字符必须或应该转义。转义规则很简单: 用反斜杠后接一字符替换需要转义的各字符。 规则为: ' ' (空格) 变为 '\s'、'"' (双引号) 变为 '\2'、':' 变为 '\c'、'#' 变为 '\h',而 '\' (单个反斜杠) 自己则变为 '\\'。环境变量¶
内容将被当作通过
--debug
选项传递的参数对待。
MKVTOOLNIX_ENGAGE 及其缩写形式
MTX_ENGAGE
内容将被当作通过
--engage
选项传递的参数对待。
MKVTOOLNIX_OPTIONS 及其缩写形式
MTX_OPTIONS
内容将在空白处切割。最终得到的字符串部分将按命令行选项的格式处理。如果您需要传递特殊字符
(如空白) 则需要转义
(参见关于转义文本中特殊字符的段落)。
参阅¶
网络¶
最新版本总可以在 MKVToolNix 主页[1] 找到。作者¶
Moritz Bunkus <moritz@bunkus.org>开发者
备注¶
- 1.
- MKVToolNix 主页
2012-05-27 | MKVToolNix 5.6.0 |