Mkvmerge
(作者:Moritz Bunkus;譯者:XsLiDian;複製自 mkvmerge)
名稱
mkvmerge — 將多媒體流合併到 Matroska™ 文件中
概要
mkvmerge [全局選項] {-o 輸出文件} [選項1] {文件1} [ [選項2] {文件2} ] [@選項文件]
說明
本程序可讀取多種媒體文件並將它們的數據流(全部或者按選擇)合併到 Matroska™ 文件中去;參見 Matroska™ 網站。
全局選項:
-v
,--verbose
- 增強「詳細」程度。
-q
,--quiet
- 取消狀態輸出。
-o
,--output
文件名
- 寫至文件
文件名
。如果使用了切割功能,對此參數的處理將有所不同。 詳情請參閱關於--split
選項的說明。 -w
,--webm
- 創建 WebM 兼容文件。如果輸出文件擴展名為 "webm" 則將自動開啟本選項。此模式將實施一些限制。只允許使用編解碼器為 VP8 視頻與 Vorbis 音頻的軌道。章節與標籤功能都不允許使用。DocType 文檔類型頭項將更改為 "webm"。
--title
标题
- 設置整個生成文件的標題,比如電影名稱。
--tags
文件名
- 從 XML 文件
文件名
中讀取全局標籤。詳細情況請參閱下文關於標籤的段落。 --default-language
语言代码
- 設置默認語言代碼。所有軌道將使用此語言碼,除非被用
--language
選項覆蓋。默認的語言代碼是 'und
' 代表 'undefined'(未定)。
剪輯信息處理: (全局選項)
--segmentinfo
文件名.xml
- 從 XML 文件中讀取剪輯信息。此文件可以包含剪輯族的 UID、剪輯的 UID、上一剪輯以及下一剪輯的 UID 元素。示例文件以及 DTD 已包含在 MKVToolNix 發布包中。
--segment-uid
SID1,SID2,...
- 設定要使用的剪輯 UID。這是個逗號分割的 128 位 UID 列表,UID 為通常的格式: 十六進位數字,"0x" 前綴可選,空格可選,但必須恰好有 32 個數位。創建的每個文件都包含一個剪輯,每個剪輯有一個剪輯 UID。如果指定的剪輯 UID 比創建的剪輯多,則多餘的 UID 將被忽略。如果指定的 UID 比創建的剪輯少,則將隨機創建 UID。
章節與標籤處理: (全局選項)
--chapter-language
语言代码
- 設置各章節項的 ISO639-2 語言代碼。 默認為 '
eng
'。 詳情參見下文中關於 章節 的段落。此選項可用於簡單章節文件與包含章節但不含章節語言信息的源文件,如 MP4 與 OGM 文件。 --chapter-charset
字符集
- 設置簡單章節文件所用的字符集,用以轉為 UTF-8。關於 mkvmerge 如何在字符集之間轉換的說明請參見關於 文本文件與字符集 的段落。此開關亦可應用到從特定容器類型,如 Ogg/OGM 和 MP4 文件中複製而來的章節。 詳情參見下文關於章節的段落。
--cue-chapter-name-format
格式
- mkvmerge 支持讀取音頻文件的 CUE 表單作為章節輸入。CUE 表單中各索引項通常含有
PERFORMER(表演者)
與TITLE(標題)
項。mkvmerge 使用這兩個字串構建章節名稱。使用此選項可設定構建名稱所用的格式。如果此選項未給定則 mkvmerge 默認使用 '%p - %t
' 格式 (表演者, 後接空格, 一個破折號, 另一個空格以及標題)。如果給定了格式,則除了後續的標籤字符以外都將被原樣複製,標籤字符將被進行下述替換:%p
被當前項的PERFORMER(表演者)
字符串替代,%t
被當前項的TITLE(標題)
字符串替代,%n
被當前軌道編號替代,此外%N
被當前軌道襯式編號(小於 10 則在前面加零)替代。
全局輸出控制 (高級全局選項):
--track-order
FID1:TID1,FID2:TID2,...
- 此選項更改輸入文件創建時軌道的順序。變量為逗號分隔的成對的 ID 列。每對先包含有文件 ID (
FID1
),即文件在命令行中的順序,由 0 開始計數。第二個是在該文件中的軌道 ID (TID1
)。 如果省去部分軌道的 ID,則這些軌道將在使用本選項給定的軌道創建之後創建。 --cluster-length
指令
- 限制每個簇中數據塊的數量或數據的時長。
指令
參數可以是無單位的數字n
,也可以是後綴有 'ms
' 的d
。如果未使用數字,mkvmerge 將在每個簇中放置最多n
個數據塊。最大塊數是 65535。如果數字d
後綴有 'ms
',mkvmerge 將在每個簇中放置最多d
毫秒的數據。d
的最小值是 '100ms
',最大值是 '32000ms
'。mkvmerge defaults to putting at most 65535 data blocks and 5000ms of data into a cluster.嘗試定位到特定幀的程序只能直接定位到簇,然後需要讀取整個簇(來完成定位)。因此創建較大的簇將導致定位不精確或緩慢。 --no-cues
- 讓 mkvmerge 不要創建或寫入 cue 索引( 可類比作 AVI 文件中的索引)。沒有索引的 Matroska™ 文件也能播放,但定位可能不精確且緩慢。僅當您確實強求空間或用作測試時使用此選項。請參閱可為各輸入文件指定的
--cues
選項。 --clusters-in-meta-seek
- 告訴 mkvmerge 在文件末尾創建包含所有簇的元定位元素。參閱關於 Matroska™ 文件規劃 的段落。
--disable-lacing
- 禁用所有軌道的緊縮。這將增加文件大小,尤其是當有很多音頻軌時。此選項不供日常之用。
--enable-durations
- 為所有塊寫入時長。這將增大文件尺寸,而且目前對播放器來說不提供任何額外的益處。
--timecode-scale
系数
- 強制時間碼縮放係數為
系数
。有效值域為1000
..10000000
或特殊值-1
。通常 mkvmerge 會使用數值1000000
,這樣時間碼和時長的精度為 1ms。對於不包含視頻軌但含有至少一條音頻軌的文件,mkvmerge 將自動選擇一個時間碼縮放係數以使各軌的音頻採樣精度相同。這將引起更大的額外開銷,但將允許更為精確的定位與提取。如果使用了特殊值-1
,即使有視頻軌,mkvmerge 也將使用採樣精度。
文件切割、連結與追加合併 (其他全局選項):
--split
指令
- 在給定尺寸或時間之後切割輸出文件。請注意,各軌道只能在關鍵幀之前的位置切割開。由於緩衝原因,mkvmerge 將在達到切割點後發現的首個關鍵幀前的位置切割。因此實際切割點可能比用戶指定的稍稍靠後些。目前 mkvmerge 支持三種不同模式。
- 按尺寸切割。語法:
--split
[size:]d
[k|m|g]示例:--split size:700m
或者--split 150000000
參數d
可以以 'k
'、'm
' 或 'g
' 結尾,分別說明尺寸的單位為 KB、MB 或 GB。若不加單位,則假定單位為字節。 當前輸出文件達到此尺寸限制後將開始輸出新的文件。為兼顧兼容性,'size:
' 前綴可以省略。 - 在一定時長後切割。語法:
--split
[duration:]HH:MM:SS.nnnnnnnnn
|d
s示例:--split duration:00:60:00.000
或--split 3600s
此參數可以用HH:MM:SS.nnnnnnnnn
的形式指定納秒精度的時長,也可以是後接字母 's
' 的指定秒數時長的數字d
。HH
為小時數,MM
為分鐘數,SS
為秒數,而nnnnnnnnn
為納秒數。 小時數與納秒數均可省略。 小數點後最多可以有九位。 當前輸出內容的時長達到此限制後將開始輸出新的輸出文件。為兼顧兼容性,'duration:
' 前綴可以省略。 - 在指定時間碼後切割。語法:
--split
timecodes:A
[,B
[,C
...]]示例:--split timecodes:00:45:00.000,01:20:00.250,6300s
參數A
、B
、C
等等的格式與按時長切割模式(見上文)所用的格式相同。時間碼錶以逗號分隔。 輸入流達到當前切割點的時間碼後將創建新的輸出文件。然後將使用所給定的下一個切割點。'timecodes:
' 前綴不得省略。此切割模式下輸出文件名將以不同於常用操作的方式對待。可能會含有類似printf
的表達式 '%d
',包括可選的欄位寬度,如 '%02d
'。如果含有上述表達式,當前文件序號將按相應格式生成,然後插入到文件名中的相應位置。 如果沒有此類匹配模式,則假定匹配模式為在文件擴展名之前插入 '-%03d
': '-o 輸出.mkv
' 將生成 '輸出-001.mkv
' 這樣的一系列文件。如果沒有擴展名,'-%03d
' 將被追加在文件名之後。
- 按尺寸切割。語法:
--link
- 切割輸出文件時連接文件。詳情請參閱下文 文件連結 段落。
--link-to-previous
剪辑-UID
- 連接第一個輸出文件到指定
剪辑-UID
參數對應的剪輯。詳情請參閱下文 文件連結 段落。 --link-to-next
剪辑-UID
- 連接最後一個輸出文件到指定
剪辑-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
附件支持(其他全局選項):
--attachment-description
描述
- 對後面附件的純文字描述。將應用到下一個
--attach-file
或--attach-file-once
選項。 --attachment-mime-type
MIME 类型
- 後面附件的 MIME 類型。將應用到下一個
--attach-file
或--attach-file-once
選項。 官方認可的 MIME 類型列表可以在如 IANA 主頁 找到。MIME 類型對附件來說是必需的。 --attachment-name
名称
- 設置此附件將在輸出文件中儲存的名稱。 如果未給出此選項則將由
--attach-file
或--attach-file-once
選項所設的文件名推得。 --attach-file
文件名
,--attach-file-once
文件名
- 在 Matroska™ 文件中創建文件附件。MIME 類型必須在使用此選項之前設定。兩種形式的不同之處在於使用
--attach-file
附加的文件在切割過程中將被附加到所有輸出文件中,而使用--attach-file-once
附加的文件只被附加到創建的首個文件中。如果未使用切割功能,兩種形式效果相同。可以使用 mkvextract 從 Matroska™ 文件中提取附件文件。
用於各輸入文件的選項:
-a
,--audio-tracks
n,m,...
- 複製
n
、m
等音頻軌。數字是可以通過--identify
開關獲取的軌道 ID。他們不只是簡單的軌道序號(參見 軌道 ID 段落)。默認: 複製所有音頻軌道。 -d
,--video-tracks
n,m,...
- 複製
n
、m
等視頻軌。數字是可以通過--identify
開關獲取的軌道 ID。他們不只是簡單的軌道序號(參見 軌道 ID 段落)。默認: 複製所有視頻軌道。 -s
,--subtitle-tracks
n,m,...
- 複製
n
、m
等字幕軌。數字是可以通過--identify
開關獲取的軌道 ID。他們不只是簡單的軌道序號(參見 軌道 ID 段落)。默認: 複製所有字幕軌道。 -b
,--button-tracks
n,m,...
- 複製
n
、m
等按鈕軌。數字是可以通過--identify
開關獲取的軌道 ID。他們不只是簡單的軌道序號(參見 軌道 ID 段落)。默認: 複製所有按鈕軌道。 --track-tags
n,m,...
- 複製
n
、m
等軌道的標籤。數字是可以通過--identify
開關獲取的軌道 ID。他們不只是簡單的軌道序號(參見 軌道 ID 段落)。默認: 複製所有軌道的標籤。 -m
,--attachments
n[:all|first],m[:all|first],...
- 複製 ID 為
n
、m
等的附件到所有或者僅首個輸出文件中。各 ID 後可接 ':all
'(如果兩可選數值均未輸入,此為默認值)或者 ':first
'。如果切割功能已被起用,則 ID 被指定為 ':all
' 的附件將被複製到所有生成的輸出文件中,而其他附件只被複製到首個輸出文件中。如果未使用切割功能則兩變量等效。默認複製所有附件到所有輸出文件中。 -A
,--no-audio
- 不要從此文件中複製任何音頻軌。
-D
,--no-video
- 不要從此文件中複製任何視頻軌。
-S
,--no-subtitles
- 不要從此文件中複製任何字幕軌。
-B
,--no-buttons
- 不要從此文件中複製任何按鈕軌。
-T
,--no-track-tags
- 不要從此文件中複製任何軌道細節標籤。
--no-chapters
- 不要從此文件中複製章節。
-M
,--no-attachments
- 不要從此文件中複製附件。
--no-global-tags
- 不要從此文件中複製全局標籤。
--chapter-charset
字符集
- 設置源文件中章節信息的字符集,以供轉為 UTF-8 之用。關於 mkvmerge 如何在字符集之間進行轉換的說明,請參閱下文 文本文件與字符集 段落。
--chapter-language
语言代码
- 選擇各章節項所用的 ISO639-2 語言代碼。 此選項可用於包含章節但不含關於章節語言的信息的源文件,如 MP4 與 OGM 文件。
-y
,--sync
TID:d[,o[/p]]
- 將 id 為
TID
的軌道的時間碼按d
ms 進行調整。軌道 ID 與--identify
所給出的相同 (參見 軌道 ID 段落)。o
/p
: 按o
/p
調整時間戳以修複線性偏移。如果省略p
則默認為 1。o
與p
均可為浮點數。默認: 無手動同步校正 (與d
=0
及o
/p
=1.0
效果相同)。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。 --cues
TID:none|iframes|all
- 控制為指定軌道 (參閱 軌道 ID 段落) 創建何種 cue 索引。'
none(無)
' 將阻止 cue 索引的創建。 而 'iframes(僅 i 幀)
' 表示僅將沒有前後參考的塊 ( = 視頻軌道中的 I 幀) 置於 cue 索引項中。'all(全部)
' 將使 mkvmerge 為所有區塊創建索引,會使生成的文件非常大。默認視頻軌為 'iframes(僅 i 幀)
',其他所有軌道均為 'none(無)
'. 參見不論是否使用--cues
選項時都能阻止創建 cue 索引項的--no-cues
選項。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。 --default-track
TID[:bool]
- 當為設定可選變量
bool
時為指定軌道 (參見 軌道 ID 段落) 設置 '默認軌' 標記。 當用戶未明確選定一個軌道時,播放器將優先選用設有 '默認軌' 標記的軌道。各類 (音頻、視頻、字幕、按鈕) 軌道只能有一條設置 '默認軌' 標記。 如果用戶希望所有軌道都不被設置默認軌標記,可以將所有軌道的bool
設為0
。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。 --forced-track
TID[:bool]
- 若未給出可選參數
bool
,則為指定軌道 (參見 軌道 ID 段落) 設置「強制軌」標記。播放器必須播放「強制軌」標記為1
的所有軌道。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。 --blockadd
TID:层级
- 只保留選定軌道中高達
层级
層級的BlockAdditions
附加塊。 默認保留所有層級。 此選項只影響特定類型的編解碼器,如 WAVPACK4。 --track-name
TID:名称
- 將指定軌道 (參見 軌道 ID 段落) 的軌道名稱設為
名称
。 --language
TID:语言
- 為指定軌道 (參見 軌道 ID ) 設置語言。允許使用 ISO639-2 語言代碼與 ISO639-1 國家代碼。國家代碼將被自動轉換為語言代碼。 可以使用
--list-languages
選項列出所有語言以及它們的 ISO639-2 代碼。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。 -t
,--tags
TID:文件名
- 從文件
文件名
讀取軌道號為TID
的軌道的標籤。詳情參見下文 標籤 段落。 --aac-is-sbr
TID[:0|1]
- 告訴 mkvmerge ID 為
TID
的軌道是 SBR AAC (亦作 HE-AAC 或 AAC+)。下述情況下需要此選項:a) 源文件是 AAC 文件 (不是 Matroska™ 文件) 且 b) 該 AAC 文件含有 SBR AAC 數據。 設置此開關的原因是目前技術上無法在不解碼一個完整的 AAC 幀的情況下自動分辨普通的 AAC 數據與 SBR AAC 數據。由於 AAC 解碼器的諸多專利問題,mkvmerge 永遠不會包含此解碼層。因此此開關對於 SBR AAC 文件是必需的。如果忽略了此開關,生成的文件可能無法正常回放,甚至可能根本無法播放。如果源文件是 Matroska™ 文件,則已有足夠偵測 SBR AAC 的CodecID
了。然而,如果CodecID
標註錯誤,此開關可用於更正之。如果 mkvmerge 錯將 AAC 文件偵測為 SBR,您可以將 ':0
' 添加到軌道 ID。 --timecodes
TID:文件名
- 從
文件名
讀取要應用到指定軌道 ID 的時間碼。 這些時間碼將強制覆蓋 mkvmerge 默認計算出的時間碼。參閱關於 外部時間碼文件 的章節。 --default-duration
TID:x
- 強制指定軌道的默認時長為指定數值。 將同時修改軌道的時間碼以匹配該默認時長。 變量
x
必須有 's
', 'ms
', 'us
', 'ns
' 或 'fps
' 後綴,分別說明默認時長的單位為秒、毫秒、微秒、納秒以及幀每秒。 數字x
本身可為浮點數或分數。如果未強定默認時長,mkvmerge 將嘗試根據使用的容器和/或編解碼器推定軌道的默認時長。 此選項有用的一種情況是當添加 AVC/h.264 基本流時,因為此類流不含關於幀數及各幀默認時長的信息。 對此類文件 mkvmerge 將假定默認時長為 '25fps
',除非被(用戶設置)覆蓋。此選項也可用於在不使用外部時間碼文件的情況下更改視頻軌的 FPS(幀率)。 --nalu-size-length
TID:n
- 強制 NALU 長度為
n
字節。 此變量僅當使用 AVC/h.264 基本流分包器時使用。 如果留空,則默認為 4 字節,然而有的文件包含的所有幀或切片都小於 65536 字節。 對此類文件您可以使用此參數並將長度降為 2。
僅用於視頻軌的選項:
-f
,--fourcc
TID:FourCC
- 強制
FourCC
為指定值。僅對 微軟兼容模式 的視頻軌有效。 --display-dimensions
TID:宽度x高度
- Matroska™ 文件含有兩個設定播放器回放時應當將畫面縮放到的顯示屬性值: 顯示寬度與顯示高度。 可以使用本選項設定這些數值,如 '
1:640x480
'。指定所用數值的其他方法是使用--aspect-ratio
或--aspect-ratio-factor
選項 (參見下文)。 這些選項是互相獨立的。 --aspect-ratio
TID:宽高比|宽度/高度
- Matroska™ 文件含有兩個設定播放器回放時應當將畫面縮放到的顯示屬性值: 顯示寬度與顯示高度。 通過本選項 mkvmerge 可自動根據畫面原始寬高和本選項給定的寬高比計算出顯示寬度和顯示高度。 寬高比可以以浮點數
宽高比
或分數宽度
/高度
的形式給出,如 '16/9
'。指定所用數值的其他方法是使用--aspect-ratio-factor
或--display-dimensions
選項 (參見上下文)。這些選項相互獨立。 --aspect-ratio-factor
TID:系数|n/d
- 另一種設置寬高比的方法是指定一個
系数
。將將原始寬高比與系数
相乘後用作目標寬高比。指定所用數值的其他方法是使用--aspect-ratio
或--display-dimensions
選項 (參見上文)。這些選項互相獨立。 --cropping
TID:左,上,右,下
- 將視頻軌道的像素裁減參數設為指定數值。
--stereo-mode
TID:n|关键词
- 設置 ID 為
TID
的視頻軌的立體視法。 模式既可以是0
到3
之間的數字n
,也可以是 'none(無立體視法)
' (與n
=0
相同), 'right(右眼視角)
' (與n
=1
相同), 'left(左眼視角)
' (與n
=2
相同) or 'both(雙眼視角)
' (與n
=3
相同)。 --compression
TID:压缩方式
- 選擇用於 VobSub 軌道的壓縮方式。注意播放器也得支持該方式。有效的值有 '
none(無壓縮)
'、'zlib
'、'lzo
'/'lxo1x
'、'bz2
'/'bzlib
' 與 'mpeg4_p2
'/'mpeg4p2
'。值 'lzo
'/'lxo1x
' 與 'bz2
'/'bzlib
' 僅當 mkvmerge 附加相應的 liblzo™ 和 bzlib™ 壓縮庫編譯時有效。壓縮方式 'mpeg4_p2
'/'mpeg4p2
' 是一種稱為 header removal 的特殊壓縮方式,只對 MPEG4 part 2 視頻軌可用。其他壓縮方式是可用於所有類型軌道的通用壓縮方式。默認為 'zlib
' 壓縮。此壓縮方式也是幾乎所有回放程序都支持的壓縮方式。無法保證對除 'none(無壓縮)
' 以外的其他壓縮方式的支持。
僅適用於文本字幕軌道的選項:
--sub-charset
TID:字符集
- 為指定軌道 ID 指定所用字符集,用以轉為 UTF-8 編碼的 UTF-8 字幕。如果未指定字符集,則將根據當前區域設置推算字符集。注意對於從 Matroska™ 文件或 Kate 流中讀取的字幕不必指定字符集,因為在這些格式中已使用 UTF-8 編碼儲存。關於 mkvmerge 如何在字符集間進行轉換的說明請參見關於 文本文件與字符集 的段落。此選項可以對同一輸入文件多次使用,通過每次選擇不同軌道 ID 分別應用到多個軌道。
其他選項:
-i
,--identify
文件名
- 將使 mkvmerge 探查單個文件並報告其類型、文件中包含的軌道及其軌道 ID。如果使用了本選項,唯一可用的其他選項就是文件名。
-l
,--list-types
- 列出受支持的輸入文件類型。
--list-languages
- 列出所有語言及其 ISO639-2 代碼,這些代碼可以在
--language
選項中使用。 --priority
优先级
- 設置 mkvmerge 運行時的進程優先級。有效的值為 '
lowest(最低)
', 'lower(較低)
', 'normal(普通)
', 'higher(較高)
' 與 'highest(最高)
'。如果未予設定,則使用 'normal(普通優先級)
'。在 類-Unix 系統中 mkvmerge 將使用 nice(2) 功能。因此只有超級用戶才能使用 'higher(較高優先級)
' 與 'highest(最高優先級)
'。對於 Windows 用戶來說所有值都可用。 --command-line-charset
字符集
- 設定在命令行給出的字符串的字符集,用於轉為其他字符集。默認為系統當前區域設置中所給定的字符集。此設置將應用到以下選項的變量:
--title
、--track-name
及--attachment-description
。 --output-charset
字符集
- 設置輸出的字符串應被轉換到何種字符集。默認為系統當前區域設置中所給定的字符集。
-r
,--redirect-output
文件名
- 將所有信息輸出至文件
文件名
而不是在命令行顯示。 儘管該操作可以用輸出重定向輕鬆實現,但在某些情況下還需要靠它:如當終端在寫入文件之前重新解釋(覆蓋輸出)時。 將優先使用通過--output-charset
設定的字符集。 --ui-language
语言代码
- 強制使用語言代碼為
语言代码
的翻譯(如 'de_DE
' 對應德文翻譯)。使用LANG
,LC_MESSAGES
及LC_ALL
這些環境變量更好。如果在语言代码
處輸入 'list
',mkvmerge 將輸出可用翻譯列表。 @
選項文件- 從文件
选项文件
中讀取額外的命令行參數。首個非空白字符為井號 ('#
') 的行將被當作注釋對待,在處理過程中將被忽略。各行開頭與結尾的空白將被除去。各行必須恰好含有一個選項。沒有元字符轉義。命令行 'mkvmerge -o "我的文件.mkv" -A "一部影片.avi" 聲音.ogg' 可以轉換為下述選項文件:
# 输出到文件 "我的文件.mkv"。 -o 我的文件.mkv # 只取 "一部影片.avi" 中的视频。 -A 一部影片.avi 声音.ogg
--capabilities
- 列出編譯時附加的可選功能並退出。輸出信息的第一行是版本信息。接下來的每行包含一個單詞,各單詞的出現意味著編譯時附加了相應功能。這些功能包括:
- '
BZ2
' -- bzlib™ 壓縮庫。影響--compression
選項可用的壓縮方式。 - '
LZO
' -- lzo™ 壓縮庫。影響--compression
選項可用的壓縮方式。 - '
FLAC
' -- 讀取原始 FLAC 文件,以及處理其他容器中的 FLAC 軌道,例如 Ogg™ 或 Matroska™ 容器中的。
- '
-h
,--help
- 顯示用法信息並退出。
-V
,--version
- 顯示版本信息並退出。
用法
用戶可以選擇各文件中 mkvmerge 應該使用的軌道。它們都將被封裝到 -o
所指定的文件中。可通過 -l
選項獲取已知(且受支持的)來源格式列表。
示例
假定您有個名為 我的影片.avi 的文件,以及分開存放的音頻軌如 '我的影片.wav
'。您希望先將音頻編碼為 OggVorbis™:
$ oggenc -q4 -o 我的影片.ogg 我的影片.wav
幾分鐘後您就可以合併視頻和音頻了:
$ mkvmerge -o 我的有声影片.mkv 我的影片.avi 我的影片.ogg
如果您的 AVI 文件已經含有一條音頻軌,則將同時複製該軌道(只要 mkvmerge 支持該音頻格式)。要避免此狀況,只需要這樣
$ mkvmerge -o 我的有声影片.mkv -A 我的影片.avi 我的影片.ogg
又過了幾分鐘,您又製作了另一條音頻軌,如 導演評論或者是另一種語言的配音,您生成的文件名是 '我影片的另一音軌.wav
'。 再進行一次編碼操作,然後將其合併:
$ oggenc -q4 -o 我影片的另一音轨.ogg 我影片的另一音轨.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™ 包。大體過程是這樣的:
- 從源文件中提取原始字幕流: $ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie
- 使用 gocr 將生成的 PGM 圖像轉為文本: $ pgm2txt mymovie
- 對生成的文本文件進行拼寫檢查: $ ispell -d american *txt
- 將文本文件轉為 SRT 文件: $ srttool -s -w -i mymovie.srtx -o mymovie.srt
這樣生成的文件可用作 mkvmerge 的輸入文件:
$ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt
如果您希望為指定軌道指定語言,這將很容易完成。首先找到您所需語言的 ISO639-2 代碼。mkvmerge 會為您列出所有代碼:
$ 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 3 无语言代码的.mkv --language 0:eng 英语.srt --default-track 0 --language 0:fre 法语.srt
如果您在 mkvinfo 的輸出信息中沒找到您指定的語言或默認軌標記,請參閱關於 默認值 的段落。
軌道 ID
mkvmerge 的一些選項要求提供軌道 ID 以指定應應用到的軌道。 當讀取器分離當前輸入文件時,或者使用 --identify
選項調用 mkvmerge 時這些軌道 ID 會被顯示出來。此類輸出的一個示例:
$ mkvmerge -i v.mkv File 'v.mkv': container: Matroska™ Track ID 1: video (V_MS/VFW/FOURCC, DIV3) Track ID 2: audio (A_MPEG/L3)
軌道 ID 通常這樣分配:
- AVI 文件: 視頻軌 ID 為 0。音頻軌的 ID 由 1 開始升序分配。
- AAC、AC3、MP3、SRT 與 WAV 文件: 此類文件中唯一的 '軌道' 的 ID 為 0。
- Ogg/OGM 文件: 軌道 ID 按在文件中被找到的順序由 0 開始分配。
- Matroska™ 文件: 軌道 ID 與 mkvinfo 所報告的相同。注意 不是 軌道 UID。
特殊的軌道 ID '-1
' 是個百搭號,它將使給定的開關應用到從輸入文件中讀到的所有軌道。
使用軌道 ID 的選項的描述中均含有 'TID
'。此外下列選項也使用軌道 ID: --atracks
、--vtracks
、--stracks
以及 --btracks
。
文本文件與字符集轉換
注意
此段落可應用到 MKVToolNix 中的所有程序,儘管該段僅提及了 mkvmerge。
Matroska™ 文件中的所有文本均使用 UTF-8 編碼。這意味著 mkvmerge 需要將讀取到的文本文件以及從命令行收到的文本從其他字符集轉換為 UTF-8。相反,這意味著 mkvmerge 的輸出信息同樣需要由 UTF-8 轉回原來的字符集,例如來自 --ui-language
所選的非英語界面或來自 Matroska™ 文件中的文本。
mkvmerge 根據是否有 字節順序標記 (英文縮寫: BOM) 出現以及系統的當前區域來進行自動轉換。如何根據區域推定字符集取決於 mkvmerge 所執行在的作業系統。
以 BOM 開頭的文本文件已經使用一種 UTF 模式編碼。mkvmerge 支持以下五種模式: UTF-8、UTF-16 小端序 及 大端序、UTF-32 小端序 及 大端序。含 BOM 的文本文件將被自動轉換為 UTF-8。對此類文件設定字符集的參數 (如 --sub-charset
) 將被直接忽略,無通知。
在 類-Unix 系統 mkvmerge 將使用 setlocale(3) 系統指令,它將返迴環境變量 LANG
、LC_ALL
及 LC_CYPE
。輸出的字符集通常是 UTF-8 或 ISO-8859-* 家族之一,將被用於所有文本文件操作以及編碼命令行上的字符串和輸出到命令行。
在 Windows 上 mkvmerge 實際上使用兩種不同的字符集,因為要執行 Windows shell 程序 cmd.exe。第一個字符集由 GetCP()
系統指令決定。此字符集用作文本文件轉換和 MKVToolNix 工具包中 GUI 程序所顯示的所有元素的默認字符集。cmd.exe 使用另一個字符集,由 GetACP()
系統指令決定。這是命令行讀入的所有字符串以及輸出到命令行的所有字符串的默認字符集。
現有下述選項支持指定字符集:
--sub-charset
用於文本字幕文件以及存儲於字符集含糊的容器格式(如 Ogg 文件)中的文本字幕軌,--chapter-charset
用於章節文本文件以及存儲於字符集含糊的容器格式(如 Ogg 文件的章節信息,軌道和文件標題等;MP4 文件的章節信息)中的章節和文件標題,--command-line-charset
用於所有命令行上的字符串,--output-charset
用於輸出到命令行或文件(當使用--redirect-output
選項重定向輸出時)的字符串。
字幕
可在 Matroska™ 文件中嵌入多種文本字幕格式目前 mkvmerge 支持純文本、VobSub 以及 Kate 字幕格式。文本字幕將被重新編碼為 UTF-8 以確保播放器能準確顯示(關於 mkvmerge 如何在字符集間進行轉換的說明請參見關於 文本文件與字符集 的段落)。Kate 字幕已經是 UTF-8 編碼,因此不會被重新編碼。
目前支持以下字幕格式:
- Subtitle Ripper (SRT) 文件
- Substation Alpha (SSA) / 高級 Substation Alpha 腳本 (ASS)
- OggKate 流
- VobSub 位圖字幕文件
文件連結
Matroska™ 支持文件連結,即聲明當前文件的前趨與後繼文件是哪個文件。嚴謹地講,被連接的不是文件而是 Matroska™ 剪輯。鑑於大多數文件只含有一個 Matroska™ 剪輯,以下說明中將使用術語 '文件連結',儘管 '剪輯連結' 更為貼切。
各剪輯由唯一的 128 位寬的剪輯 UID 確定。此 UID 是由 mkvmerge 自動創建的。連結主要通過將前後文件的剪輯 UID (英文縮寫: SID) 置於剪輯頭部信息中完成。mkvinfo 會在找到 SID 時輸出它們。
如果文件被切割為多段,且啟用了連結功能,則文件的時間碼不會重新從 0 開始,而是會從上一個文件結束的地方繼續計算。這樣可以保留絕對時間,即使之前的文件不可用 (如進行流式處理時)。如果未使用連結功能,各文件的時間碼應從 0 開始。mkvmerge 默認不啟用文件連結。如果您希望啟用,可以通過 --link
選項打開。此選項僅當同時啟用切割功能時有用。
無論是否開啟了切割功能,用戶都可以讓 mkvmerge 將生成的文件與指定的 SID 建立連結。可通過 --link-to-previous
與 --link-to-next
選項實現。 這些選項只接受 mkvinfo 所輸出的 SID 格式: 16 個 0x00
與 0xff
之間的十六進位數,各數字帶有 '0x
' 前綴,如 '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93
'。還可以選用另一種較短的格式: 16 個 0x00
與0xff
之間的十六進位數,無 '0x
' 前綴,無空格,如 '41da7366d9cfb21eae78ebb45ecab393
'。
如果啟用了切割功能,第一個文件將與通過 --link-to-previous
給定的 SID 建立連結,而最後一個文件將與通過 --link-to-next
給定的 SID 建立連結。如果未啟用切割功能,唯一的輸出文件將同時與給定的兩個 SID 建立連結。
默認值
Matroska™ 規範提到,一些元素有其默認值。通常為了節省空間,如果一個元素的值等同於其默認值,它將不被寫入文件。用戶在 mkvinfo 的輸出信息中可能發現缺失的元素有 语言
和 默认轨标记
。 语言
的默認值是 English ('eng
'),默认轨标记
的默認值是 true
。因此如果您對一條軌道應用選項 --language 0:eng
,它將不在 mkvinfo 的輸出信息中顯示。
附件
或許您希望將一些照片與您的 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-type application/octet-stream --attach-file 很酷的字体.ttf
如果含有附件的 Matroska™ 文件被用作輸入文件,mkvmerge 會將附件複製到新文件中。要複製哪些文件、不複製那些文件的選擇可以通過 --attachments
與 --no-attachments
選項修改。
章節
Matroska™ 章節系統比大家知道的舊系統—— OGM 中所使用的——更為強大。完整的規範可以在 Matroska™ 網站 找到。
mkvmerge 支持輸入兩種章節文件。第一種格式,叫作 簡單章節格式,與 OGM tools 所用的相同。第二種是基於 XML 的章節格式,它支持 Matroska™ 的所有章節功能。
簡單章節格式
此格式由成對的相繼以 'CHAPTERxx=
' 與 'CHAPTERxxNAME=
' 開頭的行組成。單數行包含起始時間碼,而雙數行包含標題。這是一個示例:
CHAPTER01=00:00:00.000 CHAPTER01NAME=导入部分 CHAPTER02=00:02:30.000 CHAPTER02NAME=宝宝准备摇 CHAPTER03=00:02:42.300 CHAPTER03NAME=宝宝摇屋子
mkvmerge 將轉換每兩行為一個 Matroska™ 章節單位(ChapterAtom)
。這種情況不會設定任何 章節軌道號(ChapterTrackNumber)
,也就是說所有章節被應用到文件的所有軌道。
由於是文本文件,可能需要進行字符集轉換。關於 mkvmerge 如何在字符集間進行轉換的說明請參見關於 文本文件與字符集 的段落。
基於 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>eng</ChapterLanguage> </ChapterDisplay> <ChapterAtom> <ChapterTimeStart>00:00:46.000</ChapterTimeStart> <ChapterTimeEnd>00:01:10.000</ChapterTimeEnd> <ChapterDisplay> <ChapterString>那短短的一节的一部分</ChapterString> <ChapterLanguage>eng</ChapterLanguage> </ChapterDisplay> </ChapterAtom> </ChapterAtom> </EditionEntry> </Chapters>
使用此格式可以做到三件簡單章節格式做不到的事:
- 可以設置章節終止處的時間戳,
- 章節可以嵌套,
- 可以設置語言與國家。
mkvtoolnix 分發包的 doc
子目錄包含了一些典型示例文件。
一般性備註
mkvmerge 切割文件時會同時適當調整章節。這意味著每個文件只包含應用到該文件的章節項,時間碼也將被調整到與各輸出文件相匹配。
mkvmerge 能夠從 Matroska™ 源文件中複製章節,除非使用 --no-chapters
選項明令禁用。來自各類來源 (Matroska™ 文件、Ogg 文件、MP4 文件、章節文本文件) 的章節通常不被合併,而是分成多個 ChapterEditions(章節版本)
。僅當從多個 Matroska™ 或 XML 文件讀取的章節具有相同的版本 UID 時,章節才會被合併為單個 ChapterEdition
。如果在其他情況下需要此類合併,用戶需要先用 mkvextract 從所有來源提取章節,手動合併 XML 文件然後再混流。
標籤
介紹
Matroska™ 廣泛支持廢棄標籤,還支持一種新式的、類似其他大多數容器使用的較簡單的標籤系統: KEY=VALUE
。然而,在 Matroska™ 中這些標籤也可以嵌套,KEY
與 VALUE
都是屬於它們自身的元素。示例文件 example-tags-2.xml
展示了如何使用這個新系統。
標籤細述
Matroska™ 標籤不會自動應用到整個文件上。它們可以應用到整個文件,還可以應用到文件的不同部分: 一個或多個軌道, 一個或多個章節, 甚至是兩者的組合。Matroska™ 規範 有這方面的更多詳情。
重要的一點是標籤通過 Targets
Matroska™ 標籤元素與軌道或章節相連,而用於此連結的 UID 並非 mkvmerge 常用的軌道 ID。而是 mkvmerge 自動計算而來 (當軌道來自非 Matroska™ 文件時) 或當軌道源文件是 Matroska™ 文件時複製而來的 的 UID。因此在文件被 mkvmerge 處理過之前很難知道應該在標籤文件中使用哪些 UID。
mkvmerge 支持兩個為 Matroska™ 文件添加標籤的選項: --global-tags
與 --tags
選項。不同之處在於前者,--global-tags
,將通過移除所有上文提到的 Targets
元素使標籤應用到整個文件。 而後者,--tags
,將使 mkvmerge 為通過 --tags
選項的 TID
部分指定的標籤自動插入 UID。
示例
假定您希望為從一個 AVI 文件讀取的視頻軌道添加標籤。mkvmerge --identify 文件.avi 告訴您該視頻軌道的 ID (不要將此 ID 與 UID 混淆!) 為 0。於是您創建了一個標籤文件,省去了所有 Targets
元素,然後這樣調用 mkvmerge:
$ mkvmerge -o 文件.mkv --tags 0:标签.xml 文件.avi
標籤文件格式
mkvmerge 支持基於 XML 的標籤文件格式。此格式是以 Matroska™ 規範 為依據嚴格制定的。MKVToolNix 的程序以及源碼分發包都含有名為 example-tags-2.xml
的示例文件,該文件已簡明地列出了所有已知的可用作實際處理的基本標籤。
基本要點有:
- 最外層的元素必須為
<Tags>
。 - 實際意義上的標籤放在
<Tag>
XML 標籤對中。 - 標籤內容前後的空白將被忽略。
數據類型
新的 Matroska™ 標籤系統只識別兩種數據類型,UTF-8 字串與二進位類型。前者用於標籤名稱和 <String>
元素,而二進位類型用於 <Binary>
元素。
由於二進位數據自身與 XML 文件不相容,mkvmerge 支持另兩種儲存二進位數據的方法。如果 XML 標籤的內容以 '@
' 開頭,則後續文本將被作為文件名對待。相應文件的內容將被複製到 Matroska™ 元素中。
還有一種可能,即數據經 Base64 編碼。這是將二進位數據轉換為一定的 ASCII 字集字符,在電子郵件等程序中有所應用。mkvextract 將將二進位元素以 Base64 編碼的數據的形式輸出。
已被廢棄的標籤系統可識別更多的數據類型,這在 Matroska™ 官方的標籤規範中可以找到。由於 mkvmerge 不再支持此系統,此處不對這些類型作多餘說明。
Matroska™ 文件規劃
Matroska™ 文件規劃非常靈活。mkvmerge 將按預先定義的方式渲染文件。生成的文件是這樣的:
[EBML 頭] [剪輯 {元定位 #1} [剪輯信息] [軌道信息] {附件} {章節} [簇 1] {簇 2} ... {簇 n} {索引} {元定位 #2} {標籤}]
大括號中的元素是可選的,依所用的內容和選項而定。有兩點要注意的:
- 元定位 #1 只包含很少量的 level 1 元素,且僅當它們存在時才包含:附件、章節、索引、標籤以及元定位 #2。較早版本的 mkvmerge 亦曾將簇放置在元定位元素中。因此應留給不精確的傳言一些空間——真相總會大白。 現在只有簇才被儲存在元定位 #2 中,元定位 #1 將引用元定位元素 #2。
- 附件、章節和標籤元素僅當被添加後才會出現。
允許的最短小的 Matroska 文件是像這樣的:
[EBML 頭] [剪輯 [剪輯信息] [軌道信息] [簇 1]]
這也是純音頻文件的樣子。
外部時間碼文件
mkvmerge 允許用戶為各軌道選擇特定的時間碼。這可用來創建包含可變幀率視頻或音頻中有空隙的文件。這種情況下的幀是 mkvmerge 創建各 Matroska™ 塊的單位。對視頻來說恰好是一幀,對音頻來說是相應音頻類型的一個數據包。例如對 AC3 來說是包含 1536
採樣的一個數據包。
用於軌道追加合併的時間碼必須只指定給一系列(同一)軌道的第一部分。例如當您追加合併兩個文件,v1.avi 與 v2.avi,且希望使用時間碼時,您的命令行必須像這樣組織:
mkvmerge ... --timecodes 0:我的时间码.txt v1.avi +v2.avi
mkvmerge 可識別四種格式的時間碼。版本號在時間碼文件的第一行內。空行,只含有空格的行,以及以 '#
' 開頭的行在處理時將被忽略。
時間碼文件格式 v1
此格式的第一行是版本聲明。第二行則聲明默認的幀率。 接下來的各行包含由逗號分隔的三個數字: 起始幀(0
代表第一幀)、終止幀以及此範圍內的幀率。FPS(幀率) 為浮點數,小數點用 '.
' 表示。各行定義的範圍間可以有間隔,間隔內將使用默認的 FPS。一個示例:
# timecode format v1 assume 27.930 800,1000,25 1500,1700,30
時間碼文件格式 v2
此格式中每行包含相應幀的時間碼。此時間碼必須以毫秒為精度。可以使浮點數,但不強求。您指定的時間碼行數 必須 不少於對應軌道的幀數。此類文件中的時間碼必須經過排序。 以 25fps 為例:
# timecode format v2 0 40 80
時間碼文件格式 v3
此格式中各行包含時長(秒數),後接(可選)幀率。 二者均可為浮點數。 如果未提供幀率,則採用默認的幀率。 對於音頻,您應當讓編解碼器自行計算各幀的時間碼。 這樣您應當使用 0.0
作為幀率。 您可以使用 'gap
' 關鍵詞後接空隙時長在流中創建空隙。 以音頻文件為例:
# timecode format v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236
時間碼文件格式 v4
此格式與 v2 格式相似。 唯一的不同在於時間碼不必經過排序。 通常不應使用此格式。
退出代碼
mkvmerge 退出時會返回以下三個退出代碼中的一個:
0
-- 此退出代碼說明已成功完成混流。1
-- 這種情況下 mkvmerge 至少輸出了一條警告信息,但混流並未因之中止。 警告信息以文字 '警告:
' 為前綴。根據問題的不同,生成的文件可能是好的,也可能不是。 強烈建議用戶檢查警告信息以及生成的文件。2
-- 此退出代碼用於錯誤發生之後。 mkvmerge 在輸出錯誤信息後即中斷處理。錯誤信息可能是錯誤的命令行參數,也可能是損壞文件的讀取/寫入錯誤。
參閱
網絡
最新版本總可以在 MKVToolNix 主頁 找到。