名前

mkvpropedit — 再MUXすることなく、既存のMatroska™ファイルのプロパティを修正する

書式

mkvpropedit [options] {source-filename}

説明

このプログラムは、既存のMatroska™ファイルを解析し、そのプロパティのいくつかを修正します。そして、それらの修正を既存のファイルに書き込みます。プロパティの中で変更可能なのは、セグメント情報エレメント(例えばタイトル)と、トラックヘッダ(例えば言語コードや'デフォルトトラック'フラグ、トラック名)です。

オプション:

-l, --list-property-names

既知の編集可能なプロパティの名前、型(文字列、整数、真偽値等)、短い説明を一覧表示します。その後、プログラムは終了します。よって、source-filenameパラメータを指定する必要はありません。

-p, --parse-mode mode

解析モードを設定します。'mode'パラメータは'fast'(デフォルト)と'full'のどちらかを指定できます。'fast'モードはファイル全体を解析するのではなく、メタシークエレメントを使ってソースファイル内の必要なエレメントを探します。99%の場合これで十分です。しかし、メタシークエレメントを含まないファイルや破損したファイルに対しては'full'解析モードを指定する必要があるかもしれません。'full'スキャンには数分かかることがありますが、'fast'スキャンには数秒しかかかりません。

アクション:

-e, --edit selector

このオプション以降のaddsetdeleteアクションが適用されるMatroska™ファイルセクション(セグメント情報または特定のトラックのヘッダ)を指定します。このオプションは、複数のエレメントを修正するために、複数回指定することができます。

文法の完全な説明は、エディットセレクタのセクションを参照してください。

-a, --add name=value

nameで指定された名前のプロパティをvalueで指定した値で追加します。プロパティは、既にその名前のプロパティが存在する場合も追加されます。ほとんどのプロパティは一意的で、複数回追加できないことに注意してください。

-s, --set name=value

見付けた全ての、プロパティ名がnameであるプロパティの値を、valueに設定します。そのようなプロパティが存在しないときは、プロパティは追加されます。

-d, --delete name

見付けた全ての、プロパティ名がnameであるプロパティを削除します。いくつかのプロパティは必須で、削除できないことに注意してください。

その他のオプション:

--command-line-charset character-set

コマンドライン文字列の文字コードを指定します。デフォルトは、システムの現在のロケールの文字コードになります。

--output-charset character-set

出力する文字コードを指定します。デフォルトは、システムの現在のロケールの文字コードになります。

-r, --redirect-output file-name

全てのメッセージをコンソールではなくfile-nameで指定したファイルに書き出します。出力リダイレクトによっても同じことが簡単にできますが、このオプションが必要な場合もあります。ターミナルがファイルに書き込む前に出力を処理してしまう場合などです。--output-charsetによって指定された文字コードは尊重されます。

--ui-language code

指定したcodeを強制的に言語コード(例: 日本語ならば'ja_JP')として使用します。しかし、環境変数LANGLC_MESSAGESLC_ALLを使用したほうが好ましいでしょう。codelistと指定すると、指定できる言語コードの一覧を出力します。

-v, --verbose

出力が冗長になり、Matroska™のエレメントにとって重要なこと全てを、読み込まれるつどに表示していきます。

-h, --help

コマンド書式情報を出力して終了します。

-V, --version

バージョン情報を出力して終了します。

@options-file

options-fileで指定されたファイルから追加のコマンドラインオプションを読み込みます。行で最初の空白文字でない文字がハッシュマーク('#')である行はコメントとして扱われ、無視されます。行頭、及び行末の空白文字は取り除かれます。各行には一つずつしかオプションを指定できません。メタキャラクタのエスケープは必要ありません。

'mkvpropedit source.mkv --edit trach:a2 --set name=Comments'というコマンドラインと同じことは、次のようなオプションファイルによって指定できます。

# Modify source.mkv
source.mkv
# Edit the second audio track
--edit
track:a2
# and set the title to 'Comments'
--set
title=Comments
     

エディットセレクタ

--editオプションは、以降のaddset及びdeleteアクションが適用されるMatroska™ファイルセクション(セグメント情報または特定のトラックヘッダ)を設定します。これは次の--editオプションが見付かるまでずっと有効です。このオプションへの引数はエディットセレクタと呼ばれます。

セグメント情報

セグメント情報は次の3つの単語によって選択されます。'info'、'segment_info'または'segmentinfo'です。これはセグメントタイトルやセグメントUIDなどのプロパティを格納しています。

トラックヘッダ

トラックヘッダはもうちょっとだけ複雑なセレクタで選択されます。全ての場合でセレクタは'track:'で始まります。トラックヘッダプロパティには、言語コード、'デフォルトトラック'フラグやトラック名のようなエレメントがあります。

track:n

パラメータnが数字であれば、n番目のトラックが選択されます。トラックの順番は、mkvmerge(1)--identifyオプションを指定すると出力されるものと同じです。

track:tn

パラメータが一文字の英字tで始まり、次にnが続く場合、あるトラックタイプでn番目のトラックが選択されます。トラックタイプパラメータtは、オーディオトラックを示す'a'、ボタントラックを示す'b'、字幕トラックを示す's'、ビデオトラックを示す'v'の四つのうちの一つでなければなりません。トラックの順番はmkvmerge(1)--identifyオプションで出力される順番と同じです。

track:=uid

パラメータが'='で始まり、次にuidが続く場合は、トラックUIDエレメントがuidのトラックが選択されます。トラックUIDmkvinfo(1)で取得できます。

track:@number

パラメータが'@'で始まり、次にnumberが続く場合は、トラックナンバーエレメントがnumberと等しいトラックが選択されます。トラックナンバーはmkvinfo(1)で取得できます。

注意

トラックエディットセレクタの性質から、いくつかのセレクタが同じトラックヘッダにマッチすることがあります。このような場合、それらのエディットセレクタへの全てのアクションは一つにまとめられ、コマンドラインに指定された順番に実行されます。

下に'movie.mkv'というファイルを編集する例を示します。この例では、セグメントタイトルを設定し、オーディオトラックと字幕トラックの言語コードを修正します。この例は、最初の--editオプションが見付かる前の全てのオプションはデフォルトで結局セグメント情報エレメントを編集するので、最初の--editオプションを省略して短縮できることに注意してください。

$ mkvpropedit movie.mkv --edit info --set "title=The movie" --edit track:a1 --set language=fre --edit track:a2 --set language=ita
  

The second example removes the 'default track flag' from the first subtitle track and sets it for the second one. Note that mkvpropedit(1), unlike mkvmerge(1), does not set the 'default track flag' of other flags to '0' if it is set to '1' for a different track automatically.

$ mkvpropedit movie.mkv --edit tracks:s1 --set flag-default=0 --edit tracks:s2 --set flag-default=1
  

返り値

mkvpropedit(1)は下の3つの返り値を返します。

  • 0 -- この返り値は変更が成功したことを示します。

  • 1 -- この返り値は、一つ以上の警告が出力されましたが、抽出が続行されたことを意味します。警告は '警告:' という文字列を先頭につけて出力されます。出力ファイルが無事であるかどうかは、場合によります。出力ファイルを確認することを強く推奨します。

  • この返り値は、エラーが発生し、エラーメッセージを表示した直後にmkvpropedit(1)が終了したことを示します。エラーメッセージは不正なコマンドラインやファイルI/Oエラー、壊れたファイルなど様々です。

関連項目

mkvmerge(1), mkvinfo(1), mkvextract(1), mmg(1)

ウェブ

最新のバージョンは、常時MKVToolNixのホームページから取得できます。