mkvinfo -- 输出关于 Matroska(tm) 文件中各轨的信息

# 1. 概要

mkvinfo 選項 {輸入檔名}

# 2. 摘要說明

本程序可列出 Matroska(tm)文件中包含的所有轨道，输出信息可以限定为文件的轨道列表以及所用编解码器的信息。

Option | Description
--- | ---
-a, --all | 默认情况下，mkvinfo(1) 会在读取到首个簇时停下来。它也不会显示某些元素（通常是反复出现的元素）。通过此选项可以让 mkvinfo(1) 忽略冗余级别继续处理，并显示所有元素。
-c, --checksums | 计算并显示各帧的 Adler-32 校验码。仅当调试时有用处。
-o, --continue | 默认情况下，mkvinfo(1) 会在读取到首个簇时停下来。通过此选项可以让 mkvinfo(1) 忽略冗余级别继续处理。
-p, --hex-positions | 忽略冗余级别，以十六进制显示所有元素的位置。
-P, --positions | 忽略冗余级别，以十进制显示所有元素的位置。
-s, --summary | 仅显示 mkvinfo(1) 所获取信息的简要概述，而非各元素。
-t, --track-info | 在“详细”模式下为各轨道显示统计信息。如果“详细”程度为 0 级，则将同时将级别设为 1。
-x, --hexdump | 以十六進位轉儲形式顯示每影格的前 16 位元組。
-X, --full-hexdump | 以十六進位轉儲形式顯示每影格的全部位元組。
-z, --size | 顯示每個元件包含表頭的大小。
--command-line-charset 字元集 | 設定在命令列顯示的字串字元集，以轉換為其他字元集。預設為目前系統所在位置指定的字元集。
--output-charset 字元集 | 設定要轉換為輸出字串的字元集。預設為目前系統所在位置指定的字元集。
-r, --redirect-output 檔名 | 將所有訊息寫入到檔案 檔名 而不是命令列。儘管使用輸出重新導向可以輕鬆完成此操作，但在某些情況下需要使用此選項: 當終端在將輸出寫入文件之前重新解釋（覆蓋）輸出時。 優先使用通過 --output-charset 設定字元集。
--no-bom | Normally text files that are created & encoded in one of the UTF variants will start with a byte order marker (BOM). Using this option disables writing that byte order marker.
--ui-language 語言碼 | 強制使用語言 編碼 對應的的翻譯(例如 'zh_TW' 為臺灣正體中文翻譯)。 在編碼欄位中輸入'list' 讓程式輸出時使用可用的對應翻譯清單。
--abort-on-warnings | 發出第一個警告後，終止程式。程式的結束碼為 1 。
--debug 主題 | 針對特定功能開啟除錯。此選項適用於開發者。
--engage 功能 | 開啟實驗中功能。 透過mkvinfo --engage list啟用可用的列表。這些功能不會在正常情況下使用。
--gui-mode | 開啟 GUI 模式。在這種模式中，可能會輸出特殊格式的行數，可以呈現控制的 GUI 發生什麼事。這些訊息會以 '#GUI#訊息'呈現。訊息可能包含機碼/值，例如 '#GUI#訊息#機碼1=值1#機碼2=值2…'。 無論是訊息或是機碼都不會轉為譯文，而且永遠使用 *英語* 輸出。
-v, --verbose | 使输出更详尽。请参阅关于 “详细”程度 的段落获取在哪些层级将输出哪些信息的描述。
-h, --help | 顯示使用方式並退出。
-V, --version | 顯示版本資訊並離開。
@options-file.json | 從檔案選項檔讀取其他命令列引數。有關此類檔案支援格式的完整說明，請參閱 mkvmerge(1) 文件中的 "選項檔案" 章節。

# 3. 詳細資訊層級

-v 选项可以使 mkvinfo(1) 增强其“详细”程度并输出关于当前文件的更多信息。

在 level 0 mkvinfo(1) 仅输出它发现的轨道头及其类型。头部解析完毕后（更专业地：遇到首个簇时），mkvinfo(1) 将退出执行。在此层级，定位头项与 cue 索引不会显示出来——即使它们位于轨道信息之前。

在 level 1 mkvinfo(1) 同样将输出在整个文件中遇到的所有 Matroska(tm) 元素，此外还将输出定位头项与 cue 索引项。如果启用了简要模式，mkvinfo(1) 还将输出各帧位置。

通过选项「--continue」可以实现相同的效果。

在 level 2 mkvinfo(1) 同样将输出定位头项与 cue 索引项，以及文件中各 Matroska(tm) 元素被发现的位置。

通过选项「--all --positions」可以实现相同的结果。

在 level 3 及更高层级 mkvinfo(1) 将输出一些与 Matroska(tm) 元素不直接相连的信息。对于其他元素，将只输出发现的基本信息。Level 3 增加了元信息以便调试（换句话说：它是为开发人员设计的）。Level 3 输出的所有行都以方括号嵌套以便过滤。

# 4. 文字檔案與字元集轉換

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

# 5. 結束代碼

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

- 0 -- 此結束代碼表示執行已成功完成。

- 1 -- 在此情況下 mkvinfo(1) 輸出時至少有一則警告，但動作仍然進行。警告訊息會在前端出現 '警告:' 字樣。

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

# 6. 環境變數

mkvinfo(1) 使用決定系統的地區設定的變數 (例如： LANG 與 LC_* 系列)。 附加變數：

Option | Description
--- | ---
MKVINFO_DEBUG, MKVTOOLNIX_DEBUG 與其的簡短形式 MTX_DEBUG | 視為通過 --debug 選項傳遞的內容。
MKVINFO_ENGAGE, MKVTOOLNIX_ENGAGE 與其的簡短形式 MTX_ENGAGE | 視為通過 --engage 選項傳遞的內容。

# 7. 參閱

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

# 8. 網路

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