Provided by: mkvtoolnix_6.7.0-1_amd64
名前
mkvextract - Matroska(TM) ファイルから、他の形式のファイルを抽出する
書式
mkvextract {mode} {source-filename} [options] [extraction-spec]
説明
Matroska(TM) ファイルの特定の部分を、他の有用なフォーマットで抽出します。最初のmode引数 は、mkvextract(1) に何を抽出すべきかを指示します。現在サポートされているのは、トラック、タ グ、添付ファイル、チャプタ、CUEシート 及び タイムコードの抽出です。二個目の引数はソース ファイルの名前です。これはMatroska(TM)ファイルでなければなりません。続く全ての引数は、オプ ションと抽出設定です。これらは指定されたmodeに依存します。 共通オプション 以下のオプションは、全てのmodeで使用できるので、このセクションで一括して説明します。 -f, --parse-fully 解析モードを'full'に設定します。デフォルトのモードでは、ソースファイルの必要な要素を見 つけるのにファイル全体を解析せずにメタシーク要素を使用します。99%のケースではこれで十 分ですが、メタシーク要素が含まれていなかったり壊れていたりするファイルにはこのモードを 使用しなければならないかもしれません。高速スキャンが数秒しかかからないのに対して、ファ イルをフルスキャンするのには数分かかることがあります。 --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と指定する と、指定できる言語コードの一覧を出力します。 --debug topic 特定の機能のデバッグをオンにします。このオプションは開発者にのみ有用です。 --engage feature 実験的機能をオンにします。利用可能な機能のリストは mkvextract --engage listで得られま す。これらの機能は通常の状況で使用されることを意図されていません。 --gui-mode Turns on GUI mode. In this mode specially-formatted lines may be output that can tell a controlling GUI what's happening. These messages follow the format '#GUI#message'. The message may be followed by key/value pairs as in '#GUI#message#key1=value1#key2=value2...'. Neither the messages nor the keys are ever translated and always output in English. -v, --verbose 出力が冗長になり、Matroska(TM)のエレメントにとって重要なこと全てを、読み込まれるつどに 表示していきます。 -h, --help コマンド書式情報を出力して終了します。 -V, --version バージョン情報を出力して終了します。 --check-for-updates Checks online for new releases by downloading the URL http://mkvtoolnix-releases.bunkus.org/latest-release.xml. Four lines will be output in key=value style: the URL from where the information was retrieved (key version_check_url), the currently running version (key running_version), the latest release's version (key available_version) and the download URL (key download_url). その後プログラムは、新しいリリースが入手可能ではなかった場合は終了コード0で、新しいリ リースが入手可能であった場合は終了コード1で、エラーが発生した場合(例:アップデート情 報を取得できなかった場合)は終了コード2で、それぞれ終了します。 このオプションは、プログラムがlibcurlのサポートつきでビルドされた場合のみ使用できま す。 @options-file options-fileで指定されたファイルから追加のコマンドラインオプションを読み込みます。行で 最初の空白文字でない文字がハッシュマーク('#')である行はコメントとして扱われ、無視され ます。行頭、及び行末の空白文字は取り除かれます。各行には一つずつしかオプションを指定で きません。 エスケープすることができる文字もあります。例えば、コメントではない行を'#'で始める必要 がある場合です。そのルールは、エスケープ文字についてのセクションで説明されています。 'mkvextract tracks source.mkv --raw 1:destination.raw'というコマンドラインと同じこと は、次のようなオプションファイルによって指定できます。 # source.mkv からトラックを抽出 tracks source.mkv # トラックをrawデータとして出力 --raw 1:destination.raw トラック抽出モード Syntax: mkvextract tracks source-filename [options] TID1:dest-filename1 [TID2:dest-filename2 ...] 以下のコマンドラインオプションは、トラック抽出モードでは各トラック毎に指定することができま す。これらのオプションは、作用するトラック指定子(下記参照)の前に指定しなければなりません。 -c character-set 直後の字幕トラックの出力文字コードを指定します。直後のトラックIDが指すのが、字幕トラッ クのときのみ有効です。デフォルトはUTF-8になります。 --blockadd level このレベルまでのBlockAdditionを保持します。デフォルトでは全て保持します。このオプショ ンは、WAVPACK4などの特定のコーデックにのみ有効です。 --cuesheet mkvextract(1)に、直後のトラックのチャプタ情報とタグデータからCUEシートを生成します。出 力ファイルの名前はトラックの出力名に'.cue'をつけたものになります。 --raw コンテナ情報を含まない、rawデータをファイルに抽出します。--fullrawフラグとは違い、この フラグはCodecPrivate要素の内容はファイルに書き出しません。このモード は、mkvextract(1)がサポートしないものも含めて全てのCodecIDで使用できますが、出力された ファイルは使用できないかもしれません。 --fullraw コンテナ情報を含まない、rawデータをファイルに抽出します。トラックがCodecPrivate要素の ヘッダ情報を含む場合、その内容はファイルの先頭に書き出されます。このモード は、mkvextract(1)がサポートしないCodecIDにも使用できますが、出力されたファイルは使用で きないかもしれません。 TID:outname IDがTIDであるトラックがソースファイルに存在すれば、outnameに抽出します。このオプション は複数回指定できます。トラックIDは、mkvmerge(1)に--identifyを指定して実行した際の出力 に表示されるものと同じです。 各出力ファイル名は一回しか使用されません。RealAudio及びRealVideoトラックは例外です。も し、異なるトラックに同じファイル名が指定された場合、それらは同一のファイルに保存されま す。例: $ mkvextract tracks input.mkv 1:output-two-tracks.rm 2:output-two-tracks.rm タグ抽出モード Syntax: mkvextract tags source-filename [options] 抽出されたタグは、出力がリダイレクトされていなければコンソールに出力されます。(詳細につい ては、出力リダイレクトについてのセクションを参照ください。) 添付ファイル抽出モード Syntax: mkvextract attachments source-filename [options] AID1:outname1 [AID2:outname2 ...] AID:outname IDがAIDである添付ファイルがもしソースファイルに存在すれば抽出します。outnameが指定され ない場合、Matroska(TM)に格納された添付ファイルの名前が使用されます。このオプションは複 数回指定できます。添付ファイルIDは、mkvmerge(1)に--identifyオプションを指定したときに 出力されるものと同じです。 チャプタ抽出モード Syntax: mkvextract chapters source-filename [options] -s, --simple チャプタ情報をOGM toolsで使用される、シンプルフォーマット(CHAPTER01=..., CHAPTER01NAME=...)で出力します。このモードでは、一部の情報は破棄されます。デフォルトで は、チャプタはXMLフォーマットで出力されます。 抽出されたチャプタは、出力がリダイレクトされていなければコンソールに出力されます。(詳細に ついては、出力リダイレクトについてのセクションを参照ください。) CUEシート抽出モード Syntax: mkvextract cuesheet source-filename [options] 抽出されたCUEシートは、出力がリダイレクトされていなければコンソールに出力されます。(詳細に ついては、出力リダイレクトについてのセクションを参照ください。) タイムコード抽出モード Syntax: mkvextract timecodes_v2 source-filename [options] TID1:dest-filename1 [TID2:dest-filename2 ...] 抽出されたタイムコードは、出力がリダイレクトされていなければコンソールに出力されます。(詳 細については、出力リダイレクトについてのセクションを参照ください。) TID:outname IDがTIDであるトラックがソースファイルに存在すれば、タイムコードをoutnameに抽出しま す。このオプションは複数回指定できます。トラックIDは、mkvmerge(1)に--identifyを指定し て実行した際の出力に表示されるものと同じです。 例: $ mkvextract timecodes_v2 input.mkv 1:tc-track1.txt 2:tc-track2.txt
出力リダイレクト
いくつかのモードでは、mkvextract(1)は抽出されたデータをコンソールに出力します。一般的 に、このデータをファイルに書き出すには二つの方法があります。一つはシェルによって提供さ れ、もう一つはmkvextract(1)自体によって提供されます。 シェルビルトインのリダイレクト機構は、コマンドラインに'> output-filename.ext'を追加するこ とで使用できます。例: $ mkvextract tags source.mkv > tags.xml mkvextract(1)自体のリダイレクトは、--redirect-outputオプションを指定することで使用できま す。例: $ mkvextract tags source.mkv --redirect-output tags.xml 注記 Windowsでは、--redirect-outputオプションを使用するべきでしょう。cmd.exeは、特殊文字を 出力ファイルに書き出す前に処理してしまい、出力が壊れる虞があります。
出力ファイルフォーマット
出力ファイルのフォーマットの決定は、トラックの種類によって決まり、出力ファイル名の拡張子は 使用されません。現在、以下の種類のトラックがサポートされています。 V_MPEG4/ISO/AVC H.264/AVCビデオトラックは、H.264エレメンタリ・ストリームに書き出されます。これは例え ばGPAC(TM)パッケージに含まれる、MP4Box(TM)などにより処理できます。 V_MS/VFW/FOURCC このCodecIDをもつ、固定FPSビデオトラックはAVIファイルに書き出されます。 V_REAL/* RealVideo(TM)トラックは、RealMedia(TM)ファイルに書き出されます。 V_THEORA Theora(TM) streams will be written within an Ogg(TM) container V_VP8, V_VP9 VP8 / VP9 tracks are written to IVF files. A_MPEG/L2 MPEG-1 Audio Layer II streams will be extracted to raw MP2 files. A_MPEG/L3, A_AC3 これらは、生のMP3ファイル及びAC3ファイルに抽出されます。 A_PCM/INT/LIT PCMRawデータは、WAVファイルに書き出されます。 A_AAC/MPEG2/*, A_AAC/MPEG4/*, A_AAC 全てのAACファイルは、ADTSヘッダを各パケットの前に追加されたうえでAACファイルに書き出さ れます。ADTSヘッダは、廃止予定であるエンファシスフィールドを含みません。 A_VORBIS Vorbis audioはOggVorbis(TM)ファイルに書き出されます。 A_REAL/* RealAudio(TM)トラックはRealMedia(TM)ファイルに書き出されます。 A_TTA1 TrueAudio(TM)トラックはTTAファイルに書き出されます。Matroska(TM)のタイムコード精度の上 限のため、抽出されたファイルのヘッダは、data_lengthフィールド(ファイルに含まれる総サン プル数)とCRCについては不正確になります。 A_ALAC ALAC tracks are written to CAF files. A_FLAC FLAC tracks are written to raw FLAC files. A_WAVPACK4 WavPack(TM) tracks are written to WV files. A_OPUS Opus(TM) tracks are written to OggOpus(TM) files. S_TEXT/UTF8 シンプル・テキスト字幕はSRTファイルに書き出されます。 S_TEXT/SSA, S_TEXT/ASS SSA及びASSテキスト字幕は、それぞれSSA、ASSファイルに書き出されます。 S_KATE Kate(TM)ストリームはOgg(TM)コンテナに格納されます。 S_VOBSUB VobSub(TM) subtitles will be written as SUB files along with the respective index files, as IDX files. S_TEXT/USF USF text subtitles will be written as USF files. S_HDMV/PGS PGS subtitles will be written as SUP files. タグ タグは、XMLフォーマットに変換されます。このフォーマットはmkvmerge(1)でタグを読み込む際 のフォーマットと同じです。 添付ファイル 添付ファイルはそのままの形式で出力ファイルに書き出されます。変換等の処理は全く行われま せん。 チャプタ チャプタはXMLフォーマットに変換されます。このフォーマットはmkvmerge(1)がチャプタを読み 込む際のフォーマットと同じです。他にも、簡略化されたOGMスタイルのフォーマットで出力す ることもできます。 タイムコード タイムコードはまず整列された後に、mkvmerge(1)で読み込むことのできる timecode v2 形式に 準拠するファイルに書き出されます。他の形式(v1, v3, v4)への抽出はサポートされていませ ん。
返り値
mkvextract(1)は下の3つの返り値を返します。 • 0 -- この返り値は抽出が成功したことを意味します。 • 1 -- この返り値は、一つ以上の警告が出力されましたが、抽出が続行されたことを意味しま す。警告は '警告:' という文字列を先頭につけて出力されます。出力ファイルが無事であるか どうかは、場合によります。出力ファイルを確認することを強く推奨します。 • 2 -- この返り値は、エラーが発生し、エラーメッセージを出力した後にmkvextract(1)が処理を 中断したことを示します。エラーメッセージは不正なコマンドラインやファイルI/Oエラー、壊 れたファイルなど様々です。
テキスト中の特殊文字をエスケープする
特殊文字をエスケープしなければならない、あるいはすべき場所が少しだけあります。エスケープの ルールは単純です:エスケープする必要のある各文字を、バックスラッシュ(Windows上の日本語 フォントでは\記号)の後ろに違う文字が1つついたものと入れ替えます。 ルール:' '(半角スペース)は'\s'に、'"'(ダブルクォーテーショ ン)は'\2'に、':'は'\c'に、'#'は'\h'に、そして'\'それ自体は'\\'になります。
環境変数
mkvextract(1)はシステムのロケールを決めるデフォルトの変数(例:LANGやLC_*系)を使用しま す。追加の変数は以下の通りです: MKVTOOLNIX_DEBUGとその短縮形MTX_DEBUG その内容は、あたかも--debugオプション経由で渡されたかのように扱われます。 MKVTOOLNIX_ENGAGEとその短縮形MTX_ENGAGE その内容は、あたかも--engageオプション経由で渡されたかのように扱われます。 MKVTOOLNIX_OPTIONSとその短縮形MTX_OPTIONS 内容は空白で分割されます。得られた一部の文字列は、あたかもそれがコマンドラインオプショ ンとして渡されたかのように扱われます。もし特殊な文字(例:空白)を渡す必要があるな ら、それらをエスケープする必要があります(テキスト中の特殊文字のエスケープについてのセ クションをご覧ください)。
関連項目
mkvmerge(1), mkvinfo(1), mkvpropedit(1), mmg(1)
ウェブ
最新のバージョンは、常時MKVToolNixのホームページ[1]から取得できます。
著者
Bunkus Moritz[FAMILY Given] <moritz@bunkus.org> 開発者
注記
1. MKVToolNixのホームページ http://www.bunkus.org/videotools/mkvtoolnix/