'\" t .\" Title: mkvextract .\" Author: Moritz Bunkus .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 2015-09-19 .\" Manual: 用户命令 .\" Source: MKVToolNix 8.4.0 .\" Language: Chinese .\" .TH "MKVEXTRACT" "1" "2015\-09\-19" "MKVToolNix 8\&.4\&.0" "用户命令" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "名称" mkvextract \- 将 Matroska(TM) 文件中的轨道提取为另外的文件 .SH "概要" .HP \w'\fBmkvextract\fR\ 'u \fBmkvextract\fR {模式} {源文件名} [选项] [提取指令] .SH "说明" .PP This program extracts specific parts from a Matroska(TM) file to other useful formats\&. The first argument, \fBmode\fR, tells \fBmkvextract\fR(1) what to extract\&. Currently supported is the extraction of tracks, tags, attachments, chapters, CUE sheets, timecodes and cues\&. The second argument is the name of the source file\&. It must be a Matroska(TM) file\&. All following arguments are options and extraction specifications; both of which depend on the selected mode\&. .SS "通用选项" .PP 以下选项在所有模式下可用,本段落只讲一遍,不赘述。 .PP \fB\-f\fR, \fB\-\-parse\-fully\fR .RS 4 设置解析模式为 \*(Aqfull(完整)\*(Aq。默认的解析模式不解析整个文件,而是使用元定位元素确定源文件中所需元素的位置。99% 的情况下这已经足够。但如果碰到不含元定位元素或者元定位元素损坏的文件,用户可能得考虑使用此模式。完整扫描文件可能要花费几分钟,而快速扫描只需要几秒钟。 .RE .PP \fB\-\-command\-line\-charset\fR \fI字符集\fR .RS 4 设定在命令行给出的字符串的字符集,用于转为其他字符集。默认为系统当前区域设置中所给定的字符集。 .RE .PP \fB\-\-output\-charset\fR \fI字符集\fR .RS 4 设置输出的字符串应被转换到何种字符集。默认为系统当前区域设置中所给定的字符集。 .RE .PP \fB\-r\fR, \fB\-\-redirect\-output\fR \fI文件名\fR .RS 4 将所有信息输出至文件 \fI文件名\fR 而不是在命令行显示。尽管该操作可以用输出重定向轻松实现,但在某些情况下还需要靠它:如当终端在写入文件之前重新解释(覆盖输出)时。将优先使用通过 \fB\-\-output\-charset\fR 设定的字符集。 .RE .PP \fB\-\-ui\-language\fR \fI语言代码\fR .RS 4 强制使用语言代码为 \fI语言代码\fR 的翻译(如 \*(Aqde_DE\*(Aq 对应德文翻译)。使用 \fILANG\fR, \fILC_MESSAGES\fR 及 \fILC_ALL\fR 这些环境变量更好。如果在 \fI语言代码\fR 处输入 \*(Aqlist\*(Aq,\fBmkvextract\fR(1) 将输出可用翻译列表。 .RE .PP \fB\-\-debug\fR \fI主题\fR .RS 4 为特定功能开启调试。该选项仅对开发者有用。 .RE .PP \fB\-\-engage\fR \fI功能\fR .RS 4 开启实验性功能。可用功能列表可通过 \fBmkvextract \-\-engage list\fR 得到。这些功能在正常情况下不应该使用。 .RE .PP \fB\-\-gui\-mode\fR .RS 4 Turns on GUI mode\&. In this mode specially\-formatted lines may be output that can tell a controlling GUI what\*(Aqs happening\&. These messages follow the format \*(Aq#GUI#message\*(Aq\&. The message may be followed by key/value pairs as in \*(Aq#GUI#message#key1=value1#key2=value2\&...\*(Aq\&. Neither the messages nor the keys are ever translated and always output in English\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 使输出信息更详尽,且每当读取到重要的 Matroska(TM) 元素时就将其显示。 .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 显示用法信息并退出。 .RE .PP \fB\-V\fR, \fB\-\-version\fR .RS 4 显示版本信息并退出。 .RE .PP \fB\-\-check\-for\-updates\fR .RS 4 联机下载 URL \m[blue]\fBhttp://mkvtoolnix\-releases\&.bunkus\&.org/latest\-release\&.xml\fR\m[] 以检查新版本。将以 键=值 的样式输出四行: 检索信息的 URL(键 version_check_url),当前运行的版本(键 running_version),最新版本号(键 available_version)及其下载 URL(键 download_url)。 .sp 若无更新版本可用,程序将以退出码 0 退出,若有更新版本可用,退出码为 1,若出现错误(如无法检索更新信息),退出码则为 2。 .sp 此选项仅当程序附带 libcurl 支持编译时可用。 .RE .PP \fB@\fR\fI选项文件\fR .RS 4 从文件 \fI选项文件\fR 中读取额外的命令行参数。首个非空白字符为井号 (\*(Aq#\*(Aq) 的行将被当作注释对待,在处理过程中将被忽略。各行开头与结尾的空白将被除去。各行必须恰好仅含一个选项。 .sp 有些字符可以转义,如当您需要使用 \*(Aq#\*(Aq 作为一个不是评论的行的开头。规则在关于转义文本的段落有描述。 .sp 命令行 \*(Aq\fBmkvextract tracks 源\&.mkv \-\-raw 1:目标\&.raw\fR\*(Aq 可以转换为下面所示选项文件: .sp .if n \{\ .RS 4 .\} .nf # 从 源\&.mkv 提取轨道 tracks 源\&.mkv # 将轨道以原始数据的形式输出。 \-\-raw 1:目标\&.raw .fi .if n \{\ .RE .\} .RE .SS "轨道提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBtracks\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR\fB \fR\fB\fITID1:dest\-filename1\fR\fR\fB \fR\fB[\fITID2:dest\-filename2\fR \&.\&.\&.]\fR .PP 以下命令行在 \*(Aqtracks\*(Aq 轨道提取模式下对各轨道可用。它们应当在所应用到的轨道指令(参阅下文)之前出现。 .PP \fB\-c\fR \fI字符集\fR .RS 4 设定下一个字幕轨应被转换为哪一字符集。仅当后面的轨道 ID 对应文本字幕轨时有效。默认为 UTF\-8。 .RE .PP \fB\-\-blockadd\fR \fI层级\fR .RS 4 只保留低于或等于此层级的 BlockAdditions 附加块。默认保留所有层级。 本选项仅影响特定类别的编解码器,如 WAVPACK4。 .RE .PP \fB\-\-cuesheet\fR .RS 4 让 \fBmkvextract\fR(1) 根据下一轨道的标签数据与章节信息提取出 CUE 表单,输出文件名为轨道的输出名后接 \*(Aq\&.cue\*(Aq 扩展名。 .RE .PP \fB\-\-raw\fR .RS 4 将原始数据提取为文件,输出文件的周围没有任何容器数据。 与 \fB\-\-fullraw\fR 标记不同的是,此标记不会将 CodecPrivate 元素的内容写入输出文件。 此模式对所有 CodecIDs 有效,即使是 \fBmkvextract\fR(1) 不支持处理的,然而生成的文件可能无法使用。 .RE .PP \fB\-\-fullraw\fR .RS 4 提取原始数据,输出文件的周围没有任何容器数据。 如果轨道包含 CodecPrivate 编解码器私有元素,它的内容将先被写入文件。 此模式对所有 CodecIDs 有效,即使是 \fBmkvextract\fR(1) 不支持的那些,但是生成的文件可能无法使用。 .RE .PP \fITID:输出文件名\fR .RS 4 如果源文件中存在 ID 为 \fITID\fR 的轨道,则将其提取为文件 \fI输出文件名\fR。本选项可多次给出。轨道 ID 与 \fBmkvmerge\fR(1) 的 \fB\-\-identify\fR 选项所输出的相同。 .sp 每个输出文件名只能用一次。但 RealAudio 与 RealVideo 轨道例外。如果您为不同轨道使用了同样的输出文件名,这些轨道将被存入同一个文件中。示例: .sp .if n \{\ .RS 4 .\} .nf $ mkvextract tracks 输入\&.mkv 1:输出两条轨道\&.rm 2:输出两条轨道\&.rm .fi .if n \{\ .RE .\} .RE .SS "标签提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBtags\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR .PP 提取出的标签将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。 .SS "附件提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBattachments\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR\fB \fR\fB\fIAID1:outname1\fR\fR\fB \fR\fB[\fIAID2:outname2\fR \&.\&.\&.]\fR .PP \fIAID\fR:\fI输出文件名\fR .RS 4 如果源文件中存在 ID 为 \fIAID\fR 的附件,则将其提取为文件 \fI输出文件名\fR。如果 \fI输出文件名\fR 处留空,将使用所用 Matroska(TM) 文件中的附件名称。本选项可多次给出。附件 ID 与 \fBmkvmerge\fR(1) 的 \fB\-\-identify\fR 选项所输出的相同。 .RE .SS "章节提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBchapters\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR .PP \fB\-s\fR, \fB\-\-simple\fR .RS 4 将章节信息以 OGM tools 所用的简单格式 (CHAPTER01=\&.\&.\&., CHAPTER01NAME=\&.\&.\&.) 导出。此模式下部分信息将被废弃。默认以 XML 格式输出章节。 .RE .PP 提取出的章节将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。 .SS "Cue 表单提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBcuesheet\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR .PP 提取出的 cue 表单将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。 .SS "时间码提取模式" .PP Syntax: \fBmkvextract \fR\fB\fBtimecodes_v2\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR\fB \fR\fB\fITID1:dest\-filename1\fR\fR\fB \fR\fB[\fITID2:dest\-filename2\fR \&.\&.\&.]\fR .PP 提取出的时间码将被输出到命令行,除非输出被重定向(详情参见关于 输出重定向 的章节)。 .PP \fITID:输出文件名\fR .RS 4 如果源文件中存在 ID 为 \fITID\fR 的轨道,则将其时间码提取为文件 \fI输出文件名\fR。本选项可多次给出。轨道 ID 与 \fBmkvmerge\fR(1) 的 \fB\-\-identify\fR 选项所输出的相同。 .sp 示例: .sp .if n \{\ .RS 4 .\} .nf $ mkvextract timecodes_v2 输入\&.mkv 1:轨道1的时间码\&.txt 2:轨道2的时间码\&.txt .fi .if n \{\ .RE .\} .RE .SS "Cues extraction mode" .PP Syntax: \fBmkvextract \fR\fB\fBcues\fR\fR\fB \fR\fB\fIsource\-filename\fR\fR\fB \fR\fB[\fIoptions\fR]\fR\fB \fR\fB\fITID1:dest\-filename1\fR\fR\fB \fR\fB[\fITID2:dest\-filename2\fR \&.\&.\&.]\fR .PP \fITID:dest\-filename\fR .RS 4 Causes extraction of the cues for the track with the ID \fITID\fR into the file \fIoutname\fR if such a track exists in the source file\&. This option can be given multiple times\&. The track IDs are the same as the ones output by \fBmkvmerge\fR(1)\*(Aqs \fB\-\-identify\fR option and not the numbers contained in the CueTrack element\&. .RE .PP The format output is a simple text format: one line per CuePoint element with key=value pairs\&. If an optional element is not present in a CuePoint (e\&.g\&. CueDuration) then a dash will be output as the value\&. .PP 示例: .sp .if n \{\ .RS 4 .\} .nf timecode=00:00:13\&.305000000 duration=\- cluster_position=757741 relative_position=11 .fi .if n \{\ .RE .\} .PP The possible keys are: .PP timecode .RS 4 The cue point\*(Aqs timecode with nanosecond precision\&. The format is HH:MM:SS\&.nnnnnnnnn\&. This element is always set\&. .RE .PP duration .RS 4 The cue point\*(Aqs duration with nanosecond precision\&. The format is HH:MM:SS\&.nnnnnnnnn\&. .RE .PP cluster_position .RS 4 The absolute position in bytes inside the Matroska(TM) file where the cluster containing the referenced element starts\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fB注意\fR .ps -1 .br Inside the Matroska(TM) file the CueClusterPosition is relative to the segment\*(Aqs data start offset\&. The value output by \fBmkvextract\fR(1)\*(Aqs cue extraction mode, however, contains that offset already and is an absolute offset from the beginning of the file\&. .sp .5v .RE .RE .PP relative_position .RS 4 The relative position in bytes inside the cluster where the BlockGroup or SimpleBlock element the cue point refers to starts\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fB注意\fR .ps -1 .br Inside the Matroska(TM) file the CueRelativePosition is relative to the cluster\*(Aqs data start offset\&. The value output by \fBmkvextract\fR(1)\*(Aqs cue extraction mode, however, is relative to the cluster\*(Aqs ID\&. The absolute position inside the file can be calculated by adding cluster_position and relative_position\&. .sp .5v .RE .RE .PP 示例: .sp .if n \{\ .RS 4 .\} .nf $ mkvextract cues input\&.mkv 1:cues\-track1\&.txt 2:cues\-track2\&.txt .fi .if n \{\ .RE .\} .SH "输出重定向" .PP 有些提取模式会使 \fBmkvextract\fR(1) 将提取出的数据输出到命令行。通常有两种方法将数据写入文件:一种由 shell 提供,另一种由 \fBmkvextract\fR(1) 自身提供。 .PP shell 的报告重定向功能可以通过在命令行后追加 \*(Aq> 输出文件名\&.扩展名\*(Aq 命令实现。示例: .sp .if n \{\ .RS 4 .\} .nf $ mkvextract tags 源\&.mkv > 标签\&.xml .fi .if n \{\ .RE .\} .PP \fBmkvextract\fR(1) 自身的重定向功能可通过 \fB\-\-redirect\-output\fR 选项唤出。示例: .sp .if n \{\ .RS 4 .\} .nf $ mkvextract tags 源\&.mkv \-\-redirect\-output 标签\&.xml .fi .if n \{\ .RE .\} .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fB注意\fR .ps -1 .br .PP 在 Windows 平台上您应当使用 \fB\-\-redirect\-output\fR 选项,因为 \fBcmd\&.exe\fR 有时会在写入文件之前对特殊字符进行转义,导致输出文件损坏。 .sp .5v .RE .SH "文本文件与字符集转换" .PP For an in\-depth discussion about how all tools in the MKVToolNix suite handle character set conversions, input/output encoding, command line encoding and console encoding please see the identically\-named section in the \fBmkvmerge\fR(1) man page\&. .SH "输出文件格式" .PP 输出文件的格式取决于轨道的类型,而不是输出文件名的扩展名。目前支持以下轨道类型: .PP V_MPEG4/ISO/AVC .RS 4 H\&.264 / AVC 视频轨将被输出为 H\&.264 基本流,可以使用如 GPAC(TM) 工具包中的 MP4Box(TM) 作进一步处理。 .RE .PP V_MS/VFW/FOURCC .RS 4 使用此 CodecID 且 FPS 恒定的视频轨将被输出为 AVI 文件。 .RE .PP V_REAL/* .RS 4 RealVideo(TM) 轨道将被输出为 RealMedia(TM) 文件。 .RE .PP V_THEORA .RS 4 Theora(TM) 流将以 Ogg(TM) 为容器输出 .RE .PP V_VP8, V_VP9 .RS 4 VP8 / VP9 tracks are written to IVF files\&. .RE .PP A_MPEG/L2 .RS 4 MPEG\-1 Audio Layer II 流将提取为原始的 MP2 文件。 .RE .PP A_MPEG/L3, A_AC3 .RS 4 这些将被输出为原始的 MP3 与 AC\-3 文件。 .RE .PP A_PCM/INT/LIT .RS 4 原始 PCM 数据将被输出为 WAV 文件。 .RE .PP A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC .RS 4 所有 AAC 文件将被输出为 AAC 文件,其中数据包前有 ADTS 头。ADTS 头将不含反增强字段(deprecated emphasis field)。 .RE .PP A_VORBIS .RS 4 Vorbis 音频将被输出为 OggVorbis(TM) 文件。 .RE .PP A_REAL/* .RS 4 RealAudio(TM) 轨道将被输出为 RealMedia(TM) 文件。 .RE .PP A_TTA1 .RS 4 TrueAudio(TM) 轨道将被输出为 TTA 文件。请注意,由于 Matroska(TM) 时间码的精度限制,解开来的文件的头部有两个字段不同:\fIdata_length\fR (文件的总采样数) 与 CRC。 .RE .PP A_ALAC .RS 4 ALAC 轨道将输出为 CAF 文件。 .RE .PP A_FLAC .RS 4 FLAC 轨道将输出为原始的 FLAC 文件。 .RE .PP A_WAVPACK4 .RS 4 WavPack(TM) 轨道将输出为 WV 文件。 .RE .PP A_OPUS .RS 4 Opus(TM) tracks are written to OggOpus(TM) files\&. .RE .PP S_TEXT/UTF8 .RS 4 简单的文本字幕将被输出为 SRT 文件。 .RE .PP S_TEXT/SSA, S_TEXT/ASS .RS 4 SSA 与 ASS 文本字幕将分别被输出为 SSA/ASS 文件。 .RE .PP S_KATE .RS 4 Kate(TM) 流将以 Ogg(TM) 为容器输出。 .RE .PP S_VOBSUB .RS 4 VobSub(TM) 字幕将输出为 SUB 文件及相应的索引文件(后缀为 IDX)。 .RE .PP S_TEXT/USF .RS 4 USF 文本字幕将输出为 USF 文件。 .RE .PP S_HDMV/PGS .RS 4 PGS 字幕将输出为 SUP 文件。 .RE .PP 标签 .RS 4 标签将被转换为 XML 格式。此格式与 \fBmkvmerge\fR(1) 所支持读取的标签格式相同。 .RE .PP 附件 .RS 4 附件将被以原样输出。不会进行任何转换。 .RE .PP 章节 .RS 4 章节将被转换为 XML 格式。此格式与 \fBmkvmerge\fR(1) 所支持读取的章节格式相同。您也可以选择输出精简的简单 OGM 格式。 .RE .PP 时间码 .RS 4 时间码会先被排序,然后以 timecode v2 格式文件输出,该文件适用于 \fBmkvmerge\fR(1)。不支持提取为其他格式 (v1, v3 或 v4)。 .RE .SH "退出代码" .PP \fBmkvextract\fR(1) 退出时会返回以下三个退出代码中的一个: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB0\fR \-\- 此退出代码说明已成功完成提取。 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB1\fR \-\- 这种情况下 \fBmkvextract\fR(1) 至少输出了一条警告信息,但提取并未因之中止。 警告信息以文字 \*(Aq警告:\*(Aq 为前缀。根据问题的不同,生成的文件可能是好的,也可能不是。 强烈建议用户检查警告信息以及生成的文件。 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB2\fR \-\- 此退出代码用于错误发生之后。 \fBmkvextract\fR(1) 在输出错误信息后即中断处理。错误信息可能是错误的命令行参数,也可能是损坏文件的读取/写入错误。 .RE .SH "文本中特殊字符的转义" .PP 有时文本中的特殊字符必须或应该转义。转义规则很简单: 用反斜杠后接一字符替换需要转义的各字符。 .PP 规则为: \*(Aq \*(Aq (空格) 变为 \*(Aq\es\*(Aq、\*(Aq"\*(Aq (双引号) 变为 \*(Aq\e2\*(Aq、\*(Aq:\*(Aq 变为 \*(Aq\ec\*(Aq、\*(Aq#\*(Aq 变为 \*(Aq\eh\*(Aq,而 \*(Aq\e\*(Aq (单个反斜杠) 自己则变为 \*(Aq\e\e\*(Aq。 .SH "环境变量" .PP \fBmkvextract\fR(1) 使用决定系统区域设置的默认变量 (如 \fILANG\fR 与 \fILC_*\fR 族)。其他变量包括: .PP \fIMKVEXTRACT_DEBUG\fR, \fIMKVTOOLNIX_DEBUG\fR and its short form \fIMTX_DEBUG\fR .RS 4 内容将被当作通过 \fB\-\-debug\fR 选项传递的参数对待。 .RE .PP \fIMKVEXTRACT_ENGAGE\fR, \fIMKVTOOLNIX_ENGAGE\fR and its short form \fIMTX_ENGAGE\fR .RS 4 内容将被当作通过 \fB\-\-engage\fR 选项传递的参数对待。 .RE .PP \fIMKVEXTRACT_OPTIONS\fR, \fIMKVTOOLNIX_OPTIONS\fR and its short form \fIMTX_OPTIONS\fR .RS 4 内容将在空白处切割。最终得到的字符串部分将按命令行选项的格式处理。如果您需要传递特殊字符 (如空白) 则需要转义 (参见关于转义文本中特殊字符的段落)。 .RE .SH "参阅" .PP \fBmkvmerge\fR(1), \fBmkvinfo\fR(1), \fBmkvpropedit\fR(1), \fBmkvtoolnix-gui\fR(1) .SH "网络" .PP 最新版本总可以在 \m[blue]\fBMKVToolNix 主页\fR\m[]\&\s-2\u[1]\d\s+2 找到。 .SH "作者" .PP \fBMoritz Bunkus\fR <\&moritz@bunkus\&.org\&> .RS 4 开发者 .RE .SH "备注" .IP " 1." 4 MKVToolNix 主页 .RS 4 \%https://www.bunkus.org/videotools/mkvtoolnix/ .RE