MKVPROPEDIT(1)

名前
mkvpropedit - 再MUXすることなく、既存のMatroska(TM)ファイルのプロパティを修正する

書式

mkvpropedit [options] {source-filename}

説明

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

オプション:

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

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

アクション:

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

    デフォルトでは、mkvpropedit(1)はセグメント情報のセクションを編集します。

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

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

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

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

-t, --tags selector:filename
    ファイル名からのタグを、このファイル中のタグに追加、あるいは置換します。もしファイル名が空白なら、タグを削除します。mkvpropedit(1)は、mkvmerge(1)が読み込むのと同じXMLタグフォーマットを読み込みます。

    セレクタは、all、global、またはtrackのうちどれか一つを指定してください。allを指定すると、mkvpropedit(1)はファイル中の全てのタグを置換あるいは削除します。globalを指定すると、グローバルタグだけが置換あるいは削除されます。

    trackを指定すると、mkvpropedit(1)は特定のトラックのタグを置換します。また、filenameから読み込まれたタグは、同じトラックに割り当てられます。edit selectorsが指定されるのと同じ様に（下を参照してください）、トラックは指定されます。(see below), e.g. --tags track:a1:new-audio-tags.xml.

-c, --chapters filename
    ファイル名からのチャプタを、このファイル中のタグに追加、あるいは置換します。もしファイル名が空白なら、チャプタを削除します。mkvpropedit(1)は、mkvmerge(1)が読み込むのと同じXMLまたはシンプルチャプタフォーマットを読み込みます。

その他のオプション:

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

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

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

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

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

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

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

--check-for-updates
    http://mkvtoolnix-releases.bunkus.org/latest-release.xmlをダウンロードすることで、新しいリリースがないかオンラインでチェックします。key=valueという書式で、4行が出力されます：どこから情報を取得したか (key version_check_url)、現在実行中のバージョン (key running_version)、最新のリリースのバージョン (key available_version) 及びそのダウンロードURL (key download_url)。

    その後プログラムは、新しいリリースが入手可能ではなかった場合は終了コード0で、新しいリリースが入手可能であった場合は終了コード1で、エラーが発生した場合（例：アップデート情報を取得できなかった場合）は終了コード2で、それぞれ終了します。

    このオプションは、プログラムがlibcurlのサポートつきでビルドされた場合のみ使用できます。

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

デフォルトでは、mkvpropedit(1)はセグメント情報のセクションを編集します。

  セグメント情報

セグメント情報は次の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のトラックが選択されます。トラックUIDはmkvinfo(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

二番目の例は、最初の字幕トラックから'デフォルトトラックフラグ'を削除し二番目の字幕トラックに設定します。mkvpropedit(1)はmkvmerge(1)とは違い、'デフォルトトラックフラグ'が違うトラックで'1'に設定されているからといって自動的に他のトラックの'デフォルトトラックフラグ'を'0'に設定はしない、という点に注意してください。

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

ファイル中で2番目の字幕トラックのタグを置換するには、以下のようにします：

    $ mkvpropedit movie.mkv --tags track:s2:new-subtitle-tags.xml

タグを削除するには、ファイル名を空白にします

    $ mkvpropedit movie.mkv --tags all:

ファイル中のチャプタを置換するには、以下のようにします：

    $ mkvpropedit movie.mkv --chapters new-chapters.xml

全てのチャプタを削除するには、ファイル名を空白にします

    $ mkvpropedit movie.mkv --chapters ''

返り値

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

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

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

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

テキスト中の特殊文字をエスケープする

特殊文字をエスケープしなければならない、あるいはすべき場所が少しだけあります。エスケープのルールは単純です：エスケープする必要のある各文字を、バックスラッシュ（日本語フォントでは\記号）の後ろに違う文字が1つついたものと入れ替えます。

ルール：' 'は'\s'に、'"'は'\2'に、':'は'\c'に、'#'は'\h'に、そして'\'それ自体は'\\'になります。

関連項目

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

ウェブ

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

著者

Bunkus Moritz[FAMILY Given] <moritz@bunkus.org>
    開発者

注記

1.  MKVToolNixのホームページ
    http://www.bunkus.org/videotools/mkvtoolnix/