Matroska (.mkv,.webm,.mka,.mk3d)

予備知識

    • 登録MIMEタイプ:video/x-matroska
    • マルチメディアコンテナ形式.
    • 複数の動画・音声・字幕トラックを含むことができる.
    • 柔軟,拡張可能で,クロスプラットフォームであるように設計された.
    • さまざまな動画・音声コーデックをサポートする.
    • 拡張MCFおよびEBMLで,WebMの基底である.
    • 2002にリリースされたオープン形式である.

ImportとExport

  • Export["file.mkv",expr,elements]expr が指定の要素に対応するとしてエキスポートする.
  • Import["file.mkv"]はMatroskaファイルをインポートし,Videoオブジェクトを返す.
  • Import["file.mkv",elem]は指定された要素をインポートする.
  • インポート形式はImport["file","Matroska"]またはImport["file",{"Matroska",elem,}]で指定できる.
  • Export["file.mkv",expr]expr をMatroska形式にエキスポートする.
  • 以下の式はMatroska形式にエキスポートすることができる:
  • video任意のVideoオブジェクト
    AnimatedImage[]AnimatedImageオブジェクトのフレーム
    Manipulate[]Manipulate式から生成されたフレーム
    {expr1,expr2,}画像,グラフィックス,ラスタライズされた式のリスト
  • 任意の式のリストをエキスポートするとき,それぞれの式はラスタライズされ,表示された形式と同じラスターサイズとなる.
  • Matroska動画の長さは,フレーム数と指定のフレーム率により決まる.
  • Manipulateオブジェクトの中でブックマークが設定されている場合,Exportは各ブックマークの間を補間したMatroskaファイルを作成する.このとき,Manipulateの速度と長さは維持される.
  • Export["file.mkv",{elem1expr1,elem2expr2,},"Rules"]は規則を使ってエキスポートする要素を指定する.
  • サポートされる動画のエンコーダのリストは$VideoEncodersで見ることができる.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • 動画表現要素:
  • "ImageList"画像のリストで表されたフレーム
    "Video"Videoオブジェクトで表された動画ファイル
    "VideoData"各フレームの生のビットマップデータの配列
    "VideoStream"VideoStreamオブジェクトで表された動画ファイルへのハンドル
  • ImportはMatroska形式にデフォルトで"Video"要素を使用する.
  • 動画ファイルには複数の動画,音声,または字幕のトラックが含まれていることがある.トラック数を返す要素:
  • "AudioTrackCount"音声トラック数
    "SubtitleTrackCount"字幕トラック数
    "VideoTrackCount"動画トラック数
  • 動画のメタデータ要素:
  • "BitDepth"ファイルの各色チャンネルを表すのに使用するビット
    "ColorSpace"ファイルで使用する色符号
    "FrameCount"ファイル中のフレーム数
    "FrameDurations"各フレームに与えられた表示時間のリスト
    "FrameRate"1秒あたりに表示されるフレーム数
    "ImageSize"ラスタサイズ
    "VideoEncoding"ファイルで使用された動画コーデック
  • 音声関連要素:
  • "Audio"インコアのAudioオブジェクト
    "AudioChannels"音声チャンネル数
    "AudioData"音声サンプルの配列
    "AudioEncoding"ファイルで使用されている音声コーデック
    "AudioFile"アウトオブコアのAudioオブジェクト
    "BitRate"秒あたりのビット数
    "SampleRate"秒あたりの音声サンプル数
  • 字幕関連要素:
  • "RawSubtitle"生の文字列としてインポートされる字幕データ
    "SubtitleRules"{int1text1,int2text2,}の形式でスタイル付けされたテキストのリストとして返される
    "SubtitleString"連結された字幕テキストの単一文字列として返される
    "SubtitleStringRules"{int1string1,int2string2,} の形式のプレーンテキストのリストとして返される
    "SubtitleEncoding"ファイルで使用されている字幕コーデック
  • その他のメタデータ要素:
  • "ExactDurations"動画,音声,字幕すべてのトラックの厳密な継続時間の連想
    "ExactTimeBoundaries"すべての動画,音声,字幕トラックの厳密な開始・終了時間の連想
    "Duration"動画のおよその継続時間(秒)
    "MetaInformation"数量,場所,日付,数等として解釈されるメタデータ
    "RawMetaInformation"文字列または数の未解釈メタデータ
    "Summary"ファイルの概要
    "TrackStartTimes"各トラックの開始時間の連想
  • $VideoDecoders$AudioDecodersは使用中のコンピュータシステムで利用できるデコーダのリストを与える.

Export要素

  • Export["file.mkv",{elem1->expr1,},"Rules"]は規則を使ってエキスポートする要素を指定する.
  • 使用できるExport要素:
  • "Audio"音声トラック
    "Frames"リストまたはManipulateまたはAnimatedImageオブジェクトとして与えられた動画フレーム

オプション

例題

すべて開くすべて閉じる

  (3)

MatroskaファイルをVideoオブジェクトとしてインポートする:

継続時間等の動画の特性をインポートする:

動画ファイルの概要をインポートする:

VideoオブジェクトをMP4ファイルにエキスポートする:

スコープ  (6)

Import  (2)

動画フレームのリストをインポートする:

音声データの最初の10秒をインポートする:

Export  (4)

画像のリストをMatroskaファイルにエキスポートする:

動画から3フレーム取得する:

Manipulateで作成したものをMatroskaにエキスポートする:

エキスポートされたファイルの概要:

AnimatedImageオブジェクトをエキスポートする:

Manipulateで作成したものに音声をつけてエキスポートする;

エキスポートされたファイルの概要:

Import要素  (32)

利用できる要素  (1)

利用できる要素のリスト:

動画要素  (3)

"Video"  (1)

Videoオブジェクトとしてインポートする:

これはデフォルトのインポート要素である:

"VideoData"  (1)

指定のフレームに対応する動画データをインポートする:

NumericArrayオブジェクトに保存されている動画データを画像に変換する:

"VideoStream"  (1)

VideoStreamオブジェクトとしてインポートする:

動画ストリームを再生する:

ストリームから現在のフレームを取得する:

トラック数  (3)

"AudioTrackCount"  (1)

音声トラック数をインポートする:

"SubtitleTrackCount"  (1)

字幕トラック数をインポートする:

"VideoTrackCount"  (1)

動画トラック数をインポートする:

メタデータ要素  (7)

"Duration"  (2)

動画のおよその継続時間をインポートする:

トラックの厳密な継続時間をインポートするためには,"ExactDurations"要素を使う:

"ExactDurations"  (2)

トラックの厳密な継続時間をインポートする:

動画のおよその継続時間をインポートする:

およその継続時間の計算は,通常厳密な継続時間の計算より格段に速い:

"MetaInformation"  (1)

動画ファイルからメタデータをインポートする:

"RawMetaInformation"  (1)

動画ファイルから未処理のメタデータをインポートする:

"Summary"  (1)

動画ファイルの概要をインポートする:

動画トラック  (7)

"BitDepth"  (1)

ビット深度をインポートする:

"ColorSpace"  (1)

色空間をインポートする:

"FrameCount"  (1)

動画フレーム数をインポートする:

"FrameDurations"  (1)

選択された動画フレームの継続時間をインポートする

"FrameRate"  (1)

動画フレームレートをインポートする:

"RasterSize"  (1)

動画フレームのラスタサイズをインポートする:

"VideoEncoding"  (1)

動画コーデックをインポートする:

各プラットフォームでMatroskaに対してサポートされているデコーダは,$VideoDecodersを使って抽出できる:

音声トラック  (6)

"Audio"  (1)

MatroskaファイルからAudioをインポートする:

"AudioChannels"  (1)

音声チャンネル数をインポートする:

"AudioData"  (1)

Matroskaファイルから音声データをNumericArrayとしてインポートする:

保存された音声データをAudioオブジェクトに変換する:

"AudioEncoding"  (1)

音声符号化方式をインポートする:

利用できる音声デコーダは$AudioDecodersから抽出できる:

"BitRate"  (1)

音声トラックのビットレートを取得する:

"SampleRate"  (1)

音声トラックのサンプルレートを取得する:

字幕トラック  (5)

"RawSubtitle"  (1)

Matroskaファイルから生の字幕を取得する:

字幕がない場合はNoneが返される.

"SubtitleEncoding"  (1)

字幕の符号化方式をインポートする:

利用できる字幕符号化方式は$SubtitleDecodersを使って抽出できる:

"SubtitleRules"  (1)

スタイル付けされたテキストのリストとして字幕を取得する:

字幕がない場合はNoneが返される.

"SubtitleString"  (1)

単一の文字列として字幕を取得する:

字幕がない場合はNoneが返される.

"SubtitleStringRules"  (1)

プレーンテキストのリストとして字幕を取得する:

字幕がない場合はNoneが返される.

Importオプション  (7)

"AudioChannels"  (1)

デフォルトではすべての音声チャンネルがインポートされる:

2つ目のチャンネルのみインポートする:

AudioTrackSelection  (1)

デフォルトではImportは最初の音声トラックからのみデータを抽出する:

AudioTrackSelectionオプションを使って指定の音声トラックからデータを抽出する:

"ImageTopOrientation"  (1)

デフォルトでは,動画フレームはファイルに保存されたネイティブの向きでインポートされる:

上側にする辺を指定する:

RasterSize  (1)

デフォルトでは動画フレームはそのネイティブのサイズでインポートされる:

各動画フレームのラスタサイズを指定する:

SampleRate  (1)

デフォルトでは動画フレームはそのネイティブのサイズでインポートされる:

インポートされたサウンドのサンプルレートを指定する:

SubtitleTrackSelection  (1)

デフォルトでは,Importは最初の字幕トラックからのみデータを抽出する:

SubtitleTrackSelectionオプションを使って指定の字幕トラックからデータを抽出する:

VideoTrackSelection  (1)

デフォルトではImportは最初の動画トラックからのみデータを抽出する:

VideoTrackSelectionオプションを使って指定の動画トラックからデータを抽出する:

Exportオプション  (22)

"AnimationDuration"  (1)

エキスポートされたManipulate式の継続時間を指定する:

AudioEncoding  (1)

エキスポートされた音声の符号化方式を指定する:

AudioTracks  (1)

デフォルトではすべての音声トラックがエキスポートされる:

エキスポートする音声トラックを指定する:

音声トラックをエキスポートしない:

Background  (1)

デフォルトでは,透明なグラフィックスと画像の背景色と,大きさの異なる画像をエキスポート前に充填する際の背景色に白が使われる:

異なる充填色を指定する:

BitRate  (4)

動画ファイルにエキスポートするときは,デフォルトで自動ビットレートが使用される:

全体のおおよそのビットレートを確認する

おおよそのビットレートを提案する:

おおよそのビットレートを確認するが,提案したビットレートと少し異なる可能性がある:

動画と音声のおおよそのビットレートを別々に指定する:

全体のおおよそのビットレートを確認する:

ビットレートが低いと結果のファイルサイズが小さくなるが,生成された動画の質も低くなる:

CompressionLevel  (2)

CompressionLevelオプションを使って,生成された動画のファイルサイズと画質を制御する:

動画と音声の両方のBitRateが指定されているときは,CompressionLevelの値は無視される:

"ControlAppearance"  (1)

デフォルトの設定 "ControlAppearance"Automaticでエキスポートされたアニメーションは,そのアニメーションが生成されたコンピュータシステムに応じて外観が異なる:

"ControlAppearance"Noneとすると,エキスポートされた動画にユーザコントロールは含まれない:

FrameRate  (1)

デフォルトではVideoオブジェクトまたはVideoStreamオブジェクトのエキスポート時にフレームレートは維持される:

別のフレームレートを指定する:

IncludeMetaInformation (1)

メタデータをインポートする:

"Language"や"Title"等のメタデータはエキスポートしない:

MetaInformation (2)

デフォルトでは,サポートされているすべてのメタデータが入力の動画ファイルからエキスポートされる:

もとのファイルのメタデータと比較する

Matroskaは自由形式のキー-値のメタデータペアをサポートする:

RasterSize  (1)

デフォルトではVideoオブジェクトまたはVideoStreamオブジェクトのエキスポート時にラスタサイズは維持される:

別のラスタサイズを指定する:

SampleRate  (1)

デフォルトではVideoVideoStreamAudioオブジェクトのエキスポート時にサンプルレートは維持される:

別のサンプルレートを指定する:

SubtitleEncoding  (1)

エキスポートされた字幕の符号化方式を指定する:

SubtitleTrackSelection  (1)

デフォルトではすべての字幕トラックがエキスポートされる:

エキスポートする字幕トラックを指定する:

字幕トラックをエキスポートしない

VideoEncoding  (1)

エキスポートされた動画の符号化方式を指定する:

VideoTrackSelection  (1)

デフォルトではすべての動画トラックがエキスポートされる:

エキスポートする動画トラックを指定する:

動画トラックをエキスポートしない:

VideoTransparency  (1)

アルファチャンネルで動画を生成する:

デフォルトでは, Export は透明度を削除する:

アルファチャンネルで動画をエキスポートする: