Mkvpropedit
(作者:Moritz Bunkus;译者:XsLiDian;复制自 mkvpropedit)
名称
mkvpropedit — 在不进行完整的重新混流的情况下修改现有 Matroska™ 文件的属性
概要
mkvpropedit [选项] {源文件名} {操作}
说明
此程序可分析现有 Matroska™ 文件,并修改其部分属性。然后它将将变更写入现有文件。可修改的属性包括剪辑信息元素(如标题)和轨道头部(如语言代码、'默认轨' 标记或轨道名称)。
选项:
-l
,--list-property-names
- 列出所有已知的可编辑的属性名称、它们的类型(字符串型、整数型、布尔型等等)及简短说明。程序随后将退出执行。因此不必提供
source-filename
参数。 -p
,--parse-mode
模式
- 设置解析模式。参数
模式
可以为 'fast(快速)
'(此项为默认值)或 'full(完整)
'。'fast(快速)
'模式不解析整个文件,而是使用元定位元素确定源文件中所需元素的位置。99% 的情况下这就足够了。但如果碰到不含元定位元素或者元定位元素损坏的文件,用户可能得考虑 'full(完整)
' 解析模式。完整扫描文件可能要花费几分钟,而快速扫描只需要几秒钟。
操作:
-e
,--edit
选择器
- 设置后续的 添加、设置 或 删除 操作所针对的 Matroska™ 文件区域(即剪辑信息或某个轨道的头部)。此选项可多次使用,以同时修改多个元素。关于完整的语法说明请参见关于 编辑选择器 的段落。
-a
,--add
名称
=数值
- 添加名为
名称
、值为数值
的属性。即使已存在这样的属性,也将执行添加属性操作。注意大多数属性是唯一的,不能出现多个。 -s
,--set
名称
=数值
- 设置所有名为
名称
的属性的数值为数值
。如果不存在这样的属性,则将添加该属性。 -d
,--delete
名称
- 删除所有名为
名称
的属性。注意部分属性是必需的,不能删除。
其他选项:
--command-line-charset
字符集
- 设定在命令行给出的字符串的字符集,用于转为其他字符集。默认为系统当前区域设置中所给定的字符集。
--output-charset
字符集
- 设置输出的字符串应被转换到何种字符集。默认为系统当前区域设置中所给定的字符集。
-r
,--redirect-output
文件名
- 将所有信息写入文件
文件名
而不是输出到命令行。 尽管该操作可以用输出重定向轻松实现,但在某些情况下还需要靠它:如当终端在写入文件之前重新解释(覆盖输出)时。将优先使用通过--output-charset
设定的字符集。 --ui-language
语言代码
- 强制使用语言代码为
语言代码
的翻译(如 'de_DE
' 对应德文翻译)。使用LANG
,LC_MESSAGES
及LC_ALL
这些环境变量更好。如果在语言代码
处输入 'list
',mkvextract 将输出可用翻译列表。 -v
,--verbose
- 使输出信息更详尽,且每当读取到重要的 Matroska™ 元素时就将其显示。
-h
,--help
- 显示用法信息并退出。
-V
,--version
- 显示版本信息并退出。
@
选项文件- 从文件
选项文件
中读取额外的命令行参数。首个非空白字符为井号 ('#
') 的行将被当作注释对待,在处理过程中将被忽略。各行开头与结尾的空白将被除去。各行必须恰好含有一个选项。没有元字符转义。命令行 'mkvpropedit 源.mkv --edit track:a2 --set name=注释' 可以转换为下述选项文件:
# 修改 源.mkv 源.mkv #编辑第二条音频轨 --edit track:a2 # 并设置标题为 '注释' --set title=注释
编辑选择器
--edit
选项设置后续的 添加, 设置 或 删除 操作所影响的 Matroska™ 文件区域(剪辑信息或者特定轨道的头部)。在出现另一个 --edit
选项之前,此选项将一直有效。此选项的参数就叫做编辑选择器。
剪辑信息
可以通过这三个词中的任意一个选择剪辑信息: 'info
'、'segment_info
' 或 'segmentinfo
'。剪辑信息包含的属性包括剪辑标题、剪辑 UID 等。
轨道头部
可用于选择轨道头部的选择器稍显复杂:所有以 'track:
' 开头的变体。轨道头部属性包括如语言代码、'默认轨' 标记、轨道名称等属性。
track:
n
- 如果参数
n
为数字,则将选择第n
条轨道。轨道顺序与 mkvmerge 的--identify
选项所输出的相同。 track:
t
'n
- 如果参数以字母
t
后接n
开头,则将选择选定轨道类型中的第n
条轨道。轨道类型参数t
必须为下述四个字母中的一个: 'a
' 代表音频轨道,'b
' 代表按钮轨道,'s
' 代表字幕轨道,'v
' 代表视频轨道。轨道顺序与 mkvmerge 的--identify
选项所输出的相同。 track:
=uid
- 如果参数以 '
=
' 后接uid
开头,则将选择轨道 UID 元素等于此uid
的轨道。轨道 UID 可通过 mkvinfo 获取。 track:
@数字
- 如果参数以 '
@
' 后接数字
开头,则选择轨道号元素等于数字
的轨道。轨道号可以通过 mkvinfo 获取。
注
由于轨道编辑选择器的特性,一些选择器所匹配的轨道头部可能是相同的。在此情况下,这些编辑选择器的所有操作将被按照在命令行给出的顺序合并运行。
示例
下面的示例将编辑一个名为 '电影.mkv
' 的文件。示例中将设置剪辑标题并修改一条音频轨和一条字幕轨的语言代码。附注,本示例可以简写,即省去 --edit
选项,因为在第一个 --edit
选项之前的所有选项默认编辑的就是剪辑信息元素。
$ mkvpropedit 电影.mkv --edit info --set "title=影片" --edit track:a1 --set language=fre --edit track:a2 --set language=ita
第二个示例,将 '默认轨标记' 从第一条字幕轨移除并设置到第二条字幕轨上。注意 mkvpropedit 与 mkvmerge 不同,不会在将另一个轨道的 '默认轨标记'设为 '1' 的时候自动将其他轨道的标记设为 '0'。
$ mkvpropedit 影片.mkv --edit tracks:s1 --set flag-default=0 --edit tracks:s2 --set flag-default=1
退出代码
mkvpropedit 退出时会返回以下三个退出代码中的一个:
0
-- 此退出代码说明已成功完成修改。1
-- 这种情况下 mkvpropedit 至少输出了一条警告信息,但修改并未因之中止。 警告信息以文字 '警告:
' 为前缀。根据问题的不同,生成的文件可能是好的,也可能不是。 强烈建议用户检查警告信息以及生成的文件。2
-- 此退出代码用于错误发生之后。 mkvpropedit 在输出错误信息后即中断处理。错误信息可能是错误的命令行参数,也可能是损坏文件的读取/写入错误。
参阅
网络
最新版本总可以在 MKVToolNix 主页 找到。