MPEG-4 ファイル ソース

MPEG-4 ファイル ソースは、MP4 ファイルと 3GPP ファイルを解析します。 MP4 ファイル形式の詳細については、次の標準ドキュメントを参照してください。

  • ISO/IEC 14496-12: 情報テクノロジ -- オーディオ ビジュアル オブジェクトのコーディング -- パート 12: ISO ベース メディア ファイル形式
  • ISO/IEC 14496-14: 情報技術 -- オーディオ ビジュアル オブジェクトのコーディング -- パート 14: MP4 ファイル形式

注意

(これらのリソースは、一部の言語や国では使用できない場合があります)。

 

MPEG-4 ファイル ソースでは、ファイル内のオーディオ/ビデオ データはデコードされません。

このトピックは、次のセクションで構成されています。

ファイル拡張子と MIME の種類

MPEG-4 ファイル ソースは、次のファイル名拡張子の既定のメディア ソースです。

[ファイル拡張子] 説明
.3g2 3GPP2
.3gp 3GPP
.3gp2 3GPP2
.3gpp 3GPP
.m4a MPEG-4 オーディオ
.m4v MPEG-4 ビデオ
.mov Apple QuickTime ムービー
.mp4 MPEG-4 オーディオまたはビデオ
.mp4v MPEG-4 ビデオ

 

また、次の MIME の種類の既定のメディア ソースでもあります。

MIME の種類 (MIME type) Description
audio/3gpp 3GPP オーディオ
audio/3gpp2 3GPP2 オーディオ
audio/mp4 MPEG-4 オーディオ
video/3gpp 3GPP ビデオ
video/3gpp2 3GPP2 ビデオ
video/mp4 MPEG-4 ビデオ

 

メディアの種類

MP4 は拡張可能なコンテナー形式です。 MP4 仕様では、MP4 コンテナー内のメディアの種類を記述するための固定構造は定義されていません。 代わりに、形式ごとにカスタム構造を定義できるオブジェクト階層を定義します。 書式の説明は、そのストリームのサンプル説明 ('stsd') ボックスに格納されます。 サンプルの説明ボックスには、サンプル エントリの一覧が含まれています。 各サンプル エントリに対して、FOURCC と同様の 4 バイト コードによって書式構造が定義されます。

この機能拡張は、MPEG-4 ファイル ソースが可能なすべての書式の説明を認識できないことを意味します。 代わりに、ストリームのメディアの種類を作成するときに、2 層のアプローチが必要です。 少なくとも、すべてのメディアの種類には次の属性が含まれます。

属性 説明
MF_MT_MAJOR_TYPE MFMediaType_AudioまたはMFMediaType_Videoに等しい。
MF_MT_SUBTYPE ストリーム サブタイプを指定します。
MF_MT_MPEG4_SAMPLE_DESCRIPTION 完全なサンプル説明ボックスがバイナリ BLOB として含まれています。
MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY サンプルの説明ボックスに現在のエントリを指定します。

 

MPEG-4 ファイル ソースは、いくつかのサンプル エントリの種類を認識します。 これらのエントリでは、書式構造を解析し、完全なメディアの種類を作成し、書式の詳細を記述する追加の属性を使用できます。 「メディアの種類の属性」を参照してください。

MPEG-4 ファイル ソースでは、次のサンプル エントリを解析できます。

サンプルエントリコード メジャーの種類 Subtype 説明 Notes
'alaw' オーディオ WAVE_FORMAT_ALAW A-law コーディング
'jpeg' ビデオ MFVideoFormat_MJPG Photo-JPEG ストリーム QuickTime コンテナー形式では、"mjpa" または "mjpb" エントリを含むモーション JPEG ストリームもサポートされていますが、MPEG-4 ファイル ソースでは、これらの種類の完全なメディアの種類は提供されません。
'avc1' ビデオ MFVideoFormat_H264 H.264 ビデオ
'mp4a' オーディオ MFAudioFormat_AAC
MFAudioFormat_MP3
AAC または MP3 "mp4a" エントリは他の MPEG オーディオ形式を記述できますが、MPEG-4 ファイル ソースでは形式構造は解析されません。
'mp4v' ビデオ MFVideoFormat_M4S2
MFVideoFormat_MP4V
MPEG-4 パート 2 MFVideoFormat_M4S2 は、MPEG-4 パート 2 の簡易プロファイルに使用されます。
MFVideoFormat_MP4V は、高度な単純なプロファイルを含む、他のすべての MPEG-4 パート 2 プロファイルに使用されます。
'raw ' オーディオ MFAudioFormat_PCM 8 ビット PCM オーディオ
'sowt' オーディオ MFAudioFormat_PCM 16 ビットのリトル エンディアン PCM オーディオ
'twos' オーディオ MFAudioFormat_PCM 16 ビット ビッグ エンディアン PCM オーディオ MPEG-4 ファイル ソースは、オーディオ データをリトル エンディアン形式に変換します。
'ulaw' オーディオ WAVE_FORMAT_MULAW μ-law コーディング
'vc-1' ビデオ MFVideoFormat_WVC1 VC-1 ビデオ
'NONE' オーディオ MFAudioFormat_PCM 8 ビットまたは 16 ビットのビッグ エンディアン PCM オーディオ MPEG-4 ファイル ソースは、オーディオ データをリトル エンディアン形式に変換します。
0x00000000 オーディオ MFAudioFormat_PCM 8 ビットまたは 16 ビットのビッグ エンディアン PCM オーディオ MPEG-4 ファイル ソースは、オーディオ データをリトル エンディアン形式に変換します。
0x6d730002 オーディオ WAVE_FORMAT_ADPCM 適応差動パルスコード変調(ADPCM)
0x6d730011 オーディオ WAVE_FORMAT_IMA_ADPCM Adpcm

 

前の表に示されていないその他のコードの場合、MPEG-4 ファイル ソースはサブタイプを次のように設定します。

  1. サブタイプ = MFMPEG4Format_Base
  2. サブタイプ。Data1 = サンプル エントリ コード

テーブルに表示されないコードの場合、デコーダーは MF_MT_MPEG4_SAMPLE_DESCRIPTION 属性を使用してサンプルの説明ボックスを解析する必要があります。

サンプルのエントリ コードと関連する仕様へのリンクの一覧については、 "MP4" 登録機関 の Web サイトを参照してください。

制限事項

MPEG-4 ファイル ソースでは、MP4 ファイルの次の機能はサポートされていません。

  • 外部トラック。
  • ムービー フラグメント ('moof' または 'mfra' ボックス)。 'moof' は、Windows 8でサポートされています。
  • ストリーミング されたプレゼンテーション。 MPEG-4 ファイル ソースでは、ヒント トラックは自動的に無視されます。
  • SMPTE タイム コードによるシーク。
  • 圧縮された ('cmov') アトム。

ビデオストリームとオーディオストリームのみがサポートされています。 他のストリームの種類を含むトラックは無視されます。 メディア データは、'mdat' アトム内に配置する必要があります。

Windows Vista のプラットフォーム更新プログラムの補足がインストールされている場合、MPEG-4 ファイル ソースは Windows Vista で使用できますが、Windows Vista では ソース リーダーを使用してのみアクセスできます。

MPEG-4 ソースとシンクのWindows 8更新

  • WINDOWS 8 MPEG-4 ソースとシンクに追加された回転読み取りと書き込みのサポート。 これは、Windows 7 MPEG-4 ソースとシンクではサポートされていません。

    MPEG-4 ソースは、アクティブなビデオ トラックの回転角度を、'mvhd' と 'tkhd' からの回転角度の合計として読み取ります。

    Microsoft MPEG-4 シンクは 'tkhd' で回転角度を書き込みますが、'mvhd' に 0 度 (ID) マトリックスを書き込みます。 Microsoft MPEG-4 シンクでは、単一のビデオ トラックのみがサポートされていることに注意してください。

    IPropertyStore は、最初のビデオ トラックのみの回転角度を、'mvhd' と 'tkhd' からの回転角度の合計として読み取ります。

    IPropertyStore は、'mvhd' の回転角度に従って回転角度を調整した後、'tkhd' の最初のビデオ トラックのみの回転角度を書き込みます (存在する場合)。

  • ムービー フラグメント ('moof') は MPEG-4 ソースとシンクWindows 8サポートされていますが、'mfra' はサポートされていません。

  • H.263 は、WINDOWS 8 MPEG-4 ソースでサポートされています。

    MPEG-4 ソースは、MPEG-4 ファイル形式の 'h263' と 's263' の 2 つの fourcc を MFVideoFormat_H263のメディアの種類にマップするようになりました。

  • WINDOWS 8 MPEG-4 ソースで MJPEG に対してさらに 4cc サポートが追加されました。

    MPEG-4 ソースは、'dmb1' の foucc を MFVideoFormat_MJPGのメディアの種類にマップします。

  • WINDOWS 8 MPEG-4 ソースに追加されたふりがなメタデータのサポート。

    MPEG-4 ソースは、'soal'、'soar'、'soaa'、'sonm'、および 'soco' からふりがなメタデータを読み取ります。 IPropertyStore は、対応する PKEY のセットを介して Furignana メタデータを読み取ります。

    次の表は、シェル正規名、プロパティ キー、および MPEG-4 ファイル形式のボックス/タグ ID のマッピングを示しています。

    フィールド プロパティ キー タグ/ボックス ID
    System.Music.AlbumTitleSortOverride PKEY_Music_AlbumTitleSortOverride soal
    System.Music.ArtistSortOverride PKEY_Music_ArtistSortOverride 上昇
    System.Music.AlbumArtistSortOverride PKEY_Music_AlbumArtistSortOverride soaa
    System.TitleSortOverride PKEY _TitleSortOverride sonm
    System.Music.ComposerSortOverride PKEY_Music_ComposerSortOverride soco

     

  • WINDOWS 8 MPEG-4 ソースにステレオ 3D atom のサポートが追加されました。

  • WINDOWS 8 MPEG-4 ソースとシンクに AC3 と DD+ のサポートが追加されました。

  • WINDOWS 8 MPEG-4 シンクでは、4 ギガバイト (GB) を超えるファイルが非フラグメント MP4 でサポートされています。

  • スクラブは、WINDOWS 8 MPEG-4 ソースで最適化されています。

    待機時間を短縮するために、特定のシーク位置の 2 つの最も近いキー フレームの情報は、 IMFSeekInfo::GetNearestKeyFrames を介して公開されます。 キー フレームには依存フレームがないため、1 つのフレームのみをデコードした後にフレームが表示されます。 IMFGetService::GetService を使用して、メディア ソース、パイプライン、またはアプリケーションを介してこのインターフェイスを取得します。

    MPEG-4 ソースでレートを 0 に設定します。 パイプラインがスクラブ モードの場合、レートは 0 です。

  • SPS と PPS は、MPEG-4 シンクのサンプル データに格納できます。

    MPEG-4 シンクのMF_MPEG4SINK_SPSPPS_PASSTHROUGH属性は、SPS と PPS を入力サンプル (H.264 ビデオ データ) と共に保存できるように定義されています。 生成されたmp4クリップは、Windows 7 MPEG-4ソースなどによって再生可能です。

  • SPS と PPS は、MPEG-4 シンクの入力サンプルから抽出できます。

    MPEG-4 シンクの入力メディア タイプで SPS と PPS がMF_MT_MPEG_SEQUENCE_HEADERによって設定されていない場合、MPEG-4 シンクは入力サンプルから SPS と PPS を抽出しようとします。 MPEG-4 シンクでは、SPS と PPS を使用しないすべての入力サンプルがデコードできないため、最初の SPS と PPS が見つかるまで入力サンプルは無視されます。

  • 非フラグメント MP4 では、AVC 構成レコードの 3D 情報がサポートされています。

  • H.264 VLD DXVA デコードを最適化するために、H.264 圧縮サンプルに対して NALU の長さが公開されます。

    MPEG-4 ソース セット は、MFVideoFormat_H264 または MFVideoFormat_h264 の出力メディアの種類に MF_NALU_LENGTH_SETします。 各出力サンプルに MF_NALU_LENGTH_INFORMATION の BLOB を設定し、1 つの圧縮サンプル内の異なる NALU の 4 バイトの NALU 長を設定します。

  • MP4 ソースでの MPEG2 ADTS オーディオのサポートが追加されました。

メディア ソースとシンク

Media Foundation での MPEG-4 サポート

メディア ファンデーションでサポートされるメディア形式