取得 Microsoft Media Foundation (編碼統計資料)
編碼會話中發生狀況的相關資訊,通常會以處理樣本時傳回的錯誤碼形式立即提供。 不過,有些統計資料可讓您從編解碼器擷取各種編碼層面的相關統計資料。
視訊畫面資訊
您可以擷取一些視訊統計資料,以處理編碼器所處理的畫面數。 您可以從視訊編碼器讀取三個畫面編號屬性:
- MFPKEY_TOTALFRAMES 是透過 DMO 輸入資料流程處理的畫面格數目。
- MFPKEY_CODEDFRAMES 是編碼的畫面格數目。 藉由從傳遞的畫面格總數減去此值,您可以判斷已捨棄的畫面格數目。
- MFPKEY_ZEROBYTEFRAMES 是未編碼的畫面格數目,因為它們已包含重複的內容。 此值不會從 DMO 所報告的自動程式碼框架數目減去。
您可以在編碼期間隨時讀取視訊畫面屬性。 這在判斷編碼設定是否適合您的內容時很有用;如果總畫面格和自動程式碼框架之間有很大差異,壓縮的內容可能無法符合您的品質需求。 完成編碼之後,您可以讀取最終值。
VBR 緩衝區統計資料
根據所使用的編碼模式,某些或所有緩衝區設定可能會在編碼期間決定 (例如,在內容編碼) 之前,不會知道品質型 VBR 的位元速率。 您可以使用 IPropertyBag::Read 方法取得四個 VBR 緩衝區屬性:
- MFPKEY_RAVG 是 VBR 內容的平均位元速率。
- MFPKEY_BAVG 是平均位元速率的緩衝區視窗。
- MFPKEY_RMAX 是 VBR 內容的尖峰位元速率。
- MFPKEY_BMAX 是尖峰緩衝區視窗。
開始處理範例之後,在完成串流編碼之前,您不應該讀取任何 VBR 屬性。 如果您這麼做,編碼器會將您的要求解譯為編碼完成的訊號。 您處理的下一個範例會被視為新的編碼會話。
相關主題