設定 Quality-Based VBR
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 Source Reader 和 Sink Writer已取代它。 來源讀取器 和 接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議,盡可能在新程式碼中使用 Source Reader 和 Sink Writer,而非 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
您可以在數據流上使用以質量為基礎的可變比特率 (VBR) 編碼,以指定將針對整個數據流維護的品質等級,而不論產生的比特率需求為何。
針對以質量為基礎的 VBR 視訊串流,您必須指定從 1 到 100 的質量等級,100 代表最高品質。 目前只有30個離散質量設定。 下列質量等級等同於離散品質設定:1、4、8、 11、15、18、22、25、29、33、36、40、43、47、50、54、58、61、65、68、72、75、79、83、86、90、93、97、100。 上述清單中的兩個連續值之間的數位等同於與較低數位相同的質量設定。 例如,會列出 1 和 4,因此 2 和 3 都會產生與 1 相同的質量設定。
針對音訊串流,您可以列舉可用的模式並擷取數據流組態物件。 若要了解更多資訊,請參閱 列舉編解碼器格式。
使用以質量為基礎的 VBR 視訊時,您必須將 WMVIDEOINFOHEADER 結構的 dwBitrate 成員設定為正值。 寫入器不會使用這個值,但是傳遞零或負數可能會導致寫入時發生錯誤。
若要將配置檔中的數據流設定為使用以質量為基礎的 VBR 進行編碼,請執行下列步驟。
- 呼叫 WMCreateProfileManager 函式,以建立配置檔管理員物件。
- 開啟您要新增 VBR 支援的現有配置檔。 如需開啟設定檔的詳細資訊,請參閱 使用設定檔。
- 呼叫 IWMProfile::GetStream 或 IWMProfile::GetStreamByNumber,以取得您想要使用的數據流組態物件。
- 呼叫 IWMStreamConfig::QueryInterface,以取得數據流組態物件的 IWMPropertyVault 介面指標。
- 通過呼叫 IWMPropertyVault::SetProperty,使用 g_wszVBREnabled 屬性為數據流啟用 VBR。
- 呼叫 IWMPropertyVault::SetProperty 設置 g_wszVBRQuality 屬性,以設定 VBR 數據流的品質層級。
- 使用 IWMPropertyVault::SetProperty ,將 g_wszVBRBitrateMax 和 g_wszVBRBufferWindowMax 設為零。
- 呼叫 IWMProfile::ReconfigStream來儲存對數據流所做的變更。
- 儲存配置檔,或將它傳遞至寫入器物件並開始寫入。
相關主題