共用方式為


若要設定 Quality-Based VBR

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是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、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 編碼,請執行下列步驟。

  1. 呼叫 WMCreateProfileManager 函式來建立設定檔管理員物件。
  2. 開啟您想要新增 VBR 支援的現有設定檔。 如需開啟設定檔的詳細資訊,請參閱 使用設定檔
  3. 呼叫 IWMProfile::GetStreamIWMProfile::GetStreamByNumber,以取得您想要使用的資料流程組態物件。
  4. 呼叫IWMStreamConfig::QueryInterface,以取得資料流程組態物件的IWMPropertyVault介面指標。
  5. 為數據流啟用 VBR,方法是呼叫g_wszVBREnabled屬性的IWMPropertyVault::SetProperty
  6. 呼叫g_wszVBRQuality屬性的IWMPropertyVault::SetProperty,以設定 VBR 資料流程的品質等級。
  7. 使用IWMPropertyVault::SetProperty將兩者都設定為零g_wszVBRBitrateMaxg_wszVBRBufferWindowMax
  8. 呼叫 IWMProfile::ReconfigStream來儲存對資料流程所做的變更。
  9. 儲存設定檔,或將它傳遞至寫入器物件並開始寫入。

設定 VBR 資料流程