Mkvextract

出自NMM Doc
於 2010年8月1日 (日) 14:06 由 XsLiDian對話 | 貢獻 所做的修訂 (以内容'''(作者:Moritz Bunkus;译者:~~~;复制自 [http://greatdreamers.cn/projects/mkvtoolnix/doc/mkvextract.html mkvextract])'' ==名称== mkvextract — 将 Mat…'创建新页面)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

(作者:Moritz Bunkus;譯者:XsLiDian;複製自 mkvextract

名稱

mkvextract — 將 Matroska™ 文件中的軌道提取為另外的文件

概要

mkvextract {模式} {源文件名} [選項] [提取指令]

說明

本程序可以將 Matroska™ 文件的指定部分提取為其他有用的格式。第一個參數,模式告訴 mkvextract 要提取什麼。目前支持提取 tracks(軌道)tags(標籤)attachments(附件)chapters(章節)CUE sheets(CUE 表單)以及timecodes(時間碼)。第二個參數是源文件名。它必須是 Matroska™ 文件。以下參數為選項及提取指令;兩者均依所選模式而定。

通用選項

以下選項在所有模式下可用,本段落只講一遍,不贅述。

-f, --parse-fully
設置解析模式為 'full(完整)'。默認的解析模式不解析整個文件,而是使用元定位元素確定源文件中所需元素的位置。99% 的情況下這已經足夠。但如果碰到不含元定位元素或者元定位元素損壞的文件,用戶可能得考慮使用此模式。完整掃描文件可能要花費幾分鐘,而快速掃描只需要幾秒鐘。
--command-line-charset 字符集
設定在命令行給出的字符串的字符集,用於轉為其他字符集。默認為系統當前區域設置中所給定的字符集。
--output-charset 字符集
設置輸出的字符串應被轉換到何種字符集。默認為系統當前區域設置中所給定的字符集。
-r, --redirect-output 文件名
將所有信息輸出至文件 文件名 而不是在命令行顯示。儘管該操作可以用輸出重定向輕鬆實現,但在某些情況下還需要靠它:如當終端在寫入文件之前重新解釋(覆蓋輸出)時。將優先使用通過 --output-charset 設定的字符集。
--ui-language 语言代码
強制使用語言代碼為 语言代码 的翻譯(如 'de_DE' 對應德文翻譯)。使用 LANG, LC_MESSAGESLC_ALL 這些環境變量更好。如果在 语言代码 處輸入 'list',mkvextract 將輸出可用翻譯列表。
-v, --verbose
使輸出信息更詳盡,且每當讀取到重要的 Matroska™ 元素時就將其顯示。
-h, --help
顯示用法信息並退出。
-V, --version
顯示版本信息並退出。
@選項文件
從文件 选项文件 中讀取額外的命令行參數。首個非空白字符為井號 ('#') 的行將被當作注釋對待,在處理過程中將被忽略。各行開頭與結尾的空白將被除去。各行必須恰好含有一個選項。沒有元字符轉義。命令行 '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 根據下一軌道的標籤數據與章節信息提取出 CUE 表單,輸出文件名為軌道的輸出名後接 '.cue' 擴展名。
--raw
將原始數據提取為文件,輸出文件的周圍沒有任何容器數據。 與 --fullraw 標記不同的是,此標記不會將 CodecPrivate 元素的內容寫入輸出文件。 此模式對所有 CodecIDs 有效,即使是 mkvextract 不支持處理的,然而生成的文件可能無法使用。
--fullraw
提取原始數據,輸出文件的周圍沒有任何容器數據。 如果軌道包含 CodecPrivate 編解碼器私有元素,它的內容將先被寫入文件。 此模式對所有 CodecIDs 有效,即使是 mkvextract 不支持的那些,但是生成的文件可能無法使用。
TID:输出文件名
如果源文件中存在 ID 為 TID 的軌道,則將其提取為文件 输出文件名。本選項可多次給出。軌道 ID 與 mkvmerge 的 --identify 選項所輸出的相同。每個輸出文件名只能用一次。但 RealAudio 與 RealVideo 軌道例外。如果您為不同軌道使用了同樣的輸出文件名,這些軌道將被存入同一個文件中。示例:
$ mkvextract tracks input.mkv 1:output-two-tracks.rm 2:output-two-tracks.rm

標籤提取模式

語法: mkvextract tags 源文件名 [选项]

提取出的標籤將被輸出到命令行,除非輸出被重定向(詳情參見關於 輸出重定向 的章節)。

附件提取模式

語法: mkvextract attachments 源文件名 [选项] AID1:输出文件名1 [AID2:输出文件名2 ...]

AID
輸出文件名
如果源文件中存在 ID 為 AID 的附件,則將其提取為文件 输出文件名。如果 输出文件名 處留空,將使用所用 Matroska™ 文件中的附件名稱。本選項可多次給出。附件 ID 與 mkvmerge 的 --identify 選項所輸出的相同。

章節提取模式

語法: mkvextract chapters 源文件名 [选项]

-s, --simple
將章節信息以 OGM tools 所用的簡單格式 (CHAPTER01=..., CHAPTER01NAME=...) 導出。此模式下部分信息將被廢棄。默認以 XML 格式輸出章節。

提取出的章節將被輸出到命令行,除非輸出被重定向(詳情參見關於 輸出重定向 的章節)。

Cue 表單提取模式

語法: mkvextract cuesheet 源文件名 [选项]

提取出的 cue 表單將被輸出到命令行,除非輸出被重定向(詳情參見關於 輸出重定向 的章節)。

時間碼提取模式

語法: mkvextract timecodes_v2 源文件名 [选项]

提取出的時間碼將被輸出到命令行,除非輸出被重定向(詳情參見關於 輸出重定向 的章節)。

輸出重定向

有些提取模式會使 mkvextract 將提取出的數據輸出到命令行。通常有兩種方法將數據寫入文件:一種由 shell 提供,另一種由 mkvextract 自身提供。

shell 的報告重定向功能可以通過在命令行後追加 '> 輸出文件名.擴展名' 命令實現。示例:


$ mkvextract tags 源.mkv > 标签.xml

mkvextract 自身的重定向功能可通過 --redirect-output 選項喚出。示例:


$ mkvextract tags 源.mkv --redirect-output 标签.xml

注意

在 Windows 平台上您應當使用 --redirect-output 選項,因為 cmd.exe 有時會在寫入文件之前對特殊字符進行轉義,導致輸出文件損壞。

輸出文件格式

輸出文件的格式取決於軌道的類型,而不是輸出文件名的擴展名。目前支持以下軌道類型:

V_MPEG4/ISO/AVC
H.264 / AVC 視頻軌將被輸出為 H.264 基本流,可以使用如 GPAC™ 工具包中的 MP4Box™ 作進一步處理。
V_MS/VFW/FOURCC
使用此 CodecID 且 FPS 恆定的視頻軌將被輸出為 AVI 文件。
V_REAL/*
RealVideo™ 軌道將被輸出為 RealMedia™ 文件。
A_MPEG/L3, A_AC3
這些將被輸出為原始的 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™ 文件。
A_REAL/*
RealAudio™ 軌道將被輸出為 RealMedia™ 文件。
A_TTA1
TrueAudio™ 軌道將被輸出為 TTA 文件。請注意,由於 Matroska™ 時間碼的精度限制,解開來的文件的頭部有兩個字段不同:data_length (文件的總採樣數) 與 CRC。
S_TEXT/UTF8
簡單的文本字幕將被輸出為 SRT 文件。
S_TEXT/SSA, S_TEXT/ASS
SSA 與 ASS 文本字幕將分別被輸出為 SSA/ASS 文件。
S_KATE
Kate™ 流將以 Ogg™ 為容器輸出。
標籤
標籤將被轉換為 XML 格式。此格式與 mkvmerge 所支持讀取的標籤格式相同。
附件
附件將被以原樣輸出。不會進行任何轉換。
章節
章節將被轉換為 XML 格式。此格式與 mkvmerge 所支持讀取的章節格式相同。您也可以選擇輸出精簡的簡單 OGM 格式。
時間碼
時間碼會先被排序,然後以 timecode v2 格式文件輸出,該文件適用於 mkvmerge。不支持提取為其他格式 (v1, v3 或 v4)。

退出代碼

mkvextract 退出時會返回以下三個退出代碼中的一個:

  • 0 -- 此退出代碼說明已成功完成提取。
  • 1 -- 這種情況下 mkvextract 至少輸出了一條警告信息,但提取並未因之中止。 警告信息以文字 '警告:' 為前綴。根據問題的不同,生成的文件可能是好的,也可能不是。 強烈建議用戶檢查警告信息以及生成的文件。
  • 2 -- 此退出代碼用於錯誤發生之後。 mkvextract 在輸出錯誤信息後即中斷處理。錯誤信息可能是錯誤的命令行參數,也可能是損壞文件的讀取/寫入錯誤。

參閱

網絡

最新版本總可以在 MKVToolNix 主頁 找到。