H.264 ビデオ デコーダー

Media Foundation H.264 ビデオ デコーダーは、レベル 5.1 までのベースライン、メイン、および高プロファイルのデコードをサポートする Media Foundation Transform です。

H.264 ビデオ デコーダーは、次のインターフェイスを公開します。

デコーダーのインスタンスを作成するには、次のいずれかの操作を行います。

入力の種類

入力の種類には、少なくとも次の 2 つの属性が含まれている必要があります。

属性 説明
MF_MT_MAJOR_TYPE MFMediaType_Video
MF_MT_SUBTYPE MFVideoFormat_H264 またはMFVideoFormat_H264_ES

 

入力の種類にこれら 2 つの属性のみが含まれている場合、デコーダーはプレースホルダーとして機能する既定の出力の種類を提供します。 デコーダーは、出力フレームを生成するのに十分な入力サンプルを受信すると、IMFTransform::P rocessOutput からMF_E_TRANSFORM_STREAM_CHANGEを返すことによって、形式の変更を通知します。 形式の変更の処理の詳細については、 ProcessOutput のドキュメントを参照してください。

初期形式の変更を回避するには、次のような情報を入力の種類にできるだけ多く指定します。

属性 説明
MF_MT_FRAME_RATE フレーム レート。
MF_MT_FRAME_SIZE フレームの寸法。
MF_MT_INTERLACE_MODE インターレース モード。 メモ: H.264 ビデオでは、インターレース構造が動的に変更される可能性があるため、この属性の推奨値は MFVideoInterlace_MixedInterlaceOrProgressive。 ビデオの基本ストリームの情報をインターレースすると、メディアの種類よりも優先されます。 詳細については、「 ビデオインターレース」を参照してください。
MF_MT_PIXEL_ASPECT_RATIO ピクセルの縦横比。

 

入力の種類は、出力の種類の前に設定する必要があります。 入力の種類が設定されるまで、エンコーダーの IMFTransform::SetOutputType メソッドは MF_E_TRANSFORM_TYPE_NOT_SETを返します。

出力の種類

デコーダーでは、次の出力サブタイプがサポートされています。

  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

これらのサブタイプの詳細については、「 ビデオ サブタイプ GUID」を参照してください。

属性の変換

H.264 デコーダーは 、IMFTransform::GetAttributes メソッドを実装します 。 アプリケーションでは、このメソッドを使用して、次の属性を取得または設定できます。

属性 説明
CODECAPI_AVDecVideoAcceleration_H264 ハードウェア アクセラレーションを有効または無効にします。
CODECAPI_AVDecVideoThumbnailGenerationMode サムネイル生成モードを有効または無効にします。
MF_SA_D3D_AWARE デコーダーが DirectX ビデオ アクセラレーション (DXVA) をサポートしていることを示します。 読み取り専用として扱います。

 

Windows 8 では、H.264 デコーダーは次の属性もサポートしています。

属性 説明
CODECAPI_AVLowLatencyMode 待機時間の短いデコード モードを有効または無効にします。
CODECAPI_AVDecNumWorkerThreads デコーダーによって使用されるワーカー スレッドの数を設定します。
CODECAPI_AVDecVideoMaxCodedWidth デコーダーが入力の種類として受け入れる画像の最大幅を設定します。
CODECAPI_AVDecVideoMaxCodedHeight デコーダーが入力の種類として受け入れる画像の最大高さを設定します。
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT 出力サンプルの最大数を指定します。
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER デコーダーが IYUV/I420 出力の種類 (コード変換に適した) を他の形式より前に公開するかどうかを指定します。

 

Windows 8 では、H.264 デコーダーは ICodecAPI インターフェイスをサポートしています。 このインターフェイスは、次のコーデック プロパティを設定するための alternativate API を提供します。

書式制約

デコーダーでは、次の形式がサポートされています。

設定 フォーマット
プロファイル/レベル 基準プロファイル、メイン プロファイル、および高プロファイル (レベル 5.1 まで)。 (詳細については、ITU-T H.264 仕様を参照してください)。
彩度の形式 4:2:0 彩度またはモノクロ
最小解像度 48 × 48 ピクセル
最大解像度 4096 × 2304 ピクセル
DXVA アクセラレーションの最大解像度は 1920 × 1088 ピクセルです。より高い解像度では、DXVA でデコードが行われ、基になるハードウェアでサポートされている場合は、デコードがソフトウェアで行われます。
メモ: Windows 7 では、サポートされている最大解像度は、ソフトウェアと DXVA デコードの両方で 1920 × 1088 ピクセルです。
Dxva デコーダーは DXVA バージョン 2 をサポートしていますが、DXVA バージョン 1 はサポートしていません。 DXVA デコードは、メイン互換のベースライン、メイン、および高プロファイルのビットストリームでのみサポートされます。 (メイン互換のベースライン ビットストリームは 、profile_idc=66 および constrained_set1_flag=1 として定義されます。

 

入力データは、ISO/IEC 14496-10 の付属文書 B に準拠している必要があります。 データには開始コードを含める必要があります。 デコーダーは、バイト ストリームで有効なシーケンス パラメーター セット (SPS) とピクチャ パラメーター セット (PPS) が見つかるまでバイトをスキップします。

デコーダーは、フィルム グレイン テクノロジをサポートしていません。

注意

以前のバージョンのドキュメントでは、デコーダーが Windows Server 2008 R2 でサポートされていることが誤って記載されています。

 

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

要件

要件
サポートされている最小のクライアント
Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー
サポートなし
[DLL]
Msmpeg2vdec.dll

関連項目

Codec オブジェクト

Media Foundation での MPEG-4 サポート

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

ビデオ メディアの種類