MP4 (.mp4,.m4a,...)

予備知識

    • MIMEタイプ:video/mp4
    • MPEG-4 Part 14動画形式.
    • マルチメディアコンテナ形式.
    • 複数の動画・音声・字幕トラックを含むことができる.
    • QuickTimeファイル形式とMPEG-4 Part 12から拡張された.
    • ISO/IEC 14496-14標準に準ずる.
    • 一般にMPEG-4ファイル形式バージョン2と呼ばれる.
    • 一般に動画コンテンツのアーカイブと交換に使われる.
    • 音声と動画を同期再生に適した形式で保存する.
    • バイナリ形式.
    • さまざまな動画・音声コーデックをサポートする.
    • 2001年にISOによって開発された.

ImportとExport

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

Import要素

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

Export要素

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

オプション

例題

すべて開くすべて閉じる

  (4)

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

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

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

音声のみのMP4ファイルをインポートする:

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

スコープ  (6)

Import  (2)

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

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

Export  (4)

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

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

ManipulateをMP4ファイルにエキスポートする:

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

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

音声付きのManipulateをエキスポートする:

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

Import要素  (33)

利用できる要素  (1)

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

動画要素  (3)

"Video"  (1)

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

これは動画トラックが少なくとも1つのある場合のデフォルトのインポート要素である:

"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)

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

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

音声トラック  (7)

"Audio"  (1)

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

"AudioChannels"  (1)

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

"AudioData"  (1)

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

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

"AudioEncoding"  (1)

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

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

"AudioFile"  (1)

アウトオブコアのAudioオブジェクトをインポートする:

アウトオブコアのAudioはメモリにデータを保持しない.インコアのAudioと比較する:

"BitRate"  (1)

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

"SampleRate"  (1)

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

字幕トラック  (5)

"RawSubtitle"  (1)

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

字幕が存在しない場合はNoneが返される:

"SubtitleEncoding"  (1)

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

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

"SubtitleRules"  (1)

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

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

"SubtitleString"  (1)

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

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

"SubtitleStringRules"  (1)

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

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

Importオプション  (11)

マルチトラックMP4ファイルの生成  (1)

マルチトラックMP4ファイルを生成する:

"AudioChannels"  (1)

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

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

AudioTrackSelection  (1)

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

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

"ImageTopOrientation"  (1)

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

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

IncludeMetaInformation  (3)

デフォルトでは利用可能なすべてのメタデータがインポートされる:

メタデータをインポートしないようにする:

メタデータの指定のクラスだけをインポートする:

RasterSize  (1)

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

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

SampleRate  (1)

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

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

SubtitleTrackSelection  (1)

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

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

VideoTrackSelection  (1)

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

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

Exportオプション  (23)

"AnimationDuration"  (1)

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

AudioEncoding  (1)

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

AudioTrackSelection  (1)

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

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

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

Background  (1)

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

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

BitRate  (4)

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

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

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

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

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

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

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

CompresionLevel  (2)

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

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

"ControlAppearance"  (1)

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

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

FrameRate  (1)

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

異なるフレームレートを指定する:

IncludeMetaInformation (3)

デフォルトではAudioオブジェクトに存在するすべてのメタ情報がエキスポートされる:

どのメタデータを含むのかを指定する:

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

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

MetaInformation (1)

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

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

指定のメタデータをエキスポートするが,選択されたタグだけが"MP4"についてサポートされている:

RasterSize  (1)

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

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

SampleRate  (1)

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

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

SubtitleEncoding  (1)

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

SubtitleTrackSelection  (1)

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

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

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

VideoEncoding  (1)

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

VideoTrackSelection  (1)

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

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

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

VideoTransparency  (1)

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

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

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