使用 VBR 編碼 (Microsoft Media Foundation)
如 編碼方法 主題所述,變數比特率 (VBR) 編碼可用來改善內容品質的一致性。 您可以用設定固定比特率(CBR)數據流的方式來設定可變比特率(VBR)數據流,但緩衝區參數(如比特率和緩衝視窗)除外。 本節說明如何設定 VBR 數據流。
設定以質量為基礎的可變位元率 (VBR)
使用以質量為基礎的 VBR 方法編碼不需要任何預先定義的緩衝區參數。 相反地,您會指定編碼器用來動態判斷適當緩衝區參數的品質等級(從 0 到 100)。 此編碼模式只會使用一個編碼傳遞。
您可以列舉音訊編解碼器支援的品質型 VBR 輸出類型。 設定輸出類型時,您必須使用 DMO 所傳回的其中一種類型。 如需詳細資訊,請參閱 列舉特定編碼模式的音訊類型。
若要設定以質量為基礎的 VBR 視訊串流,您必須設定下表所列的屬性。
財產 | 描述 |
---|---|
MFPKEY_VBRENABLED | 設定為 VARIANT_TRUE。 |
MFPKEY_VBRQUALITY | 設定為所需的品質值,從 0 到 100。 並非所有品質值都代表離散設定。 如需詳細資訊,請參閱屬性描述。 |
設定不受限制的 VBR
不受限制的 VBR 編碼可讓編碼器改變個別樣本的大小,而沒有任何明確的緩衝區限制。 不過,在產生的內容持續時間內的平均比特率必須小於或等於指定的值。 不受限制的 VBR 需要進行兩次編碼處理。
您可以列舉音訊編解碼器支援的雙傳遞 VBR 輸出類型。 設定輸出類型時,您必須使用 DMO 所傳回的其中一種類型。 如需詳細資訊,請參閱 列舉特定編碼模式的音訊類型。
若要設定不受限制的 VBR 視訊串流,您必須設定下表所列的屬性。
財產 | 描述 |
---|---|
MFPKEY_VBRENABLED | 設定為 VARIANT_TRUE。 |
MFPKEY_PASSESUSED | 設定為 2。 |
MFPKEY_RAVG | 設定為所需的平均比特率。 |
設定 VBR Peak-Constrained
峰值限制的 VBR 就像不受限制的 VBR,因為它限制在串流持續時間內的平均比特率。 此外,受尖峰限制的 VBR 符合尖峰緩衝器。 這個緩衝區是使用尖峰位速率和尖峰緩衝區視窗來描述,就像 CBR 緩衝區是由平均比特率和緩衝區視窗所描述。 此模式可讓編碼器彈性地編碼個別樣本,同時遵守尖峰限制。 當裝置中的晶元執行譯碼時,這特別有用,例如 DVD 播放機,其中必須考慮硬體限制。
支援的峰值限制可變比特率 (VBR) 音訊編碼器輸出的類型與不受限制的 VBR 所列舉的類型相同。 在 DMO 上設定尖峰值,並使用提供的類型。 如需詳細資訊,請參閱 列舉特定編碼模式的音訊類型。
若要設定尖峰限制的 VBR 視訊串流,您必須使用 IPropertyBag::Write 方法來設定下表所列的屬性。
財產 | 描述 |
---|---|
MFPKEY_VBRENABLED | 設定為 VARIANT_TRUE。 |
MFPKEY_PASSESUSED | 設定為 2。 |
MFPKEY_RAVG | 設定為所需的平均比特率。 |
MFPKEY_RMAX | 設定為所需的尖峰比特率。 |
MFPKEY_BMAX | 設定為對應至尖峰比特率的緩衝區視窗。 |
注意
建議您將尖峰比特率設定為平均比特率至少兩倍。 將尖峰速率設定為較低的值可能會導致編解碼器將內容編碼為雙階段 CBR,而不是尖峰限制的 VBR。
相關主題