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 の種類 | 形容 |
|---|---|
| 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 ファイル ソースでは、次のサンプル エントリを解析できます。
| サンプル エントリ コード | メジャーの種類 | サブタイプ | 形容 | 筆記 |
|---|---|---|---|---|
| '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') は Windows 8 MPEG-4 のソースとシンクでサポートされていますが、"mfra" はサポートされていません。
H.263 は、Windows 8 MPEG-4 ソースでサポートされています。
MPEG-4 ソースは、MPEG-4 ファイル形式の 'h263' と 's263' の 2 つの fourcc を MFVideoFormat_H263のメディアの種類にマップするようになりました。
Windows 8 MPEG-4 ソースで MJPEG に対してさらに fourcc サポートが追加されました。
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 ステレオ 3D Atom のサポートが Windows 8 MPEG-4 ソースで追加されました。
Windows 8 MPEG-4 のソースとシンクで AC3 と DD+ のサポートが追加されました。
非フラグメント MP4 では、4 ギガバイト (GB) を超えるファイルが Windows 8 MPEG-4 シンクでサポートされています。
スクラブは、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 サポートの
-
Media Foundation でサポートされているメディア形式を する