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 ファイル ソースはサブタイプを次のように設定します。
- サブタイプ = MFMPEG4Format_Base
- サブタイプ。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 オーディオのサポートが追加されました。
関連トピック