Mkvpropedit
(作者:Moritz Bunkus;譯者:XsLiDian;複製自 mkvpropedit)
名稱
mkvpropedit — 在不進行完整的重新混流的情況下修改現有 Matroska™ 文件的屬性
概要
mkvpropedit [選項] {源文件名} {操作}
說明
此程序可分析現有 Matroska™ 文件,並修改其部分屬性。然後它將將變更寫入現有文件。可修改的屬性包括剪輯信息元素(如標題)和軌道頭部(如語言代碼、'默認軌' 標記或軌道名稱)。
選項:
-l
,--list-property-names
- 列出所有已知的可編輯的屬性名稱、它們的類型(字符串型、整數型、布爾型等等)及簡短說明。程序隨後將退出執行。因此不必提供
source-filename
參數。 -p
,--parse-mode
模式
- 設置解析模式。參數
模式
可以為 'fast(快速)
'(此項為默認值)或 'full(完整)
'。'fast(快速)
'模式不解析整個文件,而是使用元定位元素確定源文件中所需元素的位置。99% 的情況下這就足夠了。但如果碰到不含元定位元素或者元定位元素損壞的文件,用戶可能得考慮 'full(完整)
' 解析模式。完整掃描文件可能要花費幾分鐘,而快速掃描只需要幾秒鐘。
操作:
-e
,--edit
选择器
- 設置後續的 添加、設置 或 刪除 操作所針對的 Matroska™ 文件區域(即剪輯信息或某個軌道的頭部)。此選項可多次使用,以同時修改多個元素。關於完整的語法說明請參見關於 編輯選擇器 的段落。
-a
,--add
名称
=数值
- 添加名為
名称
、值為数值
的屬性。即使已存在這樣的屬性,也將執行添加屬性操作。注意大多數屬性是唯一的,不能出現多個。 -s
,--set
名称
=数值
- 設置所有名為
名称
的屬性的數值為数值
。如果不存在這樣的屬性,則將添加該屬性。 -d
,--delete
名称
- 刪除所有名為
名称
的屬性。注意部分屬性是必需的,不能刪除。
其他選項:
--command-line-charset
字符集
- 設定在命令行給出的字符串的字符集,用於轉為其他字符集。默認為系統當前區域設置中所給定的字符集。
--output-charset
字符集
- 設置輸出的字符串應被轉換到何種字符集。默認為系統當前區域設置中所給定的字符集。
-r
,--redirect-output
文件名
- 將所有信息寫入文件
文件名
而不是輸出到命令行。 儘管該操作可以用輸出重定向輕鬆實現,但在某些情況下還需要靠它:如當終端在寫入文件之前重新解釋(覆蓋輸出)時。將優先使用通過--output-charset
設定的字符集。 --ui-language
语言代码
- 強制使用語言代碼為
语言代码
的翻譯(如 'de_DE
' 對應德文翻譯)。使用LANG
,LC_MESSAGES
及LC_ALL
這些環境變量更好。如果在语言代码
處輸入 'list
',mkvextract 將輸出可用翻譯列表。 -v
,--verbose
- 使輸出信息更詳盡,且每當讀取到重要的 Matroska™ 元素時就將其顯示。
-h
,--help
- 顯示用法信息並退出。
-V
,--version
- 顯示版本信息並退出。
@
選項文件- 從文件
选项文件
中讀取額外的命令行參數。首個非空白字符為井號 ('#
') 的行將被當作注釋對待,在處理過程中將被忽略。各行開頭與結尾的空白將被除去。各行必須恰好含有一個選項。沒有元字符轉義。命令行 'mkvpropedit 源.mkv --edit track:a2 --set name=注釋' 可以轉換為下述選項文件:
# 修改 源.mkv 源.mkv #编辑第二条音频轨 --edit track:a2 # 并设置标题为 '注释' --set title=注释
編輯選擇器
--edit
選項設置後續的 添加, 設置 或 刪除 操作所影響的 Matroska™ 文件區域(剪輯信息或者特定軌道的頭部)。在出現另一個 --edit
選項之前,此選項將一直有效。此選項的參數就叫做編輯選擇器。
剪輯信息
可以通過這三個詞中的任意一個選擇剪輯信息: 'info
'、'segment_info
' 或 'segmentinfo
'。剪輯信息包含的屬性包括剪輯標題、剪輯 UID 等。
軌道頭部
可用於選擇軌道頭部的選擇器稍顯複雜:所有以 'track:
' 開頭的變體。軌道頭部屬性包括如語言代碼、'默認軌' 標記、軌道名稱等屬性。
track:
n
- 如果參數
n
為數字,則將選擇第n
條軌道。軌道順序與 mkvmerge 的--identify
選項所輸出的相同。 track:
t
'n
- 如果參數以字母
t
後接n
開頭,則將選擇選定軌道類型中的第n
條軌道。軌道類型參數t
必須為下述四個字母中的一個: 'a
' 代表音頻軌道,'b
' 代表按鈕軌道,'s
' 代表字幕軌道,'v
' 代表視頻軌道。軌道順序與 mkvmerge 的--identify
選項所輸出的相同。 track:
=uid
- 如果參數以 '
=
' 後接uid
開頭,則將選擇軌道 UID 元素等於此uid
的軌道。軌道 UID 可通過 mkvinfo 獲取。 track:
@数字
- 如果參數以 '
@
' 後接数字
開頭,則選擇軌道號元素等於数字
的軌道。軌道號可以通過 mkvinfo 獲取。
注
由於軌道編輯選擇器的特性,一些選擇器所匹配的軌道頭部可能是相同的。在此情況下,這些編輯選擇器的所有操作將被按照在命令行給出的順序合併運行。
示例
下面的示例將編輯一個名為 '電影.mkv
' 的文件。示例中將設置剪輯標題並修改一條音頻軌和一條字幕軌的語言代碼。附註,本示例可以簡寫,即省去 --edit
選項,因為在第一個 --edit
選項之前的所有選項默認編輯的就是剪輯信息元素。
$ mkvpropedit 电影.mkv --edit info --set "title=影片" --edit track:a1 --set language=fre --edit track:a2 --set language=ita
第二個示例,將 '默認軌標記' 從第一條字幕軌移除並設置到第二條字幕軌上。注意 mkvpropedit 與 mkvmerge 不同,不會在將另一個軌道的 '默認軌標記'設為 '1' 的時候自動將其他軌道的標記設為 '0'。
$ mkvpropedit 影片.mkv --edit tracks:s1 --set flag-default=0 --edit tracks:s2 --set flag-default=1
退出代碼
mkvpropedit 退出時會返回以下三個退出代碼中的一個:
0
-- 此退出代碼說明已成功完成修改。1
-- 這種情況下 mkvpropedit 至少輸出了一條警告信息,但修改並未因之中止。 警告信息以文字 '警告:
' 為前綴。根據問題的不同,生成的文件可能是好的,也可能不是。 強烈建議用戶檢查警告信息以及生成的文件。2
-- 此退出代碼用於錯誤發生之後。 mkvpropedit 在輸出錯誤信息後即中斷處理。錯誤信息可能是錯誤的命令行參數,也可能是損壞文件的讀取/寫入錯誤。
參閱
網絡
最新版本總可以在 MKVToolNix 主頁 找到。