エンコード統計の取得 (Microsoft Media Foundation)
エンコード セッションで何が起こっているかに関する情報は、一般に、サンプルの処理中に返されるエラー コードの形式ですぐに利用できます。 ただし、さまざまなエンコードの側面に関してコーデックから取得できる統計情報がいくつかあります。
ビデオ フレーム情報
取得できる一部のビデオ統計情報では、エンコーダーによって処理されたフレームの数が処理されます。 ビデオ エンコーダーから読み取ることができる 3 つのフレーム番号プロパティがあります。
- MFPKEY_TOTALFRAMES は、DMO の入力ストリームを介して処理されるフレームの数です。
- MFPKEY_CODEDFRAMES は、エンコードされたフレームの数です。 渡されたフレームの合計数からこの値を減算することで、削除されたフレームの数を決定できます。
- MFPKEY_ZEROBYTEFRAMES は、既に含まれているコンテンツが重複しているため、エンコードされていないフレームの数です。 この値は、DMO によって報告されたコード化されたフレームの数から減算されません。
エンコード中はいつでもビデオ フレームのプロパティを読み取ることができます。 これは、エンコード設定がコンテンツに適しているかどうかを判断する際に役立ちます。フレームの合計とコード化されたフレームの間に大きな違いがある場合は、圧縮されたコンテンツが品質要件を満たしていない可能性があります。 エンコードが完了したら、最終的な値を読み取ることができます。
VBR バッファー統計
使用するエンコード モードに応じて、バッファー設定の一部またはすべてがエンコード中に決定される場合があります (たとえば、コンテンツがエンコードされるまで、品質ベースの VBR のビット レートは不明です)。 IPropertyBag::Read メソッドを使用して取得できる VBR バッファー プロパティは 4 つあります。
- MFPKEY_RAVG は、VBR コンテンツの平均ビット レートです。
- MFPKEY_BAVG は、平均ビット レートのバッファー ウィンドウです。
- MFPKEY_RMAX は、VBR コンテンツのピーク ビット レートです。
- MFPKEY_BMAX はピーク バッファー ウィンドウです。
サンプルの処理を開始した後は、ストリームのエンコードが完了するまで、VBR プロパティを読み取らてはなりません。 その場合、エンコーダーは、エンコードが完了したことを示すシグナルとして要求を解釈します。 次に処理するサンプルは、新しいエンコード セッションとして扱われます。
関連トピック