Manpages

名 称

mkvmerge - 将 多 媒 体 流 合 并 为 Matroska 文 件

概 要

mkvmerge [全 局 选 项 ] {-o 输 出 文 件 } [选 项 1] {文 件 1} [[选 项 2] {文 件 2}] [@选 项 文 件 .json]

说 明

本 程 序 以 任 意 数 量 的 媒 体 文 件 作 为 输 入 文 件 , 并 将 它 们 的 数 据 流 ( 全 部 或 部 分 ) 合 并 到 Matroska 文 件 中 去 ; 参 见 Matroska 网 站 [1] 重 要 命 令 行 选 项 的 顺 序 很 重 要 。 若 您 对 程 序 还 不 熟 悉 , 请 阅 读 「 选 项 顺 序 」 段 落 。 全 局 选 项

-v, --verbose 增 强 “详 细 ”程 度 。

-q, --quiet 取 消 状 态 输 出 。

-o, --output 文 件 名 写 至 文 件 文 件 名 。 如 果 使 用 了 切 割 功 能 , 对 此 参 数 的 处 理 将 有 所 不 同 。 详 情 请 参 阅 关 于 --split 选 项 的 说 明 。

-w, --webm 创 建 符 合 WebM 规 范 的 文 件 。 若 输 出 文 件 的 扩 展 名 为 「webm」, 则 会 自 动 开 启 本 选 项 。 此 模 式 将 实 施 一 些 限 制 。 只 允 许 使 用 编 解 码 器 为 VP8、 VP9 的 视 频 轨 道 及 Opus、 Vorbis 的 音 频 轨 道 。 DocType 头 部 项 目 将 改 为 「webm」。 对 于 章 节 与 标 签 , 只 允 许 使 用 一 部 分 元 素 。 mkvmerge(1) 将 自 动 移 除 规 范 所 不 允 许 的 元 素 。

--title 标 题 设 置 整 个 生 成 文 件 的 标 题 , 比 如 电 影 名 称 。

--default-language 语 言 代 码 设 置 默 认 语 言 代 码 , 用 于 没 有 使 用 --language 选 项 设 置 语 言 的 轨 道 以 及 源 容 器 未 提 供 语 言 值 的 轨 道 。 默 认 的 语 言 代 码 为 「 und」 , 即 「 undetermined」 ( 未 定 ) 。 剪 辑 信 息 处 理 (全 局 选 项 )
--segmentinfo
文 件 名 .xml 从 XML 文 件 中 读 取 剪 辑 信 息 。 此 文 件 可 以 包 含 剪 辑 族 的 UID、 剪 辑 的 UID、 上 一 剪 辑 以 及 下 一 剪 辑 的 UID 元 素 。 示 例 文 件 以 及 DTD 已 包 含 在 MKVToolNix 套 件 内 。 详 情 请 参 见 下 文 关 于 剪 辑 信 息 XML 文 件 的 段 落 。

--segment-uid SID1,SID2,... 设 定 要 使 用 的 剪 辑 UID。 这 是 个 逗 号 分 割 的 128 位 UID 列 表 , UID 为 通 常 的 格 式 : 十 六 进 制 数 字 , "0x" 前 缀 可 选 , 空 格 可 选 , 但 必 须 恰 好 有 32 个 数 位 。 若 SID 以 “=”开 头 , 则 其 剩 余 部 分 将 作 为 Matroska 文 件 解 析 , 将 读 取 并 使 用 该 文 件 的 剪 辑 UID。 创 建 的 每 个 文 件 都 包 含 一 个 剪 辑 , 每 个 剪 辑 有 一 个 剪 辑 UID。 如 果 指 定 的 剪 辑 UID 比 创 建 的 剪 辑 多 , 则 多 余 的 UID 将 被 忽 略 。 如 果 指 定 的 UID 比 创 建 的 剪 辑 少 , 则 将 随 机 创 建 UID。 章 节 与 标 签 处 理 (全 局 选 项 )
--chapter-language
语 言 代 码 设 置 各 章 节 项 的 ISO 639-2 语 言 代 码 。 默 认 为 'eng'。 详 情 参 见 下 文 中 关 于 章 节 的 段 落 。 此 选 项 可 用 于 简 单 章 节 文 件 与 包 含 章 节 但 不 含 章 节 语 言 信 息 的 输 入 文 件 , 如 MP4 与 OGM 文 件 。 本 选 项 设 置 的 语 言 也 将 用 于 --generate-chapters 选 项 所 生 成 的 章 节 。

--chapter-charset 字 符 集 设 置 简 单 章 节 文 件 的 字 符 集 , 用 于 将 其 转 换 为 UTF-8。 关 于 mkvmerge(1) 如 何 转 换 不 同 字 符 集 的 说 明 , 请 参 见 关 于 文 本 文 件 与 字 符 集 的 段 落 。 此 开 关 亦 可 应 用 到 从 特 定 容 器 类 型 , 如 Ogg/OGM 和 MP4 文 件 中 复 制 而 来 的 章 节 。 详 情 参 见 下 文 关 于 章 节 的 段 落 。

--chapter-sync d[,o[/p]] 将 章 节 的 时 间 戳 平 移 d ms。 您 也 可 以 使 用 --sync 选 项 操 作 特 殊 轨 道 ID -2 (参 见 特 殊 轨 道 ID 段 落 )。

o/p: 按 o/p 调 整 时 间 戳 以 修 复 线 性 偏 移 。 如 果 省 略 p 则 默 认 为 1。 op 均 可 为 浮 点 数 。 默 认 : 无 手 动 同 步 校 正 (与 d = 0o/p = 1.0 效 果 相 同 )。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--generate-chapters 模 式

mkvmerge(1) 可 以 自 动 创 建 章 节 。 目 前 支 持 下 述 两 种 模 式 :

• 'when-appending'( 追 加 文 件 时 ) – 文 件 开 头 为 第 一 章 , 随 后 每 追 加 一 个 文 件 便 创 建 一 个 章 节 。 此 模 式 同 时 支 持 「 parts:」 及 「 parts-frames:」 两 种 切 割 模 式 。 对 于 这 些 模 式 , 每 段 新 增 的 时 间 戳 范 围 会 生 成 一 个 新 章 节 (其 起 始 时 间 戳 带 有 「 +」 前 缀 )。 注 意

mkvmerge(1) 要 求 存 在 视 频 轨 或 音 频 轨 , 方 可 确 定 新 文 件 追 加 的 时 间 。 若 混 流 一 或 多 个 视 频 轨 , 则 将 使 用 第 一 个 轨 道 的 参 数 。 否 则 将 使 用 第 一 个 音 频 轨 。

• 'interval:指 定 时 间 ' – 该 模 式 根 据 指 定 时 间 所 给 出 的 固 定 时 间 间 隔 生 成 章 节 。 参 数 的 格 式 既 可 以 为 HH:MM:SS.nnnnnnnnn 的 形 式 , 也 可 以 为 数 字 后 接 单 位 's'、 'ms' 或 'us'。 示 例 : --generate-chapters interval:45s 新 章 节 的 名 称 由 选 项 --generate-chapters-name-template 控 制 。 语 言 通 过 --chapter-language 设 置 , 该 选 项 必 须 出 现 在 --generate-chapters 之 前 。

--generate-chapters-name-template 模 板 该 选 项 设 置 --generate-chapters 选 项 所 生 成 的 章 节 名 称 的 名 称 模 板 。 若 未 使 用 该 选 项 , 则 将 使 用 默 认 值 '第 <NUM:2> 章 '。 模 板 中 可 以 使 用 多 个 变 量 , 这 些 变 量 将 在 生 成 章 节 时 被 实 际 值 替 代 。 字 符 串 '<NUM>' 将 被 章 节 号 替 代 。 字 符 串 '<START>' 将 被 章 节 的 起 始 时 间 戳 替 代 。 字 符 串 「<FILE_NAME>」 与 「'<FILE_NAME_WITH_EXT>」 只 会 在 为 追 加 文 件 生 成 章 节 时 进 行 填 充 。 它 们 会 被 替 换 为 追 加 文 件 的 文 件 名 , 前 者 不 含 扩 展 名 , 后 者 包 含 扩 展 名 。 注 意 , 只 会 插 入 文 件 本 身 的 名 称 ( 及 扩 展 名 ) , 不 会 插 入 其 目 录 名 或 盘 符 。 您 可 以 以 '<NUM:位 数 >' 的 形 式 指 定 章 节 编 号 的 最 少 位 数 , 如 '<NUM:3>'。 最 终 的 数 字 , 若 其 位 数 小 于 指 定 位 数 , 则 将 在 开 头 补 零 。 您 可 以 以 <START:格 式 >的 形 式 控 制 起 始 时 间 戳 的 格 式 。 若 未 给 出 格 式 , 则 默 认 为 '%H:%M:%S'。 有 效 的 格 式 代 码 包 括 :

• %h – 时

• %H – 时 ( 两 位 )

• %m – 分

• %M – 分 ( 两 位 )

• %s – 秒

• %S – 秒 ( 两 位 )

• %n – 纳 秒 ( 九 位 )

• %<1-9>n – 纳 秒 , 精 度 最 高 为 九 位 (如 %3n 代 表 三 位 )

--cue-chapter-name-format 格 式

mkvmerge(1) 支 持 读 取 音 频 文 件 的 CUE 表 单 作 为 章 节 输 入 。 CUE 表 单 中 各 索 引 项 通 常 含 有 PERFORMER( 表 演 者 )TITLE( 标 题 ) 项 。 mkvmerge(1) 使 用 这 两 个 字 串 构 建 章 节 名 称 。 使 用 此 选 项 可 设 定 构 建 名 称 所 用 的 格 式 。 如 果 此 选 项 未 给 定 则 mkvmerge(1) 默 认 使 用 '%p - %t' 格 式 (表 演 者 , 后 接 空 格 , 一 个 破 折 号 , 另 一 个 空 格 以 及 标 题 )。 如 果 给 定 了 格 式 , 则 除 了 后 续 的 标 签 字 符 以 外 都 将 被 原 样 复 制 , 标 签 字 符 将 被 进 行 下 述 替 换 :

%p 被 当 前 项 的 PERFORMER( 表 演 者 ) 字 符 串 替 代 ,

%t 被 当 前 项 的 TITLE( 标 题 ) 字 符 串 替 代 ,

%n 被 当 前 轨 道 编 号 替 代 , 此 外

%N 被 当 前 轨 道 衬 式 编 号 ( 小 于 10 则 在 前 面 加 零 ) 替 代 。

--chapters 文 件 名 从 文 件 文 件 名 读 取 章 节 信 息 。 详 情 参 阅 下 文 关 于 章 节 的 段 落 。

--global-tags 文 件 名 从 文 件 文 件 名 读 取 全 局 标 签 。 详 情 参 阅 下 文 关 于 标 签 的 段 落 。 全 局 输 出 控 制 (高 级 全 局 选 项 )
--track-order
FID1:TID1,FID2:TID2,... 此 选 项 更 改 输 入 文 件 创 建 时 轨 道 的 顺 序 。 变 量 为 逗 号 分 隔 的 成 对 的 ID 列 。 每 对 先 包 含 有 文 件 ID (FID1), 即 文 件 在 命 令 行 中 的 顺 序 , 由 0 开 始 计 数 。 第 二 个 是 在 该 文 件 中 的 轨 道 ID (TID1)。 如 果 省 去 部 分 轨 道 的 ID, 则 这 些 轨 道 将 在 使 用 本 选 项 给 定 的 轨 道 创 建 之 后 创 建 。 若 未 指 定 该 选 项 , 各 轨 道 将 先 按 其 类 型 排 序 , 其 次 按 照 轨 道 所 在 的 输 入 文 件 的 次 序 排 序 。 对 于 轨 道 类 型 , 视 频 轨 道 排 在 最 前 面 , 其 次 是 音 频 、 字 幕 轨 道 。 其 他 罕 见 的 轨 道 类 型 排 在 最 后 。

--cluster-length 指 令 限 制 每 个 簇 中 数 据 块 的 数 量 或 数 据 的 时 长 。 指 令 参 数 可 以 是 无 单 位 的 数 字 n, 也 可 以 是 后 缀 有 'ms' 的 d。 如 果 未 使 用 数 字 , mkvmerge(1) 将 在 每 个 簇 中 放 置 最 多 n 个 数 据 块 。 最 大 块 数 是 65535。 如 果 数 字 d 后 缀 有 'ms', mkvmerge(1) 将 在 每 个 簇 中 放 置 最 多 d 毫 秒 的 数 据 。 d 的 最 小 值 是 '100ms', 最 大 值 是 '32000ms'。

mkvmerge(1) 默 认 每 簇 最 多 放 置 65535 个 数 据 块 或 5000ms 的 数 据 。 尝 试 定 位 到 特 定 帧 的 程 序 只 能 直 接 定 位 到 簇 , 然 后 需 要 读 取 整 个 簇 ( 来 完 成 定 位 ) 。 因 此 创 建 较 大 的 簇 将 导 致 定 位 不 精 确 或 缓 慢 。

--clusters-in-meta-seek 告 诉 mkvmerge(1) 在 文 件 末 尾 创 建 包 含 所 有 簇 的 元 定 位 元 素 。 参 阅 关 于 Matroska 文 件 规 划 的 段 落 。

--timestamp-scale 系 数 强 制 时 间 戳 缩 放 系 数 为 系 数 。 有 效 值 域 为 1000..10000000 或 特 殊 值 -1。 通 常 mkvmerge(1) 会 使 用 数 值 1000000, 这 样 时 间 戳 和 时 长 的 精 度 为 1ms。 对 于 不 包 含 视 频 轨 但 含 有 至 少 一 条 音 频 轨 的 文 件 , mkvmerge(1) 将 自 动 选 择 一 个 时 间 戳 缩 放 系 数 以 使 各 轨 的 音 频 采 样 精 度 相 同 。 这 将 引 起 更 大 的 额 外 开 销 , 但 将 允 许 更 为 精 确 的 定 位 与 提 取 。 如 果 使 用 了 特 殊 值 -1, 即 使 有 视 频 轨 , mkvmerge(1) 也 将 使 用 采 样 精 度 。

--enable-durations 为 所 有 区 块 写 入 时 长 。 这 将 增 大 文 件 尺 寸 , 而 且 目 前 对 播 放 器 来 说 没 有 额 外 的 好 处 。

--no-cuesmkvmerge(1) 不 要 创 建 或 写 入 cue 索 引 ( 可 类 比 作 AVI 文 件 中 的 索 引 ) 。 没 有 索 引 的 Matroska 文 件 也 能 播 放 , 但 定 位 可 能 不 精 确 且 缓 慢 。 仅 当 您 确 实 强 求 空 间 或 用 作 测 试 时 使 用 此 选 项 。 请 参 阅 可 为 各 输 入 文 件 指 定 的 --cues 选 项 。

--no-date 默 认 情 况 下 , mkvmerge(1) 会 将 剪 辑 信 息 中 的 「 date」 字 段 设 为 混 流 开 始 的 日 期 与 时 间 。 通 过 此 选 项 可 以 完 全 不 写 入 该 字 段 。

--disable-lacing 禁 用 所 有 轨 道 的 紧 缩 。 这 将 增 加 文 件 大 小 , 尤 其 是 当 有 很 多 音 频 轨 时 。 此 选 项 不 供 日 常 之 用 。

--disable-track-statistics-tags 通 常 mkvmerge(1) 会 为 每 条 轨 道 写 入 特 定 的 统 计 信 息 标 签 。 若 这 类 标 签 已 存 在 , 则 将 被 覆 盖 。 这 些 标 签 包 括 BPSDURATIONNUMBER_OF_BYTESNUMBER_OF_FRAMES。 启 用 本 选 项 可 阻 止 mkvmerge(1) 写 入 这 些 标 签 或 修 改 现 有 的 同 名 标 签 。

--disable-language-ietf

mkvmerge(1) 通 常 会 在 轨 道 头 部 、 章 节 以 及 标 签 中 同 时 写 入 传 统 语 言 元 素 以 及 全 新 的 IETF BCP 47 语 言 元 素 。 若 使 用 此 选 项 , 则 只 会 写 入 传 统 元 素 。

--normalize-language-ietf 模 式 将 IETF BCP 47 语 言 标 签 规 范 化 , 支 持 「 canonical」 ( 最 简 式 ) 、 「 extlang」 ( 扩 展 语 言 子 标 签 形 式 ) 以 及 「 off」 关 闭 模 式 。 默 认 ( 不 添 加 本 选 项 ) 会 规 范 化 至 最 简 式 。 最 简 式 模 式 下 , 所 有 存 在 推 荐 值 ( preferred value) 的 语 言 子 标 签 都 会 被 替 换 为 推 荐 值 。 依 规 范 会 执 行 下 述 转 换 : 「zh-yue-jyutping」 转 换 为 「yue-jyutping」, 「fr-FX」 转 换 为 「fr-FR」。 扩 展 语 言 子 标 签 形 式 在 最 简 式 的 基 础 上 生 成 。 所 有 存 在 扩 展 语 言 子 标 签 ( extended language subtag) 的 主 要 语 言 ( primary language) 都 被 替 换 为 子 标 签 对 应 的 前 缀 加 上 该 子 标 签 。 该 规 则 将 「yue-jyutping」 转 回 传 统 的 「zh-yue-jyutping」 形 式 , 但 「fr-FR」 不 会 发 生 变 化 , 因 为 「fr」 不 属 于 扩 展 语 言 子 标 签 。

--stop-after-video-ends 主 体 视 频 轨 道 写 入 完 毕 后 立 刻 停 止 处 理 , 丢 弃 其 他 轨 道 在 此 时 间 戳 以 后 的 数 据 。 文 件 切 割 、 连 接 、 追 加 及 合 并 (其 他 全 局 选 项 )
--split
指 令 在 给 定 尺 寸 或 时 间 之 后 切 割 输 出 文 件 。 请 注 意 , 各 轨 道 只 能 在 关 键 帧 之 前 的 地 方 切 割 开 来 。 因 此 实 际 切 割 点 可 能 比 用 户 指 定 的 稍 稍 靠 后 些 。 目 前 mkvmerge(1) 支 持 以 下 模 式 :

1. 按 尺 寸 切 割 。 语 法 : --split [size:]d[k|m|g] 示 例 : --split size:700m 或 者 --split 150000000 参 数 d 可 以 以 'k'、 'm' 或 'g' 结 尾 , 分 别 说 明 尺 寸 的 单 位 为 KB、 MB 或 GB。 否 则 假 定 单 位 为 字 节 。 当 前 输 出 文 件 达 到 此 尺 寸 限 制 后 将 开 始 输 出 新 的 文 件 。 为 兼 顾 兼 容 性 , 'size:' 前 缀 可 以 省 略 。

2. 在 一 定 时 长 后 切 割 。 语 法 : --split [duration:]HH:MM:SS.nnnnnnnnn|ds 示 例 : --split duration:00:60:00.000 或 --split 3600s 此 参 数 可 以 用 HH:MM:SS.nnnnnnnnn 的 形 式 指 定 纳 秒 精 度 的 时 长 , 也 可 以 是 后 接 字 母 's' 的 指 定 秒 数 时 长 的 数 字 dHH 为 小 时 数 , MM 为 分 钟 数 , SS 为 秒 数 , 而 nnnnnnnnn 为 纳 秒 数 。 小 时 数 与 纳 秒 数 均 可 省 略 。 小 数 点 后 最 多 可 以 有 九 位 。 当 前 输 出 内 容 的 时 长 达 到 此 限 制 后 将 开 始 输 出 新 的 输 出 文 件 。 为 兼 顾 兼 容 性 , 'duration:' 前 缀 可 以 省 略 。

3. 在 指 定 时 间 戳 后 切 割 。 语 法 : --split timestamps:A[,B[,C...]] 示 例 : --split timestamps:00:45:00.000,01:20:00.250,6300s 参 数 ABC 等 等 的 格 式 与 按 时 长 切 割 模 式 ( 见 上 文 ) 所 用 的 格 式 相 同 。 时 间 戳 表 以 逗 号 分 隔 。 输 入 流 达 到 当 前 切 割 点 的 时 间 戳 后 将 创 建 新 的 输 出 文 件 。 然 后 将 使 用 所 给 定 的 下 一 个 切 割 点 。

'timestamps:' 前 缀 不 得 省 略 。

4. 通 过 指 定 时 间 戳 范 围 , 保 留 特 定 部 分 , 并 丢 弃 其 余 部 分 。 语 法 : --split parts:起 点 1-终 点 1[,[+]起 点 3-终 点 2[,[+]起 点 3-终 点 3...]] 示 例 :

1. --split parts:00:01:20-00:02:45,00:05:50-00:10:30

2. --split parts:00:01:20-00:02:45,+00:05:50-00:10:30

3. --split parts:-00:02:45,00:05:50-

parts 模 式 可 以 告 诉 mkvmerge(1) 保 留 特 定 时 间 戳 范 围 , 而 丢 弃 其 余 部 分 。 要 保 留 的 范 围 需 要 在 parts: 关 键 词 后 列 出 , 以 逗 号 隔 开 。 各 分 段 由 起 始 及 终 止 时 间 戳 组 成 , 格 式 与 其 他 --split 模 式 所 能 接 受 的 相 同 (如 00:01:20 与 80s 代 表 相 同 的 时 间 戳 )。 若 起 始 时 间 戳 留 空 , 则 默 认 为 前 一 段 的 终 止 时 间 戳 。 若 不 存 在 前 一 段 , 则 默 认 为 文 件 开 头 (参 见 示 例 3)。 若 终 止 时 间 戳 留 空 , 则 默 认 为 输 入 文 件 末 尾 , 亦 即 告 诉 mkvmerge(1) 保 留 其 余 部 分 (参 见 示 例 3)。 通 常 每 一 段 都 会 写 入 新 的 文 件 。 该 行 为 也 可 以 调 整 , 以 便 将 连 续 的 分 段 写 入 同 一 个 文 件 。 要 实 现 这 种 效 果 , 用 户 可 以 在 起 始 时 间 戳 开 头 加 上 + 前 缀 。 这 样 可 以 告 诉 mkvmerge(1) 不 要 创 建 新 文 件 , 而 是 将 该 分 段 写 入 与 之 前 一 段 相 同 的 文 件 当 中 。 时 间 戳 也 会 自 动 调 整 , 确 保 即 使 输 入 文 件 中 两 分 段 不 连 续 , 输 出 文 件 中 也 不 出 现 间 隙 。 例 1 中 mkvmerge(1) 会 创 建 两 个 文 件 。 第 一 个 包 含 从 00:01:20 到 00:02:45 之 间 的 内 容 。 第 二 个 文 件 包 含 从 00:05:50 到 00:10:30 之 间 的 内 容 。 例 2 中 mkvmerge(1) 将 只 创 建 一 个 文 件 。 该 文 件 包 含 从 00:01:20 到 00:02:45 及 从 00:05:50 到 00:10:30 的 内 容 。 例 3 中 mkvmerge(1) 将 创 建 两 个 文 件 。 第 一 个 包 含 从 输 入 文 件 开 头 到 00:02:45 的 内 容 。 第 二 个 文 件 将 包 含 从 00:05:50 到 输 入 文 件 结 尾 之 间 的 内 容 。 注 意 请 注 意 , mkvmerge(1) 只 在 关 键 帧 位 置 决 定 是 否 切 割 。 每 段 切 割 区 域 的 起 始 点 与 结 束 点 均 为 关 键 帧 。 因 此 即 使 结 束 时 间 戳 介 于 两 个 关 键 帧 之 间 , mkvmerge(1) 也 将 继 续 输 出 帧 , 直 到 下 一 关 键 帧 为 止 ( 不 包 括 ) 。

5. 通 过 指 定 帧 /场 序 号 范 围 , 保 留 特 定 部 分 , 并 丢 弃 其 余 部 分 。 语 法 : --split parts-frames:起 点 1-终 点 1[,[+]起 点 2-终 点 2[,[+]起 点 3-终 点 3...]] 示 例 :

1. --split parts-frames:137-258,548-1211

2. --split parts-frames:733-912,+1592-2730

3. --split parts-frames:-430,2512-

parts-frames 模 式 可 以 告 诉 mkvmerge(1) 保 留 特 定 帧 /场 序 号 范 围 , 而 丢 弃 其 余 部 分 。 要 保 留 的 范 围 需 要 在 parts-frames: 关 键 词 后 列 出 , 以 逗 号 隔 开 。 各 分 段 由 起 始 及 终 止 帧 /场 序 号 组 成 。 序 号 从 1 开 始 计 数 。 若 起 始 序 号 留 空 , 则 默 认 为 前 一 段 的 终 止 序 号 。 若 不 存 在 前 一 段 , 则 默 认 为 文 件 开 头 (参 见 示 例 3)。 若 终 止 序 号 留 空 , 则 默 认 为 文 件 末 尾 , 亦 即 告 诉 mkvmerge(1) 保 留 其 余 部 分 (参 见 示 例 3)。 通 常 每 一 段 都 会 写 入 新 的 文 件 。 该 行 为 也 可 以 调 整 , 以 便 将 连 续 的 分 段 写 入 同 一 个 文 件 。 要 实 现 这 种 效 果 , 用 户 可 以 在 起 始 序 号 开 头 加 上 + 前 缀 。 这 样 可 以 告 诉 mkvmerge(1) 不 要 创 建 新 文 件 , 而 是 将 该 分 段 写 入 与 之 前 一 段 相 同 的 文 件 当 中 。 时 间 戳 也 会 自 动 调 整 , 确 保 即 使 输 入 文 件 中 两 分 段 不 连 续 , 输 出 文 件 中 也 不 出 现 间 隙 。 注 意 请 注 意 , mkvmerge(1) 只 在 关 键 帧 位 置 决 定 是 否 切 割 。 每 段 切 割 区 域 的 起 始 点 与 结 束 点 均 为 关 键 帧 。 因 此 即 使 结 束 帧 /场 序 号 介 于 两 个 关 键 帧 之 间 , mkvmerge(1) 也 将 继 续 输 出 帧 , 直 到 下 一 关 键 帧 为 止 ( 不 包 括 ) 。 例 1 中 mkvmerge(1) 会 创 建 两 个 文 件 。 第 一 个 包 含 从 第 137 帧 或 之 后 的 第 一 个 关 键 帧 , 到 第 258 帧 或 之 后 的 第 一 个 关 键 帧 ( 但 不 含 该 关 键 帧 ) 之 间 的 内 容 。 第 二 个 文 件 包 含 第 548 到 1211 帧 之 间 的 内 容 。 例 2 中 mkvmerge(1) 将 只 创 建 一 个 文 件 。 该 文 件 包 含 从 733 到 912 及 从 1592 到 2730 的 内 容 。 例 3 中 mkvmerge(1) 将 创 建 两 个 文 件 。 第 一 个 包 含 输 入 文 件 开 头 到 430 的 内 容 。 第 二 个 文 件 将 包 含 从 2512 到 输 入 文 件 结 尾 之 间 的 内 容 。 该 模 式 只 考 虑 输 出 的 第 一 条 视 频 轨 道 。 如 果 没 有 输 出 视 频 轨 道 , 则 将 不 会 进 行 切 割 操 作 。 注 意 通 过 本 参 数 给 出 的 数 字 将 根 据 输 出 的 Matroska 区 块 解 析 。 单 个 Matroska 区 块 可 包 含 完 整 的 一 帧 (对 于 逐 行 扫 描 的 内 容 ) 或 单 场 (对 于 隔 行 扫 描 的 内 容 )。 mkvmerge 不 区 分 两 者 , 它 直 接 统 计 区 块 数 目 。 例 如 : 假 设 某 人 希 望 在 隔 行 扫 描 的 第 25 个 完 整 帧 之 后 切 割 , 则 应 使 用 50 (每 帧 对 应 两 场 ) 作 为 切 割 点 。

6. 在 指 定 帧 /场 后 切 割 。 语 法 : --split frames:A[,B[,C...]] 示 例 : --split frames:120,237,891 参 数 ABC 等 等 必 须 全 为 正 整 数 。 编 号 从 1 开 始 。 帧 /场 编 号 列 表 以 逗 号 分 隔 。 输 入 流 达 到 当 前 切 割 点 的 帧 /场 编 号 后 将 创 建 新 的 输 出 文 件 。 然 后 将 使 用 所 给 定 的 下 一 个 切 割 点 。

'frames:' 前 缀 不 得 省 略 。 该 模 式 只 考 虑 输 出 的 第 一 条 视 频 轨 道 。 如 果 没 有 输 出 视 频 轨 道 , 则 将 不 会 进 行 切 割 操 作 。 注 意 通 过 本 参 数 给 出 的 数 字 将 根 据 输 出 的 Matroska 区 块 解 析 。 单 个 Matroska 区 块 可 包 含 完 整 的 一 帧 (对 于 逐 行 扫 描 的 内 容 ) 或 单 场 (对 于 隔 行 扫 描 的 内 容 )。 mkvmerge 不 区 分 两 者 , 它 直 接 统 计 区 块 数 目 。 例 如 : 假 设 某 人 希 望 在 隔 行 扫 描 的 第 25 个 完 整 帧 之 后 切 割 , 则 应 使 用 50 (每 帧 对 应 两 场 ) 作 为 切 割 点 。

7. 在 指 定 章 节 之 前 切 割 。 语 法 : --split chapters:all or --split chapters:A[,B[,C...]] 示 例 : --split chapters:5,8 参 数 ABC 等 等 必 须 全 为 正 整 数 。 编 号 从 1 开 始 。 章 节 编 号 列 表 以 逗 号 分 隔 。 切 割 将 在 时 间 戳 等 于 或 大 于 所 列 编 号 对 应 章 节 的 起 始 时 间 戳 的 首 个 关 键 帧 之 前 进 行 。 从 0s 开 始 的 章 节 将 不 作 考 虑 , 并 不 作 提 示 , 直 接 丢 弃 。 关 键 词 all 可 选 择 所 有 章 节 编 号 , 无 需 手 工 输 入 。

'chapters:' 前 缀 不 得 省 略 。 注 意

Matroska 文 件 格 式 支 持 任 意 深 度 嵌 套 的 章 节 结 构 , 称 为 “版 本 条 目 ”与 “章 节 单 位 ”。 但 该 模 式 仅 考 虑 所 有 版 本 条 目 中 最 顶 层 的 章 节 。 此 切 割 模 式 下 输 出 文 件 名 将 以 不 同 于 常 用 操 作 的 方 式 对 待 。 可 能 会 含 有 类 似 printf 中 '%d' 的 表 达 式 , 包 括 可 选 的 字 段 宽 度 , 如 '%02d'。 如 果 含 有 上 述 表 达 式 , 当 前 文 件 序 号 将 按 相 应 格 式 生 成 , 然 后 插 入 到 文 件 名 中 的 相 应 位 置 。 如 果 没 有 此 类 匹 配 模 式 , 则 假 定 匹 配 模 式 为 在 文 件 扩 展 名 之 前 插 入 '-%03d': '-o 输 出 .mkv' 将 生 成 '输 出 -001.mkv' 这 样 的 一 系 列 文 件 。 如 果 没 有 扩 展 名 , '-%03d' 将 被 追 加 在 文 件 名 之 后 。 也 可 以 选 用 「 %c」 , 它 将 被 替 换 为 文 件 中 首 个 章 节 的 名 称 。 注 意 : 当 「 %c」 存 在 时 , 不 会 再 自 动 添 加 「 -%03d」 。

--link 切 割 输 出 文 件 时 连 接 文 件 。 详 情 请 参 阅 下 文 文 件 链 接 段 落 。

--link-to-previous 剪 辑 -UID 连 接 第 一 个 输 出 文 件 到 指 定 剪 辑 -UID 参 数 对 应 的 剪 辑 。 详 情 请 参 阅 下 文 文 件 链 接 段 落 。 若 SID 以 “=”开 头 , 则 其 剩 余 部 分 将 作 为 Matroska 文 件 解 析 , 将 读 取 并 使 用 该 文 件 的 剪 辑 UID。

--link-to-next 剪 辑 -UID 连 接 最 后 一 个 输 出 文 件 到 指 定 剪 辑 -UID 参 数 对 应 的 剪 辑 。 详 情 请 参 阅 下 文 文 件 链 接 段 落 。 若 SID 以 “=”开 头 , 则 其 剩 余 部 分 将 作 为 Matroska 文 件 解 析 , 将 读 取 并 使 用 该 文 件 的 剪 辑 UID。

--append-mode 模 式 决 定 追 加 合 并 文 件 时 如 何 计 算 时 间 戳 。 参 数 模 式 可 以 有 两 个 数 值 : 默 认 的 'file( 文 件 ) ' 和 'track( 轨 道 ) '。 当 mkvmerge 将 第 二 个 文 件 (下 称 「 文 件 2」 ) 中 的 一 条 轨 道 (「 轨 道 2_1」 ) 追 加 合 并 到 第 一 个 文 件 (「 文 件 1」 ) 的 一 条 轨 道 (「 轨 道 1_1」 ) 时 , 它 将 为 「 轨 道 2_1」 的 所 有 时 间 戳 设 定 一 定 量 的 延 时 。 对 于 「 file」 ( 文 件 ) 模 式 , 此 延 时 量 是 「 文 件 1」 中 出 现 的 最 大 时 间 戳 , 即 使 此 时 间 戳 不 属 于 轨 道 「 轨 道 1_1」 。 而 在 轨 道 ( track) 模 式 下 , 此 延 时 为 「 轨 道 1_1」 本 身 的 最 大 时 间 戳 。 不 幸 的 是 mkvmerge 无 法 侦 测 使 用 哪 种 模 式 更 为 可 靠 。 因 此 默 认 为 'file( 文 件 ) ' 模 式 。 'file' 模 式 对 单 独 创 建 的 文 件 的 处 理 通 常 更 好 ; 例 如 在 追 加 AVI 或 MP4 文 件 时 。 'track( 轨 道 ) ' 模 式 对 一 个 大 文 件 的 完 整 分 块 的 处 理 更 好 , 例 如 对 于 VOB 与 EVO 文 件 。 即 使 选 用 了 'track( 轨 道 ) ' 模 式 , 字 母 轨 道 也 将 按 照 'file( 文 件 ) ' 模 式 处 理 。

--append-to SFID1:STID1:DFID1:DTID1[,...] 此 选 项 控 制 将 哪 一 条 轨 道 追 加 合 并 到 哪 一 条 轨 道 。 每 组 指 令 由 四 个 ID 组 成 : 输 入 文 件 ID 及 轨 道 ID、 目 标 文 件 ID 及 目 标 轨 道 ID。 第 一 对 , 「 输 入 文 件 ID」 与 「 输 入 轨 道 ID」 确 定 正 要 执 行 追 加 合 并 操 作 的 轨 道 。 第 二 对 , 「 目 标 文 件 ID」 与 「 目 标 轨 道 ID」 , 确 定 输 入 轨 道 即 将 追 加 合 并 到 的 目 标 轨 道 。 如 果 忽 略 本 选 项 , 则 将 使 用 标 准 映 射 。 标 准 映 射 即 将 当 前 文 件 的 各 个 轨 道 追 加 到 前 一 个 文 件 的 相 应 轨 道 ( 轨 道 ID 相 同 ) 。 当 影 片 被 切 割 为 多 段 , 且 各 文 件 中 轨 道 数 和 轨 道 ID 相 同 时 , 这 将 允 许 简 单 的 追 加 合 并 , 命 令 行 为 mkvmerge -o 输 出 .mkv 第 一 段 .mkv +第 二 段 .mkv

+ 单 个 '+' 将 追 加 后 面 的 文 件 , 而 不 是 添 加 。 '+' 也 可 以 直 接 放 在 下 一 个 文 件 名 的 前 面 。 因 此 以 下 两 条 命 令 等 效 :

$ mkvmerge -o 完 整 .mkv 文 件 1.mkv + 文 件 2.mkv
$ mkvmerge -o 完 整 .mkv 文 件 1.mkv +文 件 2.mkv

[ 文 件 1 文 件 2 ] 如 果 方 括 号 内 包 含 多 个 文 件 名 , 则 从 第 二 个 文 件 开 始 的 所 有 文 件 都 将 追 加 合 并 到 括 号 中 第 一 个 文 件 后 面 。 这 是 用 “+”连 接 文 件 名 的 另 一 种 语 法 。 因 此 下 述 两 条 命 令 是 等 效 的 :

$ mkvmerge -o 完 整 .mkv 文 件 1.mkv + 文 件 2.mkv
$ mkvmerge -o 完 整 .mkv '[' 文 件 1.mkv 文 件 2.mkv ']'

= 对 特 定 类 型 的 文 件 (MPEG 节 目 流 , 即 VOB 文 件 ) mkvmerge(1) 通 常 会 去 输 入 文 件 所 在 的 目 录 寻 找 是 否 存 在 基 本 文 件 名 一 致 、 仅 编 号 存 在 差 异 的 文 件 (例 如 「 VTS_01_1.VOB」 「 VTS_01_2.VOB」 「 VTS_01_3.VOB」 等 ) 并 将 所 有 文 件 视 为 互 相 串 联 的 单 个 大 文 件 。 此 选 项 ——单 个 「 =」 ——要 求 mkvmerge 不 要 去 寻 找 其 他 文 件 。

'=' 也 可 以 放 在 下 一 个 文 件 名 的 前 面 。 因 此 以 下 两 条 命 令 等 效 :

$ mkvmerge -o 完 整 .mkv = 文 件 1.vob
$ mkvmerge -o 完 整 .mkv =文 件 1.vob

( 文 件 1 文 件 2 ) 如 果 一 对 圆 括 号 中 包 含 多 个 文 件 名 , 这 些 文 件 将 被 当 作 连 接 起 来 的 单 个 大 文 件 对 待 , 其 内 容 为 各 文 件 顺 序 相 连 。 该 功 能 可 用 于 如 DVD 中 的 VOB 文 件 , 或 是 MPEG 传 输 流 。 如 果 各 文 件 有 独 立 的 头 , 常 见 的 例 子 如 独 立 的 AVI 或 MP4 文 件 , 则 不 适 用 。 将 文 件 名 置 于 括 号 中 还 可 以 阻 止 mkvmerge(1) 查 找 具 有 相 同 基 名 称 的 文 件 , 如 = 选 项 所 述 。 因 此 下 面 两 则 命 令 行 等 效 :

$ mkvmerge -o 输 出 .mkv = 文 件 .mkv
$ mkvmerge -o 输 出 .mkv '(' 文 件 .mkv ')' 应 该 注 意 的 几 件 事 :

1. 左 括 号 后 、 右 括 号 前 均 必 须 有 空 格 。

2. 括 号 之 间 的 所 有 参 数 都 作 为 文 件 名 解 析 。 因 此 应 用 到 此 逻 辑 文 件 的 所 有 选 项 都 必 须 在 左 括 号 之 前 列 出 。

3. 一 些 shell 会 将 括 号 作 为 特 殊 符 号 对 待 。 因 此 您 需 要 像 上 例 这 样 进 行 转 义 或 给 它 们 加 上 引 号 。 附 件 支 持 (其 他 全 局 选 项 )

--attachment-description 描 述 对 后 面 附 件 的 纯 文 字 描 述 。 将 应 用 到 下 一 个 --attach-file--attach-file-once 选 项 。

--attachment-mime-type MIME 类 型 后 面 附 件 的 MIME 类 型 。 将 应 用 到 下 一 个 --attach-file--attach-file-once 选 项 。 官 方 认 可 的 MIME 类 型 列 表 可 以 在 如 IANA 主 页 [2] 找 到 。 MIME 类 型 对 附 件 来 说 是 必 需 的 。 如 果 没 有 指 定 附 件 的 MIME 类 型 , 则 会 自 动 侦 测 其 类 型 。

--attachment-name 名 称 设 置 此 附 件 将 在 输 出 文 件 中 储 存 的 名 称 。 如 果 未 给 出 此 选 项 则 将 由 --attach-file--attach-file-once 选 项 所 设 的 文 件 名 推 得 。

--attach-file 文 件 名 , --attach-file-once 文 件 名 在 Matroska 文 件 中 创 建 文 件 附 件 。 MIME 类 型 必 须 在 使 用 此 选 项 之 前 设 定 。 两 种 形 式 的 不 同 之 处 在 于 使 用 --attach-file 附 加 的 文 件 在 切 割 过 程 中 将 被 附 加 到 所 有 输 出 文 件 中 , 而 使 用 --attach-file-once 附 加 的 文 件 只 被 附 加 到 创 建 的 首 个 文 件 中 。 如 果 未 使 用 切 割 功 能 , 两 种 形 式 效 果 相 同 。 可 以 使 用 mkvextract(1) 从 Matroska 文 件 中 提 取 附 件 文 件 。

--enable-legacy-font-mime-types 对 于 特 定 类 型 的 字 体 附 件 , 使 用 传 统 的 MIME 类 型 。 例 如 , TrueType 字 体 的 类 型 将 标 注 为 「 application/x-truetype-font」 而 非 「 fonts/ttf」 。 这 将 同 时 影 响 未 手 动 指 定 MIME 类 型 的 新 附 件 , 以 及 现 有 的 字 体 附 件 , 其 已 存 在 的 MIME 类 型 将 被 重 新 映 射 至 传 统 类 型 。 受 影 响 的 MIME 类 型 如 下 : 「 font/sfnt」 「 font/ttf」 「 font/collection」 将 全 部 映 射 至 「 application/x-truetype-fonts」 , 「 font/otf」 将 被 映 射 至 「 application/vnd.ms-opentype」 。 用 于 各 输 入 文 件 的 选 项
-a
, --audio-tracks [!]n,m,... 复 制 nm 等 音 频 轨 。 数 字 是 可 以 通 过 --identify 开 关 获 取 的 轨 道 ID。 他 们 不 只 是 简 单 的 轨 道 序 号 ( 参 见 轨 道 ID段 落 ) 。 默 认 : 复 制 所 有 音 频 轨 道 。 除 轨 道 ID 以 外 , 您 还 可 以 提 供 ISO 639-2 语 言 代 码 。 仅 当 输 入 文 件 的 轨 道 包 含 语 言 标 签 时 可 用 。 默 认 : 复 制 该 类 的 所 有 轨 道 。 若 ID 以 ! 开 头 , 则 其 意 义 相 反 : 复 制 该 类 的 所 有 轨 道 , 除 了 ! 后 面 所 列 出 的 轨 道 。

-d, --video-tracks [!]n,m,... 复 制 nm 等 视 频 轨 。 数 字 是 可 以 通 过 --identify 开 关 获 取 的 轨 道 ID。 他 们 不 只 是 简 单 的 轨 道 序 号 ( 参 见 轨 道 ID段 落 ) 。 默 认 : 复 制 所 有 视 频 轨 道 。 除 轨 道 ID 以 外 , 您 还 可 以 提 供 ISO 639-2 语 言 代 码 。 仅 当 输 入 文 件 的 轨 道 包 含 语 言 标 签 时 可 用 。 若 ID 以 ! 开 头 , 则 其 意 义 相 反 : 复 制 该 类 的 所 有 轨 道 , 除 了 ! 后 面 所 列 出 的 轨 道 。

-s, --subtitle-tracks [!]n,m,... 复 制 nm 等 字 幕 轨 。 数 字 是 可 以 通 过 --identify 开 关 获 取 的 轨 道 ID。 他 们 不 只 是 简 单 的 轨 道 序 号 ( 参 见 轨 道 ID段 落 ) 。 默 认 : 复 制 所 有 字 幕 轨 道 。 除 轨 道 ID 以 外 , 您 还 可 以 提 供 ISO 639-2 语 言 代 码 。 仅 当 输 入 文 件 的 轨 道 包 含 语 言 标 签 时 可 用 。 若 ID 以 ! 开 头 , 则 其 意 义 相 反 : 复 制 该 类 的 所 有 轨 道 , 除 了 ! 后 面 所 列 出 的 轨 道 。

-b, --button-tracks [!]n,m,... 复 制 nm 等 按 钮 轨 。 数 字 是 可 以 通 过 --identify 开 关 获 取 的 轨 道 ID。 他 们 不 只 是 简 单 的 轨 道 序 号 ( 参 见 轨 道 ID段 落 ) 。 默 认 : 复 制 所 有 按 钮 轨 道 。 除 轨 道 ID 以 外 , 您 还 可 以 提 供 ISO 639-2 语 言 代 码 。 仅 当 输 入 文 件 的 轨 道 包 含 语 言 标 签 时 可 用 。 若 ID 以 ! 开 头 , 则 其 意 义 相 反 : 复 制 该 类 的 所 有 轨 道 , 除 了 ! 后 面 所 列 出 的 轨 道 。

--track-tags [!]n,m,... 复 制 nm 等 轨 道 的 标 签 。 数 字 是 可 以 通 过 --identify 开 关 获 取 的 轨 道 ID。 他 们 不 只 是 简 单 的 轨 道 序 号 ( 参 见 轨 道 ID段 落 ) 。 默 认 : 复 制 所 有 轨 道 的 标 签 。 如 果 ID 以 ! 作 为 前 缀 , 则 含 义 相 反 : 复 制 除 了 列 在 ! 后 面 的 ID 以 外 的 所 有 轨 道 。

-m, --attachments [!]n[:all|first],m[:all|first],... 复 制 ID 为 nm 等 的 附 件 到 所 有 或 者 仅 首 个 输 出 文 件 中 。 各 ID 后 可 接 ':all'( 如 果 两 可 选 数 值 均 未 输 入 , 此 为 默 认 值 ) 或 者 ':first'。 如 果 切 割 功 能 已 被 起 用 , 则 ID 被 指 定 为 ':all' 的 附 件 将 被 复 制 到 所 有 生 成 的 输 出 文 件 中 , 而 其 他 附 件 只 被 复 制 到 首 个 输 出 文 件 中 。 如 果 未 使 用 切 割 功 能 则 两 变 量 等 效 。 默 认 复 制 所 有 附 件 到 所 有 输 出 文 件 中 。 如 果 ID 以 ! 作 为 前 缀 , 则 含 义 相 反 : 复 制 除 了 列 在 ! 后 面 的 ID 以 外 的 所 有 轨 道 。

-A, --no-audio 不 要 从 此 文 件 中 复 制 任 何 音 频 轨 。

-D, --no-video 不 要 从 此 文 件 中 复 制 任 何 视 频 轨 。

-S, --no-subtitles 不 要 从 此 文 件 中 复 制 任 何 字 幕 轨 。

-B, --no-buttons 不 要 从 此 文 件 中 复 制 任 何 按 钮 轨 。

-T, --no-track-tags 不 要 从 此 文 件 中 复 制 任 何 轨 道 细 节 标 签 。

--no-chapters 不 要 从 此 文 件 中 复 制 章 节 。

-M, --no-attachments 不 要 从 此 文 件 中 复 制 附 件 。

--no-global-tags 不 要 从 此 文 件 中 复 制 全 局 标 签 。

--regenerate-track-uids 对 Matroska 格 式 的 输 入 文 件 启 用 此 选 项 时 , mkvmerge(1) 将 生 成 全 新 的 随 机 轨 道 UID, 而 非 保 留 文 件 中 现 有 的 UID。 同 一 个 输 入 文 件 内 读 取 到 的 章 节 、 标 签 中 出 现 的 现 有 UID 将 会 重 新 映 射 至 新 生 成 的 UID。 对 于 由 MakeMKV 软 件 生 成 的 Matroska 文 件 , 此 选 项 会 自 动 启 用 。 因 为 MakeMKV 采 用 顺 序 编 号 (1, 2, 3...) 作 为 UID, 而 非 生 成 随 机 的 UID。

-y, --sync TID:d[,o[/p]] 将 id 为 TID 的 轨 道 的 时 间 戳 按 d ms 进 行 调 整 。 轨 道 ID 与 --identify 所 给 出 的 相 同 (参 见 轨 道 ID 段 落 )。

o/p: 按 o/p 调 整 时 间 戳 以 修 复 线 性 偏 移 。 如 果 省 略 p 则 默 认 为 1。 op 均 可 为 浮 点 数 。 默 认 : 无 手 动 同 步 校 正 (与 d = 0o/p = 1.0 效 果 相 同 )。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--cues TID:none|iframes|all 控 制 为 指 定 轨 道 (参 阅 轨 道 ID 段 落 ) 创 建 何 种 cue 索 引 。 'none( 无 ) ' 将 阻 止 cue 索 引 的 创 建 。 而 'iframes( 仅 i 帧 ) ' 表 示 仅 将 没 有 前 后 参 考 的 块 ( = 视 频 轨 道 中 的 I 帧 ) 置 于 cue 索 引 项 中 。 'all( 全 部 ) ' 将 使 mkvmerge(1) 为 所 有 区 块 创 建 索 引 , 会 使 生 成 的 文 件 非 常 大 。 默 认 值 为 'iframes( 仅 i 帧 ) '( 视 频 及 字 幕 轨 道 ) 或 'none( 无 ) '( 音 频 轨 道 ) 。 参 见 --no-cues 选 项 , 后 者 可 阻 止 cue 条 目 的 创 建 , 无 论 是 否 使 用 了 --cues 选 项 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--default-track-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 (参 见 「 轨 道 ID」 段 落 ) 设 置 「 默 认 轨 」 标 记 。 若 输 入 容 器 未 提 供 此 信 息 , 且 用 户 未 通 过 选 项 参 数 指 定 , 即 会 设 置 该 标 记 。 如 果 用 户 在 播 放 时 不 明 确 选 择 一 条 轨 道 , 播 放 器 应 选 择 已 设 有 「 默 认 轨 」 标 记 的 轨 道 , 同 时 也 应 考 虑 用 户 偏 好 设 置 , 例 如 用 户 偏 好 的 语 言 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--track-enabled-flag TID[:布 尔 值 ] 将 指 定 轨 道 的 「 轨 道 启 用 」 标 记 (参 阅 「 轨 道 ID」 段 落 ) 设 为 指 定 值 布 尔 值 (0 或 1; 若 不 指 定 , 则 默 认 为 1)。 只 要 没 有 特 别 指 定 选 项 值 , 且 输 入 容 器 也 未 提 供 此 类 信 息 , 轨 道 均 默 认 为 启 用 状 态 。 只 有 设 置 了 「 轨 道 启 用 」 标 记 的 轨 道 才 应 作 为 播 放 器 考 虑 播 放 的 对 象 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--forced-display-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 强 制 显 示 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 选 项 适 用 于 包 含 屏 幕 显 示 文 字 或 外 语 对 白 翻 译 的 轨 道 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--hearing-impaired-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 听 觉 障 碍 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 标 记 适 用 于 适 合 听 觉 障 碍 人 士 使 用 的 轨 道 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--visual-impaired-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 视 觉 障 碍 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 标 记 适 用 于 适 合 视 觉 障 碍 人 士 使 用 的 轨 道 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--text-descriptions-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 文 字 描 述 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 标 记 适 用 于 包 含 对 视 频 内 容 的 文 字 描 述 的 轨 道 , 它 们 适 合 视 觉 障 碍 人 士 通 过 文 本 转 语 音 系 统 播 放 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--original-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 原 始 语 言 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 标 记 适 用 于 与 内 容 原 始 语 言 一 致 (而 非 翻 译 ) 的 轨 道 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--commentary-flag TID[:布 尔 值 ] 若 可 选 参 数 「 布 尔 值 」 已 设 为 1 或 不 存 在 该 数 值 , 则 为 指 定 轨 道 设 置 「 评 论 」 标 记 (参 阅 「 轨 道 ID」 段 落 )。 此 标 记 适 用 于 包 含 评 论 内 容 的 轨 道 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

--track-name TID:名 称 将 指 定 轨 道 (参 见 轨 道 ID 段 落 ) 的 轨 道 名 称 设 为 名 称

--language TID:语 言 为 指 定 轨 道 (参 见 轨 道 ID) 设 置 语 言 。 允 许 使 用 ISO 639-2 语 言 代 码 与 ISO 639-1 国 家 代 码 。 国 家 代 码 将 被 自 动 转 换 为 语 言 代 码 。 可 以 使 用 --list-languages 选 项 列 出 所 有 语 言 以 及 它 们 的 ISO 639-2 代 码 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。

-t, --tags TID:文 件 名 从 文 件 文 件 名 读 取 轨 道 号 为 TID 的 轨 道 的 标 签 。 详 情 参 见 下 文 标 签 段 落 。

--aac-is-sbr TID[:0|1] 告 诉 mkvmerge(1) ID 为 TID 的 轨 道 是 SBR AAC (亦 作 HE-AAC 或 AAC+)。 下 述 情 况 下 需 要 此 选 项 : a) 输 入 文 件 是 AAC 文 件 (不 是 Matroska 文 件 ) 且 b) 该 AAC 文 件 含 有 SBR AAC 数 据 。 设 置 此 开 关 的 原 因 是 目 前 技 术 上 无 法 在 不 解 码 一 个 完 整 的 AAC 帧 的 情 况 下 自 动 分 辨 普 通 的 AAC 数 据 与 SBR AAC 数 据 。 由 于 AAC 解 码 器 的 诸 多 专 利 问 题 , mkvmerge(1) 永 远 不 会 包 含 此 解 码 层 。 因 此 此 开 关 对 于 SBR AAC 文 件 是 必 需 的 。 如 果 忽 略 了 此 开 关 , 生 成 的 文 件 可 能 无 法 正 常 回 放 , 甚 至 可 能 根 本 无 法 播 放 。 如 果 输 入 文 件 是 Matroska 文 件 , 则 已 有 足 够 侦 测 SBR AAC 的 CodecID 了 。 然 而 , 如 果 CodecID 标 注 错 误 , 此 开 关 可 用 于 更 正 之 。 如 果 mkvmerge 错 将 AAC 文 件 侦 测 为 SBR, 您 可 以 将 ':0' 添 加 到 轨 道 ID。

--audio-emphasis TID:n|代 号 为 轨 道 ID 为 TID 的 音 频 轨 设 置 增 强 算 法 。 参 数 值 可 以 是 数 字 形 式 的 n (介 于 016 之 间 的 特 定 值 ), 也 可 以 是 英 文 代 号 。 所 有 有 效 的 数 值 及 其 代 号 可 通 过 「--list-audio-emphasis」 选 项 列 出 。

--reduce-to-core 轨 道 ID 有 些 音 频 编 码 的 核 心 是 有 损 的 , 但 提 供 了 可 选 的 扩 展 来 实 现 无 损 解 码 。 该 选 项 告 诉 mkvmerge(1) 只 复 制 核 心 部 分 , 而 不 复 制 扩 展 部 分 。 默 认 情 况 下 , mkvmerge(1) 会 复 制 全 部 内 容 。 目 前 只 有 DTS 轨 道 受 此 选 项 影 响 。 嵌 入 AC-3 核 心 的 TrueHD 轨 道 以 两 个 轨 道 的 形 式 呈 现 , 用 户 可 以 选 择 复 制 哪 个 轨 道 。 DTS 无 法 采 用 这 种 方 案 , 因 为 HD 扩 展 部 分 不 能 单 独 解 码 – 而 TrueHD 数 据 可 以 。

--remove-dialog-normalization-gain 轨 道 ID 部 分 音 频 编 码 包 含 告 知 解 码 器 /播 放 器 如 何 应 用 音 量 增 益 ( 通 常 是 降 低 ) 的 头 部 字 段 , 从 而 实 现 对 白 正 规 化 。 此 选 项 可 让 mkvmerge(1)  修 改 相 应 头 部 字 段 , 移 除 或 减 小 增 益 。 目 前 只 有 AC-3、 DTS 与 TrueHD 轨 道 受 此 选 项 影 响 。

--timestamps TID:文 件 名文 件 名 读 取 要 应 用 到 指 定 轨 道 ID 的 时 间 戳 。 这 些 时 间 戳 将 强 制 覆 盖 mkvmerge(1) 默 认 计 算 出 的 时 间 戳 。 参 阅 关 于 外 部 时 间 戳 文 件 的 章 节 。

--default-duration TID:x 强 制 指 定 轨 道 的 默 认 时 长 为 指 定 数 值 。 将 同 时 修 改 轨 道 的 时 间 戳 以 匹 配 该 默 认 时 长 。 变 量 x 必 须 有 's', 'ms', 'us', 'ns', 'fps', 'p' 或 'i' 作 为 后 缀 , 分 别 以 秒 、 毫 秒 、 微 秒 、 纳 秒 、 “帧 每 秒 ”、 “逐 行 帧 每 秒 ”或 “隔 行 帧 每 秒 ”为 单 位 指 定 默 认 时 长 。 数 字 x 本 身 可 为 浮 点 数 或 分 数 。 如 果 未 强 制 指 定 默 认 时 长 , mkvmerge 将 尝 试 继 承 容 器 中 ( 及 /或 特 定 轨 道 类 型 , 如 AVC/H.264 或 MPEG-2 已 编 码 的 位 流 中 ) 该 轨 道 的 默 认 时 长 。 此 选 项 也 可 用 于 在 不 使 用 外 部 时 间 戳 文 件 的 情 况 下 更 改 视 频 轨 的 FPS( 帧 率 ) 。

--fix-bitstream-timing-information TID[:0|1] 通 常 mkvmerge(1) 不 会 更 改 视 频 位 流 中 存 储 的 时 间 同 步 信 息 (帧 /场 速 率 )。 本 选 项 可 调 整 此 信 息 , 使 之 与 容 器 的 时 间 同 步 信 息 匹 配 。 容 器 时 间 同 步 信 息 可 从 多 个 来 源 得 到 : 命 令 行 指 定 (参 见 --default-duration 选 项 )、 源 容 器 或 从 位 流 得 出 。 注 意 目 前 仅 完 成 对 AVC/H.264 视 频 轨 的 实 现 。

--compression TID:n 选 择 用 于 轨 道 的 压 缩 算 法 。 请 注 意 , 播 放 器 也 需 要 支 持 该 算 法 才 能 正 常 播 放 。 有 效 的 值 有 'none( 不 压 缩 ) '、 'zlib' 以 及 'mpeg4_p2'/'mpeg4p2'。 压 缩 方 式 'mpeg4_p2'/'mpeg4p2' 是 一 种 称 为 '去 头 ' 的 特 殊 压 缩 方 式 , 只 对 MPEG4 part 2 视 频 轨 可 用 。 部 分 字 幕 类 型 的 默 认 压 缩 算 法 为 'zlib'。 该 算 法 也 是 大 多 数 ( 如 果 不 是 所 有 ) 回 放 应 用 程 序 所 支 持 的 算 法 。 无 法 保 证 对 其 他 压 缩 算 法 的 支 持 ( 'none( 不 压 缩 ) ' 除 外 ) 。 仅 用 于 视 频 轨 的 选 项
-f
, --fourcc TID:FourCC 强 制 FourCC 为 指 定 值 。 仅 对 '微 软 兼 容 模 式 ' 的 视 频 轨 有 效 。

--display-dimensions TID:宽 度 x高 度

Matroska 文 件 含 有 两 个 设 定 播 放 器 回 放 时 应 当 将 画 面 缩 放 到 的 显 示 属 性 值 : 显 示 宽 度 与 显 示 高 度 。 可 以 使 用 本 选 项 设 定 这 些 数 值 , 如 '1:640x480'。 指 定 所 用 数 值 的 其 他 方 法 是 使 用 --aspect-ratio--aspect-ratio-factor 选 项 (参 见 下 文 )。 这 些 选 项 是 互 相 独 立 的 。

--aspect-ratio TID:宽 高 比 |宽 度 /高 度

Matroska 文 件 含 有 两 个 设 定 播 放 器 回 放 时 应 当 将 画 面 缩 放 到 的 显 示 属 性 值 : 显 示 宽 度 与 显 示 高 度 。 通 过 本 选 项 mkvmerge(1) 可 自 动 根 据 画 面 原 始 宽 高 和 本 选 项 给 定 的 宽 高 比 计 算 出 显 示 宽 度 和 显 示 高 度 。 宽 高 比 可 以 以 浮 点 数 宽 高 比 或 分 数 '宽 度 /高 度 ' 的 形 式 给 出 , 如 '16/9'。 指 定 所 用 数 值 的 其 他 方 法 是 使 用 --aspect-ratio-factor--display-dimensions 选 项 (参 见 上 下 文 )。 这 些 选 项 相 互 独 立 。

--aspect-ratio-factor TID:系 数 |n/d 另 一 种 设 置 宽 高 比 的 方 法 是 指 定 一 个 系 数 。 将 将 原 始 宽 高 比 与 系 数 相 乘 后 用 作 目 标 宽 高 比 。 指 定 所 用 数 值 的 其 他 方 法 是 使 用 --aspect-ratio--display-dimensions 选 项 (参 见 上 文 )。 这 些 选 项 互 相 独 立 。

--cropping TID:左 ,上 ,右 ,下 将 视 频 轨 道 的 像 素 裁 减 参 数 设 为 指 定 数 值 。

--color-matrix-coefficients TID:n 设 置 视 频 从 红 绿 蓝 三 原 色 衍 生 出 亮 度 及 色 度 值 所 用 的 矩 阵 系 数 。 参 数 n 是 范 围 从 010 的 整 数 。 有 效 的 值 及 其 含 义 如 下 :

0: GBR, 1: BT709, 2: unspecified, 3: reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 非 恒 定 亮 度 , 10: BT2020 恒 定 亮 度

--color-bits-per-channel TID:n 设 置 颜 色 通 道 编 码 位 数 。 数 值 0 表 示 位 数 未 指 定 。

--chroma-subsample TID:水 平 ,垂 直 对 Cr 与 Cb 通 道 中 未 移 除 的 像 素 , 水 平 /垂 直 方 向 需 要 移 除 的 像 素 数 量 。 例 如 : 对 于 色 度 抽 样 为 4:2:0 的 视 频 , 该 参 数 应 设 为 TID:1,1

--cb-subsample TID:水 平 ,垂 直 对 Cb 通 道 中 未 移 除 的 像 素 , 水 平 /垂 直 方 向 需 要 移 除 的 像 素 数 量 。 该 数 值 将 与 --chroma-subsample 相 加 。 例 如 : 对 于 色 度 抽 样 为 4:2:1 的 视 频 , 参 数 --chroma-subsample 应 设 为 TID:1,0, Cb 抽 样 应 设 为 TID:1,0

--chroma-siting TID:水 平 ,垂 直 设 置 色 度 在 水 平 /垂 直 方 向 上 如 何 抽 样 (0: 未 指 定 , 1: 顶 部 /左 侧 合 并 , 2: 对 半 )。

--color-range TID:n 设 置 色 域 裁 剪 (0: 未 指 定 , 1: 广 播 色 域 , 2: 完 整 色 域 (无 裁 剪 ), 3: 由 MatrixCoefficients/TransferCharacteristics 指 定 )。

--color-transfer-characteristics TID:n 视 频 的 传 输 特 征 。 有 效 的 值 及 其 含 义 如 下 :

0: 保 留 , 1: ITU-R BT.709, 2: 未 指 定 , 3: 保 留 , 4: gamma 2.2 曲 线 , 5: gamma 2.8 曲 线 , 6: SMPTE 170M, 7: SMPTE 240M, 8: 线 性 , 9: 对 数 , 10: 对 数 平 方 根 , 11: IEC 61966-2-4, 12: ITU-R BT.1361 扩 展 色 域 , 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 位 , 15: ITU-R BT.2020 12 位 , 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG)

--color-primaries TID:n 设 置 视 频 的 颜 色 基 准 。 有 效 的 值 及 其 含 义 如 下 :

0: 保 留 , 1: ITU-R BT.709, 2: 未 指 定 , 3: 保 留 , 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 磷 光 体

--max-content-light TID:n 设 置 单 个 像 素 的 最 高 亮 度 (Maximum Content Light Level 最 大 内 容 亮 度 级 别 ), 单 位 为 坎 德 拉 每 平 方 米 (cd/m²)。 数 值 n 应 为 非 负 整 数 。

--max-frame-light TID:n 设 置 单 个 完 整 帧 的 最 高 亮 度 (Maximum Frame-Average Light Level 最 大 帧 平 均 亮 度 级 别 ), 单 位 为 坎 德 拉 每 平 方 米 (cd/m²)。 数 值 n 应 为 非 负 整 数 。

--chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y 设 置 CIE 1931 定 义 的 红 /绿 /蓝 色 度 坐 标 。

--white-color-coordinates TID:x,y 设 置 CIE 1931 定 义 的 白 色 色 度 坐 标 。

--max-luminance TID:浮 点 数 设 置 最 高 亮 度 , 单 位 为 坎 德 拉 每 平 方 米 (cd/m²)。 数 值 应 小 于 9999.99。

--min-luminance TID:浮 点 数 设 置 最 低 亮 度 , 单 位 为 坎 德 拉 每 平 方 米 (cd/m²)。 数 值 应 小 于 999.9999。

--projection-type TID:方 式 设 置 要 使 用 的 视 频 投 影 方 式 。 有 效 值 包 括 : 0 (方 形 投 影 ), 1 (等 距 圆 柱 投 影 ), 2 (立 方 面 投 影 ), 3 (网 状 投 影 )。

--projection-private TID:数 据 设 置 仅 用 于 特 定 投 影 方 式 的 私 有 数 据 。 数 据 格 式 为 十 六 进 制 数 字 , 可 以 有 "0x" 前 缀 , 可 以 有 空 格 。

--projection-pose-yaw TID:浮 点 数 设 置 投 影 的 水 平 平 面 旋 转 ( yaw, 上 下 轴 不 动 ) 。

--projection-pose-pitch TID:浮 点 数 设 置 投 影 的 上 下 旋 转 ( pitch, 左 右 轴 不 动 ) 。

--projection-pose-roll TID:浮 点 数 设 置 投 影 的 垂 直 平 面 旋 转 ( roll, 前 后 轴 不 动 ) 。

--field-order TID:n 设 置 轨 道 ID 为 TID 的 视 频 轨 道 的 场 序 。 场 序 必 须 为 以 下 数 字 之 一 :

0: 逐 行 扫 描 ; 1: 隔 行 扫 描 , 顶 场 先 显 示 , 顶 场 先 存 储 ; 2: 未 定 场 序 ; 6: 隔 行 扫 描 , 底 场 先 显 示 , 底 场 先 存 储 ; 9: 隔 行 扫 描 , 底 场 先 显 示 , 顶 场 先 存 储 ; 14: 隔 行 扫 描 , 顶 场 先 显 示 , 底 场 先 存 储

--stereo-mode TID:n|代 号 为 轨 道 ID 为 TID 的 视 频 轨 道 设 置 立 体 模 式 。 模 式 值 可 以 是 数 字 形 式 的 n( 介 于 014 之 间 ) 或 英 文 代 号 。 所 有 有 效 的 数 值 及 其 代 号 可 通 过 「--list-stereo-modes」 选 项 列 出 。 仅 适 用 于 文 本 字 幕 轨 道 的 选 项
--sub-charset
TID:字 符 集 指 定 轨 道 ID 对 应 的 字 符 集 , 用 于 将 字 幕 转 换 为 UTF-8 编 码 。 如 果 未 指 定 字 符 集 , 则 将 根 据 当 前 区 域 设 置 推 算 字 符 集 。 注 意 , 对 于 从 Matroska 文 件 或 Kate 流 中 读 取 的 字 幕 不 必 指 定 字 符 集 , 因 为 这 些 字 幕 总 是 以 UTF-8 编 码 存 储 。 关 于 mkvmerge(1) 如 何 转 换 不 同 字 符 集 的 说 明 , 请 参 见 关 于 文 本 文 件 与 字 符 集 的 段 落 。 此 选 项 可 以 对 同 一 输 入 文 件 多 次 使 用 , 通 过 每 次 选 择 不 同 轨 道 ID 分 别 应 用 到 多 个 轨 道 。 其 他 选 项
-i
, --identify 文 件 名 将 使 mkvmerge(1) 探 查 单 个 文 件 并 报 告 其 类 型 、 文 件 中 包 含 的 轨 道 及 其 轨 道 ID。 如 果 使 用 了 本 选 项 , 唯 一 可 用 的 其 他 选 项 就 是 文 件 名 。 结 果 的 输 出 格 式 可 以 通 过 --identification-format 选 项 修 改 。

-J 文 件 名 等 同 于 “--identification-format json --identify 文 件 名 ”的 简 便 写 法 。

-F, --identification-format 格 式 决 定 --identify 选 项 使 用 的 输 出 格 式 。 支 持 下 列 格 式 : text (文 本 , 未 使 用 该 选 项 时 的 默 认 值 ) 以 及 json。

1. text 格 式 简 短 且 适 合 人 类 阅 读 。 每 项 (容 器 、 轨 道 、 附 件 等 ) 占 一 行 。 该 格 式 不 应 该 用 来 解 析 。 输 出 内 容 会 翻 译 为 mkvmerge(1) 所 使 用 的 语 言 (参 见 --ui-language)。

2. json 格 式 输 出 机 器 可 读 的 JSON 表 达 式 。 此 格 式 遵 循 该 文 件 所 描 述 的 JSON 规 范 :

mkvmerge-identification-output-schema-v20.json [3] 所 有 版 本 的 JSON 规 范 可 在 线 获 取 , 也 可 在 发 布 的 源 码 压 缩 包 中 找 到 。

--probe-range-percentage 百 分 比 部 分 文 件 类 型 , 如 MPEG 节 目 流 及 传 输 流 (.vob、 .m2ts), 需 要 解 析 一 定 量 的 数 据 , 方 可 侦 测 出 文 件 中 所 包 含 的 所 有 轨 道 。 该 数 据 量 为 输 入 文 件 大 小 的 0.3% 或 10 MB, 取 其 中 较 高 者 。 如 果 已 知 轨 道 存 在 , 但 未 能 找 到 , 可 以 通 过 本 选 项 更 改 探 测 百 分 比 。 最 小 值 10 MB 为 内 置 参 数 , 无 法 更 改 。

--list-audio-emphasis 列 出 「--audio-emphasis」 选 项 所 支 持 的 所 有 有 效 数 值 及 其 对 应 的 英 文 代 号 。

--list-languages 列 出 所 有 语 言 及 其 ISO 639-2 代 码 , 这 些 代 码 可 以 在 --language 选 项 中 使 用 。

--list-stereo-modes 列 出 「--stereo-mode」 选 项 所 支 持 的 所 有 有 效 数 值 及 其 对 应 的 英 文 代 号 。

-l, --list-types 列 出 受 支 持 的 输 入 文 件 类 型 。

--priority 优 先 级 设 置 mkvmerge(1) 运 行 时 的 进 程 优 先 级 。 有 效 的 值 为 'lowest( 最 低 ) ', 'lower( 较 低 ) ', 'normal( 普 通 ) ', 'higher( 较 高 ) ' 与 'highest( 最 高 ) '。 如 果 未 予 设 定 , 则 使 用 'normal( 普 通 优 先 级 ) '。 在 类 -Unix 系 统 中 mkvmerge(1) 将 使 用 nice(2) 功 能 。 因 此 只 有 超 级 用 户 才 能 使 用 'higher( 较 高 优 先 级 ) ' 与 'highest( 最 高 优 先 级 ) '。 对 于 Windows 用 户 来 说 所 有 值 都 可 用 。 选 择 'lowest' 不 仅 使 用 尽 可 能 低 的 进 程 优 先 级 , 还 会 让 mkvmerge(1) 选 择 空 闲 I/O 优 先 级 。

--command-line-charset 字 符 集 设 定 在 命 令 行 给 出 的 字 符 串 的 字 符 集 , 用 于 转 为 其 他 字 符 集 。 默 认 为 系 统 当 前 区 域 设 置 中 所 给 定 的 字 符 集 。 此 设 置 将 应 用 到 以 下 选 项 的 变 量 : --title--track-name--attachment-description

--output-charset 字 符 集 设 置 输 出 的 字 符 串 应 被 转 换 到 何 种 字 符 集 。 默 认 为 系 统 当 前 区 域 设 置 中 所 给 定 的 字 符 集 。

-r, --redirect-output 文 件 名 将 所 有 信 息 输 出 至 文 件 文 件 名 而 不 是 在 命 令 行 显 示 。 尽 管 该 操 作 可 以 用 输 出 重 定 向 轻 松 实 现 , 但 在 某 些 情 况 下 还 需 要 靠 它 : 如 当 终 端 在 写 入 文 件 之 前 重 新 解 释 ( 覆 盖 输 出 ) 时 。 将 优 先 使 用 通 过 --output-charset 设 定 的 字 符 集 。

--flush-on-close 让 程 序 在 关 闭 以 写 入 模 式 打 开 的 文 件 时 , 强 制 将 内 存 中 已 缓 存 的 所 有 数 据 写 入 到 存 储 设 备 。 可 用 于 在 电 源 中 断 时 避 免 数 据 损 失 , 或 规 避 操 作 系 统 或 驱 动 程 序 的 特 定 问 题 。 缺 点 是 混 流 耗 时 更 长 , 因 为 mkvmerge 在 退 出 前 需 要 等 待 所 有 数 据 写 入 存 储 设 备 。 关 于 优 劣 的 深 入 讨 论 , 请 参 见 MKVToolNix bug 跟 踪 平 台 中 的 问 题 #2469 与 问 题 #2480。

--ui-language 语 言 代 码 强 制 使 用 语 言 代 码 所 对 应 的 翻 译 (例 如 'de_DE' 表 示 德 文 翻 译 )。 在 语 言 代 码 处 输 入 'list' 可 让 程 序 输 出 可 用 翻 译 的 列 表 。

--abort-on-warnings 让 程 序 在 出 现 警 告 时 即 中 止 。 程 序 的 退 出 代 码 将 返 回 1。

--deterministic 种 子 值 启 用 完 全 确 定 模 式 。 若 使 用 的 mkvmerge(1) 版 本 相 同 , 且 输 入 文 件 、 选 项 参 数 及 种 子 值 完 全 相 同 , 则 会 创 建 二 进 制 层 面 完 全 一 致 的 文 件 。 注 意 , 此 模 式 下 不 会 写 入 剪 辑 信 息 的 「 date」 字 段 。 种 子 值 可 以 是 任 意 字 符 串 , 并 不 非 得 是 数 字 。 需 要 满 足 下 列 条 件 才 能 确 保 生 成 二 进 制 层 面 完 全 相 同 的 文 件 :

1. 相 同 版 本 的 mkvmerge(1), 且 编 译 时 使 用 相 同 版 本 的 ibEBML 及 libMatroska。

2. 所 用 的 输 入 文 件 在 二 进 制 层 面 完 全 一 致 。

3. 所 使 用 的 命 令 行 选 项 及 顺 序 完 全 相 同 (唯 一 的 例 外 是 「 --output ...」 )。 使 用 其 他 版 本 的 mkvmerge(1) 或 其 他 命 令 行 选 项 也 有 可 能 输 出 完 全 一 致 的 文 件 , 但 作 者 不 作 任 何 保 证 。

--debug 主 题 为 特 定 功 能 开 启 调 试 。 该 选 项 仅 对 开 发 者 有 用 。

--engage 功 能 开 启 实 验 性 功 能 。 可 用 功 能 列 表 可 通 过 mkvmerge --engage list 得 到 。 这 些 功 能 在 正 常 情 况 下 不 应 该 使 用 。

--gui-mode 打 开 GUI 模 式 。 该 模 式 下 , 将 输 出 特 殊 格 式 的 行 , 告 知 目 前 受 控 的 GUI 的 行 为 。 这 些 消 息 遵 从 格 式 「 #GUI#消 息 」 。 消 息 可 能 包 括 键 值 对 , 如 「 #GUI#消 息 #键 1=值 1#键 2=值 2...」 。 消 息 内 容 及 键 的 内 容 不 作 翻 译 , 总 是 以 英 语 输 出 。

@选 项 文 件 .json 从 文 件 选 项 文 件 读 取 其 他 命 令 行 参 数 。 更 多 信 息 请 参 见 关 于 选 项 文 件 的 段 落 。

--capabilities 列 出 编 译 时 附 加 的 可 选 功 能 并 退 出 。 输 出 信 息 的 第 一 行 是 版 本 信 息 。 接 下 来 的 每 行 包 含 一 个 单 词 , 各 单 词 的 出 现 意 味 着 编 译 时 附 加 了 相 应 功 能 。 这 些 功 能 包 括 :

• 'FLAC' -- 读 取 原 始 FLAC 文 件 , 以 及 处 理 其 他 容 器 中 的 FLAC 轨 道 , 例 如 Ogg 或 Matroska 容 器 中 的 。

-h, --help 显 示 用 法 信 息 并 退 出 。

-V, --version 显 示 版 本 信 息 并 退 出 。

用 法

用 户 可 以 选 择 各 文 件 中 mkvmerge(1) 应 该 使 用 的 轨 道 。 它 们 都 将 被 封 装 到 -o 所 指 定 的 文 件 中 。 可 通 过 -l 选 项 获 取 已 知 ( 且 受 支 持 的 ) 输 入 格 式 列 表 。 重 要 命 令 行 选 项 的 顺 序 很 重 要 。 若 您 对 程 序 还 不 熟 悉 , 请 阅 读 「 选 项 顺 序 」 段 落 。

选 项 顺 序

输 入 选 项 的 顺 序 对 一 些 选 项 很 重 要 。 选 项 可 归 为 两 类 :

1. 影 响 整 个 程 序 的 选 项 不 与 任 何 输 入 文 件 有 关 。 这 些 选 项 包 括 但 不 限 于 --command-line-charset--output--title。 这 些 选 项 可 在 命 令 行 的 任 意 位 置 出 现 。

2. 影 响 单 个 输 入 文 件 或 输 入 文 件 中 的 单 个 轨 道 的 选 项 。 这 些 选 项 均 应 用 到 命 令 行 中 接 着 的 输 入 文 件 。 所 有 应 用 到 同 一 输 入 文 件 ( 或 其 轨 道 ) 的 选 项 可 以 以 任 意 顺 序 书 写 , 只 要 都 出 现 在 该 输 入 文 件 名 之 前 。 应 用 到 输 入 文 件 的 选 项 如 --no-chapters--chapter-charset。 应 用 到 单 个 轨 道 的 选 项 如 --default-duration--language。 选 项 从 左 向 右 处 理 。 如 果 同 一 个 选 项 在 同 一 范 围 内 出 现 多 次 , 将 使 用 最 后 一 次 给 出 的 参 数 。 因 此 在 下 面 的 例 子 中 , 标 题 将 被 设 为 "其 他 东 东 ":

$ mkvmerge -o 输 出 .mkv --title '这 个 内 个 ' input.avi --title '其 他 东 东 ' 下 面 的 例 子 中 可 以 两 次 使 用 --language 选 项 , 因 为 在 不 同 范 围 内 使 用 。 尽 管 应 用 到 同 一 轨 道 ID, 但 应 用 到 的 是 不 同 的 输 入 文 件 , 因 此 属 于 不 同 范 围 :

$ mkvmerge -o 输 出 .mkv --language 0:fre 法 语 .ogg --language 0:deu 德 语 .ogg

示 例

假 定 您 有 个 名 为 我 的 影 片 .avi 的 文 件 , 以 及 分 开 存 放 的 音 频 轨 如 '我 的 影 片 .wav'。 您 希 望 先 将 音 频 编 码 为 OggVorbis:

$ oggenc -q4 -o 我 的 影 片 .ogg 我 的 影 片 .wav 几 分 钟 后 您 就 可 以 合 并 视 频 和 音 频 了 :

$ mkvmerge -o 我 的 有 声 影 片 .mkv 我 的 影 片 .avi 我 的 影 片 .ogg 如 果 您 的 AVI 文 件 已 经 含 有 一 条 音 频 轨 , 则 将 同 时 复 制 该 轨 道 ( 只 要 mkvmerge(1) 支 持 该 音 频 格 式 ) 。 要 避 免 此 状 况 , 只 需 要 这 样

$ mkvmerge -o 我 的 有 声 影 片 .mkv -A 我 的 影 片 .avi 我 的 影 片 .ogg 又 过 了 几 分 钟 , 您 又 制 作 了 另 一 条 音 频 轨 , 如 导 演 评 论 或 者 是 另 一 种 语 言 的 配 音 , 您 生 成 的 文 件 名 是 '我 影 片 的 另 一 音 轨 .wav'。 再 进 行 一 次 编 码 操 作 , 然 后 将 其 合 并 :

$ oggenc -q4 -o我 影 片 的 另 一 音 轨 我 影 片 的 另 一 音 轨 .wav
$ mkvmerge -o 影 片 -成 品 .mkv 我 的 有 声 影 片 .mkv 我 影 片 的 另 一 音 轨 .ogg 照 下 面 的 做 法 结 果 相 同

$ mkvmerge -o 我 的 影 片 -成 品 .mkv -A 我 的 影 片 .avi 我 的 影 片 .ogg 我 影 片 的 另 一 音 轨 .ogg 现 在 开 启 mplayer 尽 情 享 受 吧 。 如 果 您 有 多 条 音 频 轨 ( 或 者 甚 至 是 视 频 轨 ) , 那 么 您 可 以 通 过 '-vid' 与 '-aid' 选 项 告 诉 mplayer 应 该 播 放 哪 些 轨 道 。 这 些 是 基 础 功 能 , 不 区 分 视 频 与 音 频 。 如 果 您 需 要 同 步 音 频 轨 , 会 非 常 容 易 。 首 先 找 清 Vorbis 轨 道 的 轨 道 ID

$ mkvmerge --identify 错 开 了 的 .ogg 现 在 您 可 以 在 下 述 命 令 行 中 使 用 该 ID:

$ mkvmerge -o 同 步 了 的 .mkv -A 源 .avi -y 12345:200 错 开 了 的 .ogg 这 将 在 '错 开 了 的 .ogg' 中 ID 为 12345 的 音 频 轨 的 开 头 添 加 200ms 的 静 音 。 有 些 影 片 在 开 头 同 步 正 常 , 但 音 画 同 步 会 慢 慢 偏 离 开 。 对 此 类 影 片 您 可 以 指 定 延 时 系 数 , 该 系 数 将 被 应 用 到 所 有 时 间 戳 -- 不 添 加 或 移 除 任 何 数 据 。 因 此 如 果 您 所 设 定 的 系 数 过 大 或 过 小 会 造 成 很 糟 糕 的 结 果 。 例 如 我 转 码 的 一 期 节 目 有 77340 帧 长 , 在 结 尾 处 有 0.2 秒 的 同 步 偏 离 。 在 29.97fps 帧 率 下 大 约 是 每 6 帧 错 开 0.2 秒 。 于 是 我 这 样 操 作

$ mkvmerge -o 同 步 了 的 .mkv -y 23456:0,77346/77340 错 开 了 的 .mkv 搞 定 了 。 同 步 选 项 对 字 幕 同 样 起 作 用 。 对 于 文 本 字 幕 , 您 既 可 以 选 用 一 些 Windows 软 件 ( 如 SubRipper) 或 'contrib/subrip' 目 录 transcode(1) 的 源 码 中 的 subrip 包 。 大 体 过 程 是 这 样 的 :

1. 从 输 入 文 件 中 提 取 原 始 字 幕 流 :

$ tccat -i /DVD/文 件 /的 /路 径 / -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o 我 的 影 片

2. 使 用 gocr 将 生 成 的 PGM 图 像 转 为 文 本 :

$ pgm2txt mymovie

3. 对 生 成 的 文 本 文 件 进 行 拼 写 检 查 :

$ ispell -d american *txt

4. 将 文 本 文 件 转 为 SRT 文 件 :

$ srttool -s -w -i mymovie.srtx -o mymovie.srt 这 样 生 成 的 文 件 可 用 作 mkvmerge(1) 的 输 入 文 件 :

$ mkvmerge -o 我 的 影 片 .mkv 我 的 影 片 .avi 我 的 影 片 .srt 如 果 您 希 望 为 指 定 轨 道 指 定 语 言 , 这 将 很 容 易 完 成 。 首 先 找 到 您 所 需 语 言 的 ISO 639-2 代 码 。 mkvmerge(1) 会 为 您 列 出 所 有 代 码 :

$ mkvmerge --list-languages 在 列 表 中 找 到 您 所 需 的 语 言 。 假 定 您 已 在 Matroska 文 件 中 放 入 两 条 音 轨 , 并 希 望 设 置 它 们 的 语 言 代 码 , 两 条 轨 道 的 轨 道 ID 为 2 和 3。 可 以 这 样 操 作

$ mkvmerge -o 含 语 言 代 码 的 .mkv --language 2:ger --language 3:dut 无 语 言 代 码 的 .mkv 如 您 所 见 , --language 开 关 可 多 次 使 用 。 或 许 您 还 想 让 荷 兰 语 作 为 默 认 语 言 。 您 还 有 其 他 语 言 的 字 幕 , 如 英 语 和 法 语 的 , 并 希 望 让 播 放 器 默 认 显 示 法 语 字 幕 。 可 以 这 样 操 作

$ mkvmerge -o 含 语 言 代 码 的 文 件 .mkv --language 2:ger --language 3:dut --default-track-flag 3 无 语 言 代 码 的 文 件 .mkv --language 0:eng 英 文 字 幕 .srt --default-track-flag 0 --language 0:fre 法 文 字 幕 .srt 如 果 您 在 mkvinfo(1) 的 输 出 信 息 中 没 找 到 您 指 定 的 语 言 或 默 认 轨 标 记 , 请 参 阅 关 于 默 认 值 的 段 落 。 关 闭 针 对 某 输 入 文 件 的 压 缩 。

$ mkvmerge -o 无 压 缩 .mkv --compression -1:none 我 的 影 片 .avi --compression -1:none 我 的 影 片 .srt

轨 道 ID

常 规 轨 道 ID

mkvmerge(1) 的 一 些 选 项 要 求 提 供 轨 道 ID 以 指 定 应 应 用 到 的 轨 道 。 当 读 取 器 分 离 当 前 输 入 文 件 时 , 或 者 使 用 --identify 选 项 调 用 mkvmerge(1) 时 这 些 轨 道 ID 会 被 显 示 出 来 。 此 类 输 出 的 一 个 示 例 :

$ mkvmerge -i v.mkv 文 件
'v.mkv': 容 器 : Matroska 轨 道
ID 0: 视 频 (V_MS/VFW/FOURCC, DIV3) 轨 道
ID 1: 音 频 (A_MPEG/L3) 不 要 混 淆 输 出 MKV 文 件 时 所 分 派 的 轨 道 ID与 输 入 文 件 的 轨 道 ID。 只 有 输 入 文 件 的 轨 道 ID 可 用 于 需 要 轨 道 ID 值 的 选 项 。 还 需 注 意 , 每 个 输 入 文 件 有 其 自 己 的 一 组 轨 道 ID。 因 此 通 过 'mkvmerge --identify' 报 告 的 文 件 '文 件 1.扩 展 名 ' 的 轨 道 ID 不 随 其 他 输 入 文 件 的 数 量 或 '文 件 1.扩 展 名 ' 所 用 到 的 位 置 变 化 。 轨 道 ID 通 常 这 样 分 配 :

• AVI 文 件 : 视 频 轨 ID 为 0。 音 频 轨 的 ID 由 1 开 始 升 序 分 配 。

• AAC、 AC-3、 MP3、 SRT 与 WAV 文 件 : 此 类 文 件 中 唯 一 的 '轨 道 ' 的 ID 为 0。

• 大 多 数 其 他 文 件 : 轨 道 ID 按 在 文 件 中 被 找 到 的 顺 序 由 0 开 始 分 配 。 使 用 轨 道 ID 的 选 项 的 描 述 中 均 含 有 'TID'。 此 外 下 列 选 项 也 使 用 轨 道 ID: --audio-tracks--video-tracks--subtitle-tracks--button-tracks 以 及 --track-tags特 殊 轨 道 ID 一 些 ID 具 有 特 殊 含 义 , 不 会 出 现 在 id 输 出 结 果 中 。 特 殊 的 轨 道 ID '-1' 是 个 百 搭 号 , 它 将 使 给 定 的 开 关 应 用 到 从 输 入 文 件 中 读 到 的 所 有 轨 道 。 特 殊 轨 道 ID '-2' 指 输 入 文 件 中 的 章 节 。 目 前 只 有 --sync 选 项 会 用 到 此 特 殊 ID。 --sync -2:...--chapter-sync ... 等 效 。

语 言 处 理

Matroska 支 持 两 种 的 语 言 元 素 : ①旧 版 、 已 废 弃 的 「Language」 元 素 , 其 值 为 ISO 639-2 alpha 3 语 言 代 码 ; ②新 版 的 「LanguageIETF」 标 签 , 包 含 IETF BCP 47 语 言 标 签 。 mkvmerge(1) 的 所 有 选 项 中 , 接 受 语 言 参 数 的 选 项 都 接 受 BCP 47 格 式 的 语 言 标 签 。 mkvmerge(1) 会 在 可 能 的 情 况 下 根 据 BCP 47 语 言 标 签 推 断 出 相 应 的 旧 版 「Language」 元 素 值 。 以 JSON 模 式 识 别 文 件 时 , 现 有 的 「LanguageIETF」 轨 道 头 部 元 素 值 将 作 为 language_ietf 轨 道 属 性 输 出 。 在 写 入 文 件 时 , mkvmerge(1) 总 会 写 入 「LanguageIETF」 「ChapLanguageIETF」 以 及 「TagLanguageIETF」 元 素 (后 两 者 分 别 仅 在 写 入 章 节 、 标 签 时 出 现 )。 此 外 , 还 将 写 入 与 之 对 应 的 旧 版 元 素 ; 旧 版 元 素 将 被 设 置 为 BCP 47 语 言 标 签 中 的 ISO 639-2 代 码 部 分 。 例 如 , 若 将 轨 道 语 言 设 为 sr-Cyrl-RS, 则 「LanguageIETF」 元 素 会 被 设 为 sr-Cyrl-RS, 而 旧 版 的 「Language」 元 素 将 被 设 为 srp。 若 读 取 的 现 有 文 件 (Matroska 文 件 、 XML 章 节 或 标 签 文 件 等 ) 已 含 有 「...LanguageIETF」 元 素 , 这 些 已 有 的 元 素 将 会 被 保 留 。 否 则 将 根 据 命 令 行 选 项 及 其 他 已 有 的 「...Language」 元 素 新 建 「...LanguageIETF」 元 素 。 可 通 过 命 令 行 选 项 「--disable-language-ietf」 来 彻 底 禁 止 创 建 新 的 元 素 , 该 选 项 对 现 有 的 三 类 新 元 素 均 有 效 。 您 可 以 通 过 参 数 「--normalize-language-ietf」 选 择 适 用 于 扩 展 语 言 子 标 签 的 规 范 化 方 式 。

文 本 文 件 与 字 符 集 转 换

注 意 此 段 落 可 应 用 到 MKVToolNix 中 的 所 有 程 序 , 尽 管 该 段 仅 提 及 了 mkvmerge(1)介 绍

Matroska 文 件 中 的 所 有 文 本 均 使 用 UTF-8 编 码 。 这 意 味 着 mkvmerge(1) 需 要 将 读 取 到 的 文 本 文 件 以 及 从 命 令 行 收 到 的 文 本 从 其 他 字 符 集 转 换 为 UTF-8。 相 反 , 这 意 味 着 mkvmerge(1) 的 输 出 信 息 同 样 需 要 由 UTF-8 转 回 原 来 的 字 符 集 , 例 如 来 自 --ui-language 所 选 的 非 英 语 界 面 或 来 自 Matroska 文 件 中 的 文 本 。

mkvmerge(1) 根 据 是 否 有 字 节 顺 序 标 记 (英 文 缩 写 : BOM) 出 现 以 及 系 统 的 当 前 区 域 来 进 行 自 动 转 换 。 如 何 根 据 区 域 推 定 字 符 集 取 决 于 mkvmerge(1) 所 执 行 在 的 操 作 系 统 。 字 节 序 标 记 (BOM) 以 BOM 开 头 的 文 本 文 件 已 经 使 用 UTF 的 某 一 种 模 式 进 行 编 码 。 mkvmerge(1) 支 持 以 下 五 种 模 式 : UTF-8、 UTF-16 小 端 序 (LE) 及 大 端 序 (BE)、 UTF-32 小 端 序 (LE) 及 大 端 序 (BE)。 含 BOM 的 文 本 文 件 将 被 自 动 转 换 为 UTF-8。 任 何 对 此 类 文 件 指 定 字 符 集 的 参 数 (如 --sub-charset) 将 被 直 接 忽 略 , 且 不 输 出 提 示 信 息 。

Linux 及 类 Unix 系 统 , 包 括 macOS 在 类 -Unix 系 统 mkvmerge(1) 将 使 用 setlocale(3) 系 统 指 令 , 它 将 返 回 环 境 变 量 LANGLC_ALLLC_CYPE。 输 出 的 字 符 集 通 常 是 UTF-8 或 ISO-8859-* 家 族 之 一 , 将 被 用 于 所 有 文 本 文 件 操 作 以 及 编 码 命 令 行 上 的 字 符 串 和 输 出 到 命 令 行 。

Windows 在 Windows 平 台 , 用 于 转 换 文 本 文 件 的 默 认 字 符 集 由 系 统 调 用 GetACP() 的 结 果 决 定 。 读 取 命 令 行 参 数 通 过 GetCommandLineW() 函 数 完 成 , 该 函 数 所 返 回 的 已 经 是 Unicode 字 符 串 。 因 此 选 项 --command-line-charset 在 Windows 平 台 是 被 忽 略 的 。 输 出 到 控 制 台 分 为 三 种 情 况 :

1. 若 使 用 --redirect-output 选 项 重 定 向 输 出 , 则 默 认 字 符 集 为 UTF-8。 可 以 通 过 --output-charset 修 改 。

2. 若 输 出 内 容 通 过 cmd.exe 自 身 重 定 向 , 例 如 mkvinfo 文 件 .mkv > info.txt, 则 其 字 符 集 必 为 UTF-8, 且 无 法 修 改 。

3. 否 则 (直 接 写 入 控 制 台 ) 将 使 用 Windows 函 数 WriteConsoleW() 并 忽 略 --output-charset 选 项 。 控 制 台 应 该 能 够 输 出 已 安 装 对 应 语 言 支 持 的 所 有 Unicode 字 符 (如 汉 字 在 英 文 版 Windows 可 能 不 会 正 常 显 示 )。 命 令 行 选 项 现 有 下 述 选 项 支 持 指 定 字 符 集 :

--sub-charset 用 于 文 本 字 幕 文 件 以 及 存 储 于 字 符 集 含 糊 的 容 器 格 式 ( 如 Ogg 文 件 ) 中 的 文 本 字 幕 轨 ,

--chapter-charset 用 于 章 节 文 本 文 件 以 及 存 储 于 字 符 集 含 糊 的 容 器 格 式 ( 如 Ogg 文 件 的 章 节 信 息 , 轨 道 和 文 件 标 题 等 ; MP4 文 件 的 章 节 信 息 ) 中 的 章 节 和 文 件 标 题 ,

--command-line-charset 用 于 所 有 命 令 行 上 的 字 符 串 ,

--output-charset 所 有 写 入 控 制 台 的 或 通 过 --redirect-output 选 项 重 定 向 到 文 件 的 字 符 串 的 输 出 字 符 集 。 非 Windows 系 统 下 , 默 认 的 输 出 字 符 集 为 系 统 的 当 前 字 符 集 。 在 Windows 平 台 , 默 认 为 UTF-8, 包 括 通 过 --redirect-output 的 重 定 向 以 及 cmd.exe 自 身 的 重 定 向 , 如 mkvinfo file.mkv > info.txt。

选 项 文 件

mkvmerge(1) 可 从 选 项 文 件 中 读 取 额 外 的 命 令 行 参 数 。 这 样 可 以 规 避 shell 或 操 作 系 统 在 执 行 外 部 程 序 时 的 特 定 限 制 , 如 命 令 行 长 度 的 限 制 。 包 含 JSON 格 式 数 据 的 选 项 文 件 。 其 内 容 必 须 为 有 效 的 JSON 数 组 , 数 组 元 素 只 能 为 JSON 字 符 串 。 文 件 编 码 必 须 为 UTF-8。 文 件 开 头 不 需 要 有 字 节 序 标 记 (byte order marker, BOM), 但 即 使 有 也 没 关 系 , 会 跳 过 它 。 在 JSON 内 部 转 义 特 殊 字 符 的 规 则 请 见 官 方 JSON 规 范 RFC 7159 [4] 。 选 项 文 件 名 本 身 应 添 加 前 缀 字 符 「 @」 在 命 令 行 参 数 给 出 。 命 令 行 “mkvmerge -o "我 的 文 件 .mkv" -A "一 部 影 片 .avi" 声 音 .ogg”可 以 转 换 为 下 述 JSON 选 项 文 件 , 文 件 可 以 命 名 为 “选 项 .json”:

[
"-o",
"c:\\Matroska\\我 的 文 件 .mkv",
"--title",
"#65",
"-A",
"一 部 影 片 .avi",
"声 音 .ogg"
] 对 应 的 命 令 行 则 为 「 mkvmerge @选 项 文 件 .json」 。

文 件 链 接

Matroska 支 持 文 件 链 接 , 即 声 明 当 前 文 件 的 前 趋 与 后 继 文 件 是 哪 个 文 件 。 严 谨 地 讲 , 被 连 接 的 不 是 文 件 而 是 Matroska 剪 辑 。 鉴 于 大 多 数 文 件 只 含 有 一 个 Matroska 剪 辑 , 以 下 说 明 中 将 使 用 术 语 '文 件 链 接 ', 尽 管 '剪 辑 链 接 ' 更 为 贴 切 。 各 剪 辑 由 唯 一 的 128 位 宽 的 剪 辑 UID 确 定 。 此 UID 是 由 mkvmerge(1) 自 动 创 建 的 。 链 接 主 要 通 过 将 前 后 文 件 的 剪 辑 UID (英 文 缩 写 : SID) 置 于 剪 辑 头 部 信 息 中 完 成 。 mkvinfo(1) 会 在 找 到 SID 时 输 出 它 们 。 如 果 文 件 被 切 割 为 多 段 , 且 启 用 了 链 接 功 能 , 则 文 件 的 时 间 戳 不 会 重 新 从 0 开 始 , 而 是 会 从 上 一 个 文 件 结 束 的 地 方 继 续 计 算 。 这 样 可 以 保 留 绝 对 时 间 , 即 使 之 前 的 文 件 不 可 用 (如 进 行 流 式 处 理 时 )。 如 果 未 使 用 链 接 功 能 , 各 文 件 的 时 间 戳 应 从 0 开 始 。 mkvmerge(1) 默 认 不 启 用 文 件 链 接 。 如 果 您 希 望 启 用 , 可 以 通 过 --link 选 项 打 开 。 此 选 项 仅 当 同 时 启 用 切 割 功 能 时 有 用 。 无 论 是 否 开 启 了 切 割 功 能 , 用 户 都 可 以 让 mkvmerge(1) 将 生 成 的 文 件 与 指 定 的 SID 建 立 链 接 。 可 通 过 --link-to-previous--link-to-next 选 项 实 现 。 这 些 选 项 只 接 受 mkvinfo(1) 所 输 出 的 剪 辑 SID 格 式 : 16 个 0x000xff 之 间 的 十 六 进 制 数 , 各 数 字 带 有 '0x' 前 缀 , 如 '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'。 还 可 以 选 用 另 一 种 较 短 的 格 式 : 16 个 0x000xff 之 间 的 十 六 进 制 数 , 无 '0x' 前 缀 , 无 空 格 , 如 '41da7366d9cfb21eae78ebb45ecab393'。 如 果 启 用 了 切 割 功 能 , 第 一 个 文 件 将 与 通 过 --link-to-previous 给 定 的 SID 建 立 链 接 , 而 最 后 一 个 文 件 将 与 通 过 --link-to-next 给 定 的 SID 建 立 链 接 。 如 果 未 启 用 切 割 功 能 , 唯 一 的 输 出 文 件 将 同 时 与 给 定 的 两 个 SID 建 立 链 接 。

默 认 值

Matroska 规 范 提 到 , 一 些 元 素 有 其 默 认 值 。 通 常 为 了 节 省 空 间 , 如 果 一 个 元 素 的 值 等 同 于 其 默 认 值 , 它 将 不 被 写 入 文 件 。 用 户 在 mkvinfo(1) 的 输 出 信 息 中 可 能 发 现 缺 失 的 元 素 有 语 言默 认 轨 标 记语 言 的 默 认 值 是 English ('eng'), 默 认 轨 标 记 的 默 认 值 是 true。 因 此 如 果 您 对 一 条 轨 道 应 用 选 项 --language 0:eng , 它 将 不 在 mkvinfo(1) 的 输 出 信 息 中 显 示 。

附 件

或 许 您 希 望 将 一 些 照 片 与 您 的 Matroska 文 件 一 起 存 放 , 或 者 您 正 在 使 用 SSA 字 幕 , 需 要 一 个 非 常 稀 有 的 特 殊 TrueType 字 体 。 这 种 情 况 下 您 可 以 将 这 些 文 件 附 加 到 Matroska 文 件 中 。 它 们 不 会 被 追 加 到 文 件 当 中 , 而 是 被 嵌 入 到 文 件 中 。 然 后 播 放 器 就 可 以 显 示 这 些 文 件 (如 '照 片 ' 一 例 ) 或 者 用 它 们 来 渲 染 字 幕 (如 'TrueType 字 体 ' 一 例 )。 这 是 关 于 如 何 在 输 出 文 件 中 附 加 照 片 和 TrueType 字 体 的 示 例 :

$ mkvmerge -o 输 出 .mkv -A 视 频 .avi 声 音 .ogg \
--attachment-description "乐 队 与 我 在 后 台 小 聚 " \
--attachment-mime-type image/jpeg \
--attach-file 乐 队 与 我 .jpg \
--attachment-description "难 得 一 见 的 绝 美 字 体 " \
--attachment-mime-type application/octet-stream \
--attach-file 超 酷 的 字 体 .ttf 如 果 含 有 附 件 的 Matroska 文 件 被 用 作 输 入 文 件 , mkvmerge(1) 会 将 附 件 复 制 到 新 文 件 中 。 要 复 制 哪 些 文 件 、 不 复 制 那 些 文 件 的 选 择 可 以 通 过 --attachments--no-attachments 选 项 修 改 。

章 节

Matroska 章 节 系 统 比 大 家 知 道 的 旧 系 统 —— OGM 中 所 使 用 的 ——更 为 强 大 。 完 整 的 规 范 可 以 在 Matroska 网 站 [1] 找 到 。

mkvmerge(1) 支 持 输 入 两 种 章 节 文 件 。 第 一 种 格 式 , 叫 作 '简 单 章 节 格 式 ', 与 OGM tools 所 用 的 相 同 。 第 二 种 是 基 于 XML 的 章 节 格 式 , 它 支 持 Matroska 的 所 有 章 节 功 能 。 除 了 专 用 的 章 节 文 件 格 式 以 外 , mkvmerge(1) 还 能 够 从 其 他 文 件 格 式 读 取 章 节 数 据 (如 MP4、 Ogg、 Blu-ray 以 及 DVD 光 盘 )。 简 单 章 节 格 式 此 格 式 由 成 对 的 相 继 以 'CHAPTERxx=' 与 'CHAPTERxxNAME=' 开 头 的 行 组 成 。 单 数 行 包 含 起 始 时 间 戳 , 而 双 数 行 包 含 标 题 。 这 是 一 个 示 例 :

CHAPTER01=00:00:00.000
CHAPTER01NAME=导 入 部 分
CHAPTER02=00:02:30.000
CHAPTER02NAME=宝 宝 准 备 摇
CHAPTER03=00:02:42.300
CHAPTER03NAME=宝 宝 摇 屋 子

mkvmerge(1) 会 将 每 一 组 /行 内 容 转 换 为 一 个 Matroska ChapterAtom 元 素 , 但 不 含 设 置 ChapterTrackNumber 「章 节 轨 道 编 号 」 元 素 , 因 此 所 有 章 节 都 将 应 用 到 文 件 中 的 所 有 轨 道 。 由 于 是 文 本 文 件 , 可 能 需 要 进 行 字 符 集 转 换 。 关 于 mkvmerge(1) 如 何 在 字 符 集 间 进 行 转 换 的 说 明 请 参 见 关 于 文 本 文 件 与 字 符 集 的 段 落 。 基 于 XML 的 章 节 格 式 基 于 XML 的 章 节 格 式 看 起 来 与 这 个 示 例 类 似 :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Chapters SYSTEM "matroskachapters.dtd">
<Chapters>
<EditionEntry>
<ChapterAtom>
<ChapterTimeStart>00:00:30.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:20.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>短 短 的 一 节 </ChapterString>
<ChapterLanguage>chi</ChapterLanguage>
</ChapterDisplay>
<ChapterAtom>
<ChapterTimeStart>00:00:46.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:10.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>那 短 短 的 一 节 的 一 部 分 </ChapterString>
<ChapterLanguage>chi</ChapterLanguage>
</ChapterDisplay>
</ChapterAtom>
</ChapterAtom>
</EditionEntry>
</Chapters> 使 用 此 格 式 可 以 做 到 三 件 简 单 章 节 格 式 做 不 到 的 事 :

1. 可 以 设 置 章 节 终 止 处 的 时 间 戳 ,

2. 章 节 可 以 嵌 套 ,

3. 可 以 设 置 语 言 与 国 家 。

mkvtoolnix 分 发 包 的 doc 子 目 录 包 含 了 一 些 典 型 示 例 文 件 。 下 面 列 出 的 是 支 持 的 XML 标 签 , 其 数 据 类 型 及 有 效 值 域 :

Chapters (主 )
EditionEntry (主 )
EditionUID (无 符 号 整 数 , 有 效 值 域 : 1 <= 值 )
EditionFlagHidden (无 符 号 整 数 , 有 效 值 域 : 0 <= 值 <= 1)
EditionFlagDefault (无 符 号 整 数 , 有 效 值 域 : 0 <= 值 <= 1)
EditionFlagOrdered (无 符 号 整 数 , 有 效 值 域 : 0 <= 值 <= 1)
ChapterAtom (主 )
ChapterAtom (主 )
ChapterUID (无 符 号 整 数 , 有 效 值 域 : 1 <= 值 )
ChapterTimeStart (无 符 号 整 数 )
ChapterTimeEnd (无 符 号 整 数 )
ChapterFlagHidden (无 符 号 整 数 , 有 效 值 域 : 0 <= 值 <= 1)
ChapterFlagEnabled (无 符 号 整 数 , 有 效 值 域 : 0 <= 值 <= 1)
ChapterSegmentUID (二 进 制 , 有 效 值 域 : 1 <= 长 度 , 以 字 节 为 单 位 )
ChapterSegmentEditionUID (无 符 号 整 数 , 有 效 值 域 : 1 <= 值 )
ChapterPhysicalEquiv (无 符 号 整 数 )
ChapterTrack (主 )
ChapterTrackNumber (无 符 号 整 数 , 有 效 值 域 : 1 <= 值 )
ChapterDisplay (主 )
ChapterString (UTF-8 字 符 串 )
ChapterLanguage (UTF-8 字 符 串 )
ChapterCountry (UTF-8 字 符 串 )
ChapterProcess (主 )
ChapterProcessCodecID (无 符 号 整 数 )
ChapterProcessPrivate (二 进 制 )
ChapterProcessCommand (主 )
ChapterProcessTime (无 符 号 整 数 )
ChapterProcessData (二 进 制 ) 从Blu-ray 光 盘 读 取 章 节 数 据

mkvmerge(1) 可 以 从 未 加 密 的 Blu-ray 光 盘 读 取 章 节 数 据 。 要 这 样 做 , 您 可 以 通 过 「 --chapters」 参 数 提 供 任 一 MPLS 播 放 列 表 的 路 径 。 例 : --chapters /宝 藏 /蓝 光 /BigBuckBunny/BDMV/PLAYLIST/00001.mpls 从 DVD 光 盘 读 取 章 节 数 据 若 MKVToolNix 编 译 时 链 接 了 libdvdread 库 , mkvmerge(1) 就 能 从 DVD 光 盘 中 读 取 章 节 数 据 。 要 这 样 做 , 您 可 以 通 过 「 --chapters」 参 数 提 供 DVD 文 件 夹 或 文 件 的 路 径 。 由 于 DVD 光 盘 可 包 含 多 个 标 题 , 且 每 个 标 题 可 以 有 自 己 的 一 组 章 节 , 您 可 以 在 文 件 名 参 数 后 添 加 冒 号 及 所 需 的 标 题 编 号 。 标 题 编 号 默 认 为 1。 例 : --chapters /宝 藏 /dvd光 盘 /BigBuckBunny/VIDEO_TS:2 一 般 性 备 注
mkvmerge(1) 切 割 文 件 时 会 同 时 适 当 调 整 章 节 。 这 意 味 着 每 个 文 件 只 包 含 应 用 到 该 文 件 的 章 节 项 , 时 间 戳 也 将 被 调 整 到 与 各 输 出 文 件 相 匹 配 。

mkvmerge(1) 能 够 从 Matroska 输 入 文 件 中 复 制 章 节 , 除 非 使 用 --no-chapters 选 项 明 令 禁 用 。 来 自 各 类 来 源 (Matroska 文 件 、 Ogg 文 件 、 MP4 文 件 、 章 节 文 本 文 件 ) 的 章 节 通 常 不 被 合 并 , 而 是 分 成 多 个 ChapterEditions( 章 节 版 本 ) 。 仅 当 从 多 个 Matroska 或 XML 文 件 读 取 的 章 节 具 有 相 同 的 版 本 UID 时 , 章 节 才 会 被 合 并 为 单 个 ChapterEdition。 如 果 在 其 他 情 况 下 需 要 此 类 合 并 , 用 户 需 要 先 用 mkvextract(1) 从 所 有 来 源 提 取 章 节 , 手 动 合 并 XML 文 件 然 后 再 混 流 。

标 签

介 绍

Matroska 的 标 签 系 统 与 其 他 容 器 类 似 : 一 组 键 =值 对 。 不 过 , Matroska 中 的 标 签 还 可 以 嵌 套 , 都 是 属 于 它 们 自 身 的 元 素 。 示 例 文 件 example-tags-2.xml 展 示 了 如 何 使 用 该 系 统 。 标 签 细 述
Matroska 标 签 不 会 自 动 应 用 到 整 个 文 件 上 。 它 们 可 以 应 用 到 整 个 文 件 , 还 可 以 应 用 到 文 件 的 不 同 部 分 : 一 个 或 多 个 轨 道 , 一 个 或 多 个 章 节 , 甚 至 是 两 者 的 组 合 。
Matroska 规 范 [5] 有 这 方 面 的 更 多 详 情 。 重 要 的 一 点 是 标 签 通 过 Targets Matroska 标 签 元 素 与 轨 道 或 章 节 相 连 , 而 用 于 此 链 接 的 UID 并 非 mkvmerge(1) 常 用 的 轨 道 ID。 而 是 mkvmerge(1) 自 动 计 算 而 来 (当 轨 道 来 自 非 Matroska 文 件 时 ) 或 当 轨 道 输 入 文 件 是 Matroska 文 件 时 复 制 而 来 的 的 UID。 因 此 在 文 件 被 mkvmerge(1) 处 理 过 之 前 很 难 知 道 应 该 在 标 签 文 件 中 使 用 哪 些 UID。

mkvmerge(1) 支 持 两 个 为 Matroska 文 件 添 加 标 签 的 选 项 : --global-tags--tags 选 项 。 不 同 之 处 在 于 前 者 , --global-tags, 将 通 过 移 除 上 文 提 到 的 所 有 Targets 元 素 使 标 签 应 用 到 整 个 文 件 。 而 后 者 , --tags, 将 使 mkvmerge(1) 为 通 过 --tags 选 项 的 TID 部 分 指 定 的 标 签 自 动 插 入 UID。 示 例 假 定 您 希 望 为 从 一 个 AVI 文 件 读 取 的 视 频 轨 道 添 加 标 签 。 mkvmerge --identify 文 件 .avi 告 诉 您 该 视 频 轨 道 的 ID (不 要 将 此 ID 与 UID 混 淆 !) 为 0。 于 是 您 创 建 了 一 个 标 签 文 件 , 省 去 了 所 有 Targets 元 素 , 然 后 这 样 调 用 mkvmerge(1):

$ mkvmerge -o 文 件 .mkv --tags 0:标 签 .xml 文 件 .avi 标 签 文 件 格 式

mkvmerge(1) 支 持 基 于 XML 的 标 签 文 件 格 式 。 此 格 式 是 以 Matroska 规 范 [5] 为 依 据 严 格 制 定 的 。 MKVToolNix 的 程 序 以 及 源 码 分 发 包 都 含 有 名 为 example-tags-2.xml 的 示 例 文 件 , 该 文 件 已 简 明 地 列 出 了 所 有 已 知 的 可 用 作 实 际 处 理 的 基 本 标 签 。 基 本 要 点 有 :

• 最 外 层 的 元 素 必 须 为 <Tags>。

• 实 际 意 义 上 的 标 签 放 在 <Tag> XML 标 签 对 中 。

• 标 签 内 容 前 后 的 空 白 将 被 忽 略 。 数 据 类 型 新 的 Matroska 标 签 系 统 只 识 别 两 种 数 据 类 型 , UTF-8 字 串 与 二 进 制 类 型 。 前 者 用 于 标 签 名 称 和 <String> 元 素 , 而 二 进 制 类 型 用 于 <Binary> 元 素 。 由 于 二 进 制 数 据 自 身 与 XML 文 件 不 相 容 , mkvmerge(1) 支 持 另 两 种 储 存 二 进 制 数 据 的 方 法 。 如 果 XML 标 签 的 内 容 以 '@' 开 头 , 则 后 续 文 本 将 被 作 为 文 件 名 对 待 。 相 应 文 件 的 内 容 将 被 复 制 到 Matroska 元 素 中 。 还 有 一 种 可 能 , 即 数 据 经 Base64 编 码 。 这 是 将 二 进 制 数 据 转 换 为 一 定 的 ASCII 字 集 字 符 , 在 电 子 邮 件 等 程 序 中 有 所 应 用 。 mkvextract(1) 将 将 二 进 制 元 素 以 Base64 编 码 的 数 据 的 形 式 输 出 。 已 被 废 弃 的 标 签 系 统 可 识 别 更 多 的 数 据 类 型 , 这 在 Matroska 官 方 的 标 签 规 范 中 可 以 找 到 。 由 于 mkvmerge(1) 不 再 支 持 此 系 统 , 此 处 不 对 这 些 类 型 作 多 余 说 明 。

XML 文 件 格 式 的 已 知 标 签 下 面 列 出 的 是 支 持 的 XML 标 签 , 其 数 据 类 型 及 有 效 值 域 :

Tags (主 )
Tag (主 )
Targets (主 )
TargetTypeValue (无 符 号 整 数 )
TargetType (UTF-8 字 符 串 )
TrackUID (无 符 号 整 数 )
EditionUID (无 符 号 整 数 )
ChapterUID (无 符 号 整 数 )
AttachmentUID (无 符 号 整 数 )
Simple (主 )
Simple (主 )
Name (UTF-8 字 符 串 )
TagLanguage (UTF-8 字 符 串 )
DefaultLanguage (无 符 号 整 数 )
String (UTF-8 字 符 串 )
Binary (二 进 制 )

剪 辑 信 息

可 以 通 过 剪 辑 信 息 XML 文 件 设 置 Matroska 文 件 "剪 辑 信 息 " 头 部 字 段 的 特 定 值 。 所 有 这 些 值 都 无 法 通 过 其 他 命 令 行 选 项 设 置 。 还 有 一 些 "剪 辑 信 息 " 头 部 字 段 可 以 通 过 命 令 行 选 项 设 置 , 而 非 通 过 XML 文 件 。 包 括 如 --title--timestamp-scale 选 项 。 还 有 其 他 元 素 既 不 能 通 过 命 令 行 选 项 , 也 不 能 通 过 XML 文 件 设 置 。 这 些 包 括 下 述 元 素 : DateUTC (即 "混 流 时 间 ")、 混 流 应 用 程 序 MuxingApp、 写 入 库 WritingApp 及 总 时 长 Duration。 这 些 元 素 均 由 mkvmerge(1) 自 行 设 置 。 下 面 列 出 的 是 支 持 的 XML 标 签 , 其 数 据 类 型 及 有 效 值 域 :

Info (主 )
SegmentUID (二 进 制 , 有 效 值 域 : 长 度 ( 字 节 ) == 16)
SegmentFilename (UTF-8 字 符 串 )
PreviousSegmentUID (二 进 制 , 有 效 值 域 : 长 度 ( 字 节 ) == 16)
PreviousSegmentFilename (UTF-8 字 符 串 )
NextSegmentUID (二 进 制 , 有 效 值 域 : 长 度 ( 字 节 ) == 16)
NextSegmentFilename (UTF-8 字 符 串 )
SegmentFamily (二 进 制 , 有 效 值 域 : 长 度 ( 字 节 ) == 16)
ChapterTranslate (主 )
ChapterTranslateEditionUID (无 符 号 整 数 )
ChapterTranslateCodec (无 符 号 整 数 )
ChapterTranslateID (二 进 制 )

MATROSKA 文 件 规 划

Matroska 文 件 规 划 非 常 灵 活 。 mkvmerge(1) 将 按 预 先 定 义 的 方 式 渲 染 文 件 。 生 成 的 文 件 是 这 样 的 :

[EBML 头 ] [剪 辑 {元 定 位 #1} [剪 辑 信 息 ] [轨 道 信 息 ] {附 件 } {章 节 } [簇 1] {簇 2} ... {簇 n} {索 引 } {元 定 位 #2} {标 签 }] 大 括 号 中 的 元 素 是 可 选 的 , 依 所 用 的 内 容 和 选 项 而 定 。 有 两 点 要 注 意 的 :

• 元 定 位 #1 只 包 含 很 少 量 的 level 1 元 素 , 且 仅 当 它 们 存 在 时 才 包 含 : 附 件 、 章 节 、 索 引 、 标 签 以 及 元 定 位 #2。 较 早 版 本 的 mkvmerge(1) 亦 曾 将 簇 放 置 在 元 定 位 元 素 中 。 因 此 应 留 给 不 精 确 的 传 言 一 些 空 间 ——真 相 总 会 大 白 。 现 在 只 有 簇 才 被 储 存 在 元 定 位 #2 中 , 元 定 位 #1 将 引 用 元 定 位 元 素 #2。

• 附 件 、 章 节 和 标 签 元 素 仅 当 被 添 加 后 才 会 出 现 。 允 许 的 最 精 简 的 Matroska 文 件 是 像 这 样 的 :

[EBML 头 ] [剪 辑 [剪 辑 信 息 ] [轨 道 信 息 ] [簇 1]] 这 也 是 纯 音 频 文 件 的 样 子 。

外 部 时 间 戳 文 件

mkvmerge(1) 允 许 用 户 为 各 轨 道 选 择 特 定 的 时 间 戳 。 这 可 用 来 创 建 包 含 可 变 帧 率 视 频 或 音 频 中 有 空 隙 的 文 件 。 这 种 情 况 下 的 帧 是 mkvmerge(1) 创 建 各 Matroska 块 的 单 位 。 对 视 频 来 说 恰 好 是 一 帧 , 对 音 频 来 说 是 相 应 音 频 类 型 的 一 个 数 据 包 。 例 如 对 AC-3 来 说 是 包 含 1536 采 样 的 一 个 数 据 包 。 用 于 轨 道 追 加 合 并 的 时 间 戳 必 须 只 指 定 给 一 系 列 ( 同 一 ) 轨 道 的 第 一 部 分 。 例 如 当 您 追 加 合 并 两 个 文 件 , v1.avi 与 v2.avi, 且 希 望 使 用 时 间 戳 时 , 您 的 命 令 行 必 须 像 这 样 组 织 :

$ mkvmerge ... --timestamps 0:我 的 时 间 戳 .txt v1.avi +v2.avi

mkvmerge(1) 可 识 别 四 种 格 式 的 时 间 戳 。 版 本 号 在 时 间 戳 文 件 的 第 一 行 内 。 空 行 , 只 含 有 空 格 的 行 , 以 及 以 '#' 开 头 的 行 在 处 理 时 将 被 忽 略 。 时 间 戳 文 件 格 式 v1 此 格 式 的 第 一 行 是 版 本 声 明 。 第 二 行 则 声 明 默 认 的 帧 率 。 接 下 来 的 各 行 包 含 由 逗 号 分 隔 的 三 个 数 字 : 起 始 帧 ( 0 代 表 第 一 帧 ) 、 终 止 帧 以 及 此 范 围 内 的 帧 率 。 FPS( 帧 率 ) 为 浮 点 数 , 小 数 点 用 '.' 表 示 。 各 行 定 义 的 范 围 间 可 以 有 间 隔 , 间 隔 内 将 使 用 默 认 的 FPS。 一 个 示 例 :

# timestamp format v1
assume 27.930
800,1000,25
1500,1700,30 时 间 戳 文 件 格 式 v2 此 格 式 中 每 行 包 含 相 应 帧 的 时 间 戳 。 此 时 间 戳 必 须 以 毫 秒 为 精 度 。 可 以 使 浮 点 数 , 但 不 强 求 。 您 指 定 的 时 间 戳 行 数 必 须 不 少 于 对 应 轨 道 的 帧 数 。 此 类 文 件 中 的 时 间 戳 必 须 经 过 排 序 。 以 25fps 为 例 :

# timestamp format v2
0
40
80 时 间 戳 文 件 格 式 v3 此 格 式 中 各 行 包 含 时 长 ( 秒 数 ) , 后 接 ( 可 选 ) 帧 率 。 二 者 均 可 为 浮 点 数 。 如 果 未 提 供 帧 率 , 则 采 用 默 认 的 帧 率 。 对 于 音 频 , 您 应 当 让 编 解 码 器 自 行 计 算 各 帧 的 时 间 戳 。 这 样 您 应 当 使 用 0.0 作 为 帧 率 。 您 可 以 使 用 'gap' 关 键 词 后 接 空 隙 时 长 在 流 中 创 建 空 隙 。 以 音 频 文 件 为 例 :

# timestamp format v3
assume 0.0
25.325
7.530,38.236
gap, 10.050
2.000,38.236 时 间 戳 文 件 格 式 v4 此 格 式 与 v2 格 式 相 似 。 唯 一 的 不 同 在 于 时 间 戳 不 必 经 过 排 序 。 通 常 不 应 使 用 此 格 式 。

退 出 代 码

mkvmerge(1) 退 出 时 会 返 回 以 下 三 个 退 出 代 码 中 的 一 个 :

0 -- 此 退 出 代 码 说 明 已 成 功 完 成 混 流 。

1 -- 这 种 情 况 下 mkvmerge(1) 至 少 输 出 了 一 条 警 告 信 息 , 但 混 流 并 未 因 之 中 止 。 警 告 信 息 以 文 字 '警 告 :' 为 前 缀 。 根 据 问 题 的 不 同 , 生 成 的 文 件 可 能 是 好 的 , 也 可 能 不 是 。 强 烈 建 议 用 户 检 查 警 告 信 息 以 及 生 成 的 文 件 。

2 -- 此 退 出 代 码 用 于 错 误 发 生 之 后 。 mkvmerge(1) 在 输 出 错 误 信 息 后 即 中 断 处 理 。 错 误 信 息 可 能 是 错 误 的 命 令 行 参 数 , 也 可 能 是 损 坏 文 件 的 读 取 /写 入 错 误 。

环 境 变 量

mkvmerge(1) 会 使 用 决 定 系 统 区 域 设 置 的 默 认 变 量 (如 LANGLC_* 族 )。 其 他 变 量 包 括 :

MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG 及 其 缩 略 形 式 MTX_DEBUG 内 容 将 被 当 作 通 过 --debug 选 项 传 递 的 参 数 对 待 。

MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE 及 其 缩 略 形 式 MTX_ENGAGE 内 容 将 被 当 作 通 过 --engage 选 项 传 递 的 参 数 对 待 。

参 阅

mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)

网 络

最 新 版 本 总 可 以 在 MKVToolNix 主 页 [6] 找 到 。

作 者

Moritz Bunkus <moritz [AT] bunkus.org> 开 发 人 员

备 注

1.

Matroska 网 站

https://www.matroska.org/

2.

IANA 主 页

https://www.iana.org/assignments/media-types/

3.

mkvmerge-identification-output-schema-v20.json

https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v20.json

4.

RFC 7159

https://tools.ietf.org/html/rfc7159

5.

Matroska 规 范

https://www.matroska.org/technical/specs/index.html

6.

MKVToolNix 主 页

https://mkvtoolnix.download/