次の方法で共有


H.265 / HEVC ビデオ エンコーダー

Media Foundation H.265 ビデオ エンコーダーは、H.265/HEVC 形式へのコンテンツのエンコードをサポートする Media Foundation Transform です。 エンコーダーでは、次のプロファイルがサポートされています。

  • メイン プロファイル

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

入力の種類

入力メディアの種類には、次のいずれかのサブタイプが必要です。

  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

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

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

出力の種類

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

  • MFVideoFormat_H265

出力メディアの種類に次の属性を設定します。

属性 説明
MF_MT_MAJOR_TYPE メジャーの種類。 MFMediaType_Videoする必要があります。
MF_MT_SUBTYPE ビデオ サブタイプ。 MFVideoFormat_HEVCする必要があります。
MF_MT_AVG_BITRATE エンコードされた平均ビット レート (1 秒あたりのビット数)。 0 より大きくなければなりません。
MF_MT_FRAME_RATE フレーム レート。
MF_MT_FRAME_SIZE フレーム サイズ。
MF_MT_INTERLACE_MODE インターレース モード。
MF_MT_VIDEO_PROFILE H.265 エンコード プロファイル。
サポートされる値は
  • eAVEncH265VProfile_Main_420_8
MF_MT_MPEG2_LEVEL コード化されたビデオのレベルを指定します。 プロファイルとレベルの制約の詳細については、ITU-T H.265 の付録 A を参照してください。
MF_MT_PIXEL_ASPECT_RATIO 省略可能。 ピクセルの縦横比を指定します。 既定値は 1:1 です。

 

出力の種類が設定されると、ビデオ エンコーダーは MF_MT_MPEG_SEQUENCE_HEADER 属性を追加して型を更新します。 この属性にはシーケンス ヘッダーが含まれています。

サポートされている IMFTransform メソッド

IMFTransform インターフェイスの次のメソッドは、H.265/HEVC エンコーダーでサポートされています。

その他のすべての IMFTransform メソッドは、エラー E_NOTIMPLを返します。

サポートされている ICodecAPI メソッド

H.265/HEVC エンコーダーでは、 ICodecAPI インターフェイスの次のメソッドがサポートされています。

その他のすべての ICodecAPI メソッドは、エラー E_NOTIMPLを返します。

コーデックのプロパティ

H.265 エンコーダーは、エンコード パラメーターを設定するための ICodecAPI インターフェイスを実装します。 次のプロパティがサポートされています。

HCK エンコーダー認定のコーデック要件については、以下の 「認定ハードウェア エンコーダー 」セクションを参照してください。

プロパティ 説明
CODECAPI_AVEncCommonRateControlMode レート制御モードを設定します。 サポートされているモードは次のとおりです。
  • eAVEncCommonRateControlMode_CBR
  • eAVEncCommonRateControlMode_Quality
他のモードを指定した場合は、 eAVEncCommonRateControlMode_CBR レート制御が使用されます。
これはVT_UI4値です。
CODECAPI_AVEncCommonMeanBitRate エンコードされたビット ストリームの平均ビット レートを 1 秒あたりのビット数で設定します。
有効な範囲は [1 ...2 ²–1]
これはVT_UI4値です。
CODECAPI_AVEncCommonBufferSize 定数ビット レート (CBR) エンコードのバッファー サイズをバイト単位で設定します。
有効な範囲は [1 ...2 ²–1]
これはVT_UI4値です。
CODECAPI_AVEncCommonMaxBitRate ピーク ビットレートを許可するレート制御モードの最大ビットレートを設定します。
有効な範囲は [1 ...2 ²–1]
これはVT_UI4値です。
CODECAPI_AVEncMPVGOPSize 1 つの GOP ヘッダーから次の GOP ヘッダーまでの画像の数を設定します(先頭のアンカーを含みますが、次のアンカーは含まれません)。
有効な範囲は [0 ...2 ²–1] 0 の場合、エンコーダーは GOP サイズを選択します。 既定値はゼロです。
これはVT_UI4値です。
CODECAPI_AVLowLatencyMode 待機時間の短いモードを有効または無効にします。
これはVT_BOOL値です。
CODECAPI_AVEncCommonQualityVsSpeed 品質/速度のトレードオフを設定します。 この値は、エンコーダーがモーション補正などのさまざまなエンコード操作を実行する方法に影響します。 より複雑なレベルでは、エンコーダーの実行速度は遅くなりますが、同じビット レートでより優れた品質が生成されます。
有効な範囲は 0 ~ 100 です。 内部的には、この値は、エンコーダーでサポートされている品質/速度レベルの小さなセットにマップされます。
これはVT_UI4値です。
CODECAPI_AVEncVideoForceKeyFrame エンコーダーで次のフレームをキー フレームとして強制的にコーディングします。
これはVT_UI4値です。
CODECAPI_AVEncVideoEncodeQP このプロパティを設定すると、エンコーダーは、指定された QP を使用して、新しい QP が指定されるまで、次のフレームと後続のすべてのフレームをエンコードします。
有効な範囲: 0 から 51(両端を含む)
CODECAPI_AVEncVideoMinQP このプロパティは、CBR レート制御中にエンコーダーが使用できる最小 QP に制限を設定します。
これはVT_UI4値です。
CODECAPI_AVEncVideoMaxQP このプロパティは、CBR レート制御中にエンコーダーが使用できる最大 QP に制限を設定します。
これはVT_UI4値です。
CODECAPI_VideoEncoderDisplayContentType ビデオのウィンドウが小さい場合やビデオがまったくない画面コンテンツとは対照的に、コンテンツが全画面表示のビデオであるかどうかを設定します。
これはVT_UI4値です。
CODECAPI_AVEncNumWorkerThreads 圧縮操作の実行に使用するスレッドの数を設定します。 エンコーダーは、スレッドの数がタイルの数と等しくなるように、フレームをタイルに分割します。
  • 論理プロセッサ数 スレッドの数は、論理プロセッサの数以下である必要があります。
  • フレームのサイズ。 タイルのサイズは、265 x 64 ピクセル以上である必要があります。
  • パリティ。 スレッドの数は偶数の値である必要があります。 指定した値が奇数の場合は、次に低い偶数の値が使用されます。
これはVT_UI4値です。

 

認定ハードウェア エンコーダー

認定されたハードウェア エンコーダーが存在する場合は、通常、Media Foundation 関連のシナリオの受信トレイ システム エンコーダーの代わりに使用されます。 認定エンコーダーは、特定の ICodecAPI プロパティのセットをサポートするために必要であり、必要に応じて別のプロパティ セットをサポートできます。 認定プロセスでは、必要なプロパティが適切にサポートされていること、および省略可能なプロパティがサポートされている場合は、そのプロパティも適切にサポートされていることを保証する必要があります。

エンコーダーが HCK エンコーダー認定に合格するために必要な ICodecAPI プロパティと省略可能な ICodecAPI プロパティのセットを次に示します。

要件

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

こちらもご覧ください

コーデック オブジェクト