Manpages

名 称

mkvextract - 將 Matroska 軌 道 檔 案 擷 取 至 其 他 檔 案

概 要

mkvextract {輸 入 檔 名 } {模 式 1} [選 項 ] [擷 取 規 格 1] [模 式 2] [選 項 ] [擷 取 規 格 2] [...]

摘 要 說 明

此 程 式 從 Matroska 檔 中 提 取 特 定 部 分 到 其 他 有 用 的 格 式 。 第 一 個 參 數 是 原 始 檔 案 的 名 稱 , 該 檔 必 須 是 Matroska 檔 。 所 有 其 他 引 數 可 切 換 至 特 定 擷 取 模 式 , 變 更 目 前 使 用 模 式 的 選 項 , 或 指 定 要 擷 取 那 些 內 容 至 哪 個 檔 案 中 。 可 在 mkvextract 同 一 次 啟 動 中 使 用 多 個 模 式 , 允 許 一 次 擷 取 多 個 內 容 。 大 多 數 選 項 只 能 在 特 定 模 式 下 使 用 , 只 有 少 數 選 項 適 用 於 所 有 模 式 。 目 前 支 援 軌 道 tracks 軌 道 , tags 標 籤 , attachments 附 件 , chapters 章 節 , CUE sheets CUE 工 作 表 , timestamps 時 間 戳 記 與 cues的 擷 取 。 一 般 選 項 以 下 選 項 在 所 有 模 式 下 都 可 用 , 本 節 中 僅 介 紹 一 次 。

-f, --parse-fully 將 剖 析 模 式 設 為 '完 整 ' 。 預 設 模 式 不 會 剖 析 完 整 檔 案 , 而 是 使 用 變 換 定 位 元 件 尋 找 原 始 檔 案 所 需 的 元 件 。 在 99% 情 形 足 以 夠 用 。 但 對 於 不 包 含 變 換 定 位 元 件 或 受 損 的 檔 案 來 說 , 使 用 者 很 可 能 需 要 使 用 此 模 式 。 完 整 檔 案 掃 描 會 耗 費 較 久 的 時 間 , 而 快 速 掃 描 只 需 要 幾 秒 鐘 。

--command-line-charset 字 元 集 設 定 在 命 令 列 顯 示 的 字 串 字 元 集 , 以 轉 換 為 其 他 字 元 集 。 預 設 為 目 前 系 統 所 在 位 置 指 定 的 字 元 集 。

--output-charset 字 元 集 設 定 要 轉 換 為 輸 出 字 串 的 字 元 集 。 預 設 為 目 前 系 統 所 在 位 置 指 定 的 字 元 集 。

-r, --redirect-output 檔 名 將 所 有 訊 息 寫 入 到 檔 案 檔 名 而 不 是 命 令 列 。 儘 管 使 用 輸 出 重 新 導 向 可 以 輕 鬆 完 成 此 操 作 , 但 在 某 些 情 況 下 需 要 使 用 此 選 項 : 當 終 端 在 將 輸 出 寫 入 文 件 之 前 重 新 解 釋 ( 覆 蓋 ) 輸 出 時 。 優 先 使 用 通 過 --output-charset 設 定 字 元 集 。

--flush-on-close 關 閉 已 開 啟 寫 入 的 檔 案 時 , 告 訴 程 式 清 理 所 有 在 記 憶 體 中 的 資 料 。 這 可 以 防 止 因 斷 電 造 成 的 資 料 遺 失 或 避 免 作 業 系 統 或 驅 動 程 式 造 成 的 某 些 問 題 。 缺 點 是 執 行 合 併 工 具 會 花 費 較 久 個 時 間 , 因 為 mkvmerge 需 要 等 待 所 有 資 料 已 寫 入 至 儲 存 空 間 後 , 才 會 結 束 。 請 參 閱 MKVToolNix 錯 誤 追 蹤 上 的 #2469 和 #2480 問 題 , 以 便 深 入 瞭 解 其 優 缺 點 。

--ui-language 語 言 碼 強 制 使 用 語 言 編 碼 對 應 的 的 翻 譯 (例 如 'zh_TW' 為 臺 灣 正 體 中 文 翻 譯 )。 在 編 碼 欄 位 中 輸 入 'list' 讓 程 式 輸 出 時 使 用 可 用 的 對 應 翻 譯 清 單 。

--abort-on-warnings 發 出 第 一 個 警 告 後 , 終 止 程 式 。 程 式 的 結 束 碼 為 1 。

--debug 主 題 針 對 特 定 功 能 開 啟 除 錯 。 此 選 項 適 用 於 開 發 者 。

--engage 功 能 開 啟 實 驗 中 功 能 。 透 過 mkvextract --engage list啟 用 可 用 的 列 表 。 這 些 功 能 不 會 在 正 常 情 況 下 使 用 。

--gui-mode 開 啟 GUI 模 式 。 在 這 種 模 式 中 , 可 能 會 輸 出 特 殊 格 式 的 行 數 , 可 以 呈 現 控 制 的 GUI 發 生 什 麼 事 。 這 些 訊 息 會 以 '#GUI#訊 息 '呈 現 。 訊 息 可 能 包 含 機 碼 /值 , 例 如 '#GUI#訊 息 #機 碼 1=值 1#機 碼 2=值 2...'。 無 論 是 訊 息 或 是 機 碼 都 不 會 轉 為 譯 文 , 而 且 永 遠 使 用 *英 語 * 輸 出 。

-v, --verbose 輸 出 時 盡 量 詳 細 , 並 在 讀 取 時 顯 示 所 有 Matroska 重 要 的 元 件 。

-h, --help 顯 示 使 用 方 式 並 退 出 。

-V, --version 顯 示 版 本 資 訊 並 離 開 。

@options-file.json檔 案 選 項 檔 讀 取 其 他 命 令 列 引 數 。 有 關 此 類 檔 案 支 援 格 式 的 完 整 說 明 , 請 參 閱 mkvmerge(1) 文 件 中 的 "選 項 檔 案 " 章 節 。 軌 道 擷 取 模 式 語 法 : 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 input.mkv tracks 0:video.h264 2:output-two-vobsub-tracks.idx 3:output-two-vobsub-tracks.idx 附 件 擷 取 模 式 語 法 :mkvextract 原 始 檔 名 attachments [選 項 ] AID1:輸 出 檔 名 1 [AID2:輸 出 檔 名 2 ...]

AID:輸 出 檔 名 如 果 原 始 檔 案 中 存 在 ID 為 AID 的 附 件 軌 道 , 會 將 擷 取 為 輸 出 檔 名 。 假 設 輸 出 檔 名 保 留 空 白 , 那 麼 將 會 使 用 原 始 Matroska 檔 案 中 的 附 件 名 稱 。 此 選 項 可 多 次 使 用 。 此 選 項 可 多 次 使 用 。 附 件 ID 與 mkvmerge(1)--identify 選 項 輸 出 的 相 同 。 章 節 擷 取 模 式 語 法 : mkvextract 原 始 檔 名 chapters [選 項 ] 輸 出 檔 名 .xml

-s, --simple 用 OGM 工 具 的 簡 易 格 式 來 匯 出 章 節 資 訊 (CHAPTER01=..., CHAPTER01NAME=...)。 在 此 模 式 中 , 將 會 丟 棄 部 分 資 訊 。 預 設 是 以 XML 格 式 輸 出 章 節 。

--simple-language 語 言 如 果 啟 用 簡 易 模 式 , mkvextract(1) 即 使 單 一 章 節 單 元 包 含 一 個 以 上 的 章 節 名 稱 , 每 個 章 節 單 元 只 會 輸 出 單 一 項 目 。 在 預 設 情 況 下 , 無 論 任 何 語 言 , mkvextract(1) 都 將 會 使 用 找 到 的 第 一 個 名 稱 。 使 用 此 選 項 , 當 單 元 包 含 一 個 以 上 章 節 名 稱 時 , 允 許 使 用 者 決 定 使 用 哪 一 個 章 節 名 稱 作 為 輸 出 使 用 。 語 言 參 數 必 須 為 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:輸 出 檔 名 如 果 原 始 檔 案 中 存 在 ID 為 TID 的 時 間 戳 記 軌 道 , 會 將 擷 取 為 輸 出 檔 名 。 此 選 項 可 多 次 使 用 。 此 選 項 可 多 次 使 用 。 軌 道 ID 與 mkvmerge(1)--identify 選 項 輸 出 的 相 同 。 範 例 :

$ mkvextract input.mkv timestamps_v2 1:ts-track1.txt 2:ts-track2.txt

Cue 擷 取 模 式 語 法 : mkvextract 原 始 檔 名 cues [選 項 ] TID1:輸 出 檔 名 1 [TID2:輸 出 檔 名 2 ...]

TID:輸 出 檔 名 如 果 原 始 檔 案 中 存 在 ID 為 TID 的 CUE 軌 道 , 會 將 擷 取 為 輸 出 檔 名 。 此 選 項 可 多 次 使 用 。 此 選 項 可 多 次 使 用 。 附 件 ID 與 mkvmerge(1)--identify 選 項 輸 出 的 相 同 , 且 不 會 包 含 CueTrack 元 件 的 數 字 。 輸 出 的 格 式 為 簡 易 文 字 格 式 : 每 行 對 應 一 組 CuePoint 元 件 與 機 碼 =值 。 當 選 用 的 元 素 不 存 在 於 CuePoint 時 (例 如 CueDuration) , 將 會 以 短 破 折 號 (虛 線 )作 為 輸 出 值 。 範 例 :

timestamp=00:00:13.305000000 duration=- cluster_position=757741 relative_position=11 可 使 用 的 機 碼 如 下 :

timestamp

CUE 點 的 時 間 戳 記 ( timestamp)具 有 奈 秒 的 精 準 度 。 格 式 為 HH:MM:SS.nnnnnnnnn。 此 元 件 為 必 要 設 定 。

duration

CUE 點 的 時 間 長 度 (duration)具 有 奈 秒 的 精 準 度 。 格 式 為 HH:MM:SS.nnnnnnnnn。

cluster_position 包 含 引 用 元 件 的 叢 集 起 始 的 Matroska 檔 案 內 位 元 組 的 絕 對 位 置 。 注 意

Matroska 檔 案 中 的 CueClusterPosition 相 對 於 剪 輯 資 訊 資 料 的 起 始 偏 移 。 但 由 mkvextract(1) CUE 擷 取 模 式 輸 出 的 值 已 經 包 含 該 偏 移 , 並 且 是 與 文 件 開 頭 的 絕 對 偏 移 。

relative_position

CUE 點 引 用 的 BlockGroup 或 SimpleBlock 元 件 在 叢 集 起 始 內 以 位 元 組 為 單 位 的 相 對 位 置 。 注 意

Matroska 檔 案 中 的 CueRelativePosition 是 相 對 於 叢 集 資 料 起 始 的 偏 移 。 但 mkvextract(1) 的 CUE 擷 取 模 式 所 輸 出 的 值 , 是 相 對 於 叢 集 的 ID 。 可 通 過 新 增 與 新 增 檔 案 計 算 檔 案 內 的 cluster_position 和 relative_position。 範 例 :

$ mkvextract input.mkv cues 1:cues-track1.txt 2:cues-track2.txt

範 例

同 時 擷 取 章 節 與 標 籤 並 依 照 各 自 的 XML 格 式 儲 存 :

$ mkvextract movie.mkv chapters movie-chapters.xml tags movie-tags.xml 同 時 擷 取 數 個 軌 道 與 各 自 對 應 的 時 間 戳 記 :

$ mkvextract "Another Movie.mkv" tracks 0:video.h265 "1:main audio.aac" "2:director's comments.aac" timestamps_v2 "0:timestamps video.txt" "1:timestamps main audio.txt" "2:timestamps director's comments.txt" 擷 取 Ogg/OGM 格 式 的 章 節 , 然 後 將 文 字 字 幕 軌 道 重 新 編 碼 到 另 一 個 字 元 集 :

$ mkvextract "My Movie.mkv" chapters --simple "My Chapters.txt" tracks -c MS-ANSI "2:My Subtitles.srt"

文 字 檔 案 與 字 元 集 轉 換

关 于 MKVToolNix 套 件 中 所 有 工 具 如 何 处 理 字 符 集 转 换 、 输 入 /输 出 编 码 、 命 令 行 编 码 及 控 制 台 编 码 的 深 入 讨 论 , 请 参 见 mkvmerge(1) 手 册 中 相 对 应 名 称 的 段 落 。

檔 案 輸 出 格 式

输 出 的 格 式 取 决 于 轨 道 的 类 型 , 而 不 是 输 出 文 件 名 的 扩 展 名 。 目 前 支 持 以 下 轨 道 类 型 :

A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC 所 有 AAC 文 件 将 被 输 出 为 AAC 文 件 , 其 中 数 据 包 前 有 ADTS 头 。 ADTS 头 将 不 含 反 增 强 字 段 ( deprecated emphasis field) 。

A_AC3, A_EAC3 這 將 會 擷 取 為 raw AC-3 檔 案 。

A_ALAC

ALAC 軌 道 將 寫 入 成 CAF 檔 案 。

A_DTS 這 將 會 擷 取 為 raw DTS 檔 案 。

A_FLAC

FLAC 軌 道 將 寫 入 成 原 始 FLAC 檔 案 。

A_MPEG/L2

MPEG-1 音 層 II 串 流 將 會 擷 取 為 原 始 的 MP2 檔 案 。

A_MPEG/L3 這 將 會 擷 取 為 raw MP3 檔 案 。

A_OPUS

Opus 軌 道 將 寫 入 成 OggOpus 檔 案 。

A_PCM/INT/LIT, A_PCM/INT/BIG 原 始 PCM 数 据 将 写 入 WAV 文 件 。 大 端 序 整 数 数 据 在 此 期 间 将 被 转 为 小 端 序 数 据 。

A_REAL/*

RealAudio 軌 道 將 寫 入 成 RealMedia 檔 案 。

A_TRUEHD, A_MLP 這 將 會 擷 取 為 raw TrueHD/MLP 檔 案 。

A_TTA1

TrueAudio 轨 道 将 被 输 出 为 TTA 文 件 。 请 注 意 , 由 于 Matroska 时 间 戳 的 精 度 限 制 , 解 开 来 的 文 件 的 头 部 有 两 个 字 段 不 同 : data_length (文 件 的 总 采 样 数 ) 与 CRC。

A_VORBIS

Vorbis 音 訊 將 會 以 OggVorbis 寫 入 檔 案 。

A_WAVPACK4

WavPack 軌 道 將 寫 入 成 WV 檔 案 。

S_HDMV/PGS

PGS 字 幕 將 會 以 SUP 寫 入 檔 案 。

S_HDMV/TEXTST

TextST 字 幕 将 以 转 为 mkvmerge(1)mkvextract(1) 发 明 的 特 殊 格 式 写 入 。

S_KATE

Kate 流 将 以 Ogg 为 容 器 输 出 。

S_TEXT/SSA, S_TEXT/ASS, S_SSA, S_ASS

SSA 與 ASS 純 文 字 字 幕 將 會 分 別 以 SSA/ASS 寫 入 檔 案 。

S_TEXT/UTF8, S_TEXT/ASCII 簡 易 純 文 字 字 幕 將 會 以 SRT 寫 入 檔 案 。

S_VOBSUB

VobSub 字 幕 将 输 出 为 SUB 文 件 及 相 应 的 索 引 文 件 ( 后 缀 为 IDX) 。

S_TEXT/USF

USF 純 文 字 字 幕 將 會 以 USF 寫 入 檔 案 。

S_TEXT/WEBVTT

WebVTT 純 文 字 字 幕 將 會 以 WebVTT 寫 入 檔 案 。

V_MPEG1, V_MPEG2

MPEG-1 与 MPEG-2 视 频 轨 道 将 输 出 为 MPEG 基 本 流 ( ES) 。

V_MPEG4/ISO/AVC

H.264 / AVC 视 频 轨 将 被 输 出 为 H.264 基 本 流 , 可 以 使 用 如 GPAC 工 具 包 中 的 MP4Box 作 进 一 步 处 理 。

V_MPEG4/ISO/HEVC

H.265 / HEVC 视 频 轨 道 将 输 出 为 H.265 基 本 流 ( ES) , 该 格 式 可 使 用 GPAC 软 件 包 中 的 MP4Box 作 进 一 步 处 理 。

V_MS/VFW/FOURCC 使 用 此 CodecID 且 FPS 恒 定 的 视 频 轨 将 被 输 出 为 AVI 文 件 。

V_REAL/*

RealVideo 軌 道 將 寫 入 成 RealMedia 檔 案 。

V_THEORA

Theora 流 将 以 Ogg 为 容 器 输 出

V_VP8, V_VP9

VP8 / VP9 軌 道 將 寫 入 成 IVF 檔 案 。 標 籤 标 签 将 被 转 换 为 XML 格 式 。 此 格 式 与 mkvmerge(1) 所 支 持 读 取 的 标 签 格 式 相 同 。 附 件 附 件 将 被 以 原 样 输 出 。 不 会 进 行 任 何 转 换 。 章 節 章 节 将 被 转 换 为 XML 格 式 。 此 格 式 与 mkvmerge(1) 所 支 持 读 取 的 章 节 格 式 相 同 。 您 也 可 以 选 择 输 出 精 简 的 简 单 OGM 格 式 。

Timestamps 时 间 戳 会 先 被 排 序 , 然 后 以 timestamp v2 格 式 文 件 输 出 , 该 文 件 适 用 于 mkvmerge(1)。 不 支 持 提 取 为 其 他 格 式 (v1, v3 或 v4)。

結 束 代 碼

使 用 三 個 之 一 的 結 束 代 碼 結 束 mkvextract(1)

0 -- 此 結 束 代 碼 表 示 擷 取 已 成 功 完 成 。

1 -- 在 此 情 況 下 , mkvextract(1) 輸 出 時 至 少 有 一 則 警 告 , 但 擷 取 動 作 仍 然 進 行 。 警 告 訊 息 會 在 前 端 出 現 '警 告 :'字 樣 。 依 據 問 題 的 程 度 , 生 成 的 檔 案 也 許 可 用 。 建 議 使 用 者 檢 視 警 告 訊 息 與 輸 出 檔 。

2 -- 此 結 束 代 碼 用 於 發 生 錯 誤 後 。 mkvextract(1) 在 輸 出 錯 誤 訊 息 後 立 即 中 止 動 作 。 錯 誤 訊 息 的 範 圍 包 含 從 錯 誤 命 令 列 參 數 的 讀 /寫 至 檔 案 損 壞 。

環 境 變 數

mkvextract(1) 使 用 決 定 系 統 的 地 區 設 定 的 變 數 (例 如 : LANGLC_* 系 列 )。 附 加 變 數 :

MKVEXTRACT_DEBUG, MKVTOOLNIX_DEBUG 與 其 縮 寫 MTX_DEBUG 視 為 通 過 --debug 選 項 傳 遞 的 內 容 。

MKVEXTRACT_ENGAGE, MKVTOOLNIX_ENGAGE 與 其 縮 寫 MTX_ENGAGE 視 為 通 過 --engage 選 項 傳 遞 的 內 容 。

參 閱

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

網 路

永 遠 可 在 MKVToolNix 首 頁 [1] 找 到 最 新 版 。

作 者

Moritz Bunkus <moritz [AT] bunkus.org> 開 發 人 員

备 注

1.

MKVToolNix 首 頁

https://mkvtoolnix.download/