共用方式為


設定受限制的 VBR

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows Media Format 11 SDK。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

您可以在資料流程上使用限制變數位元速率 (VBR) 編碼,以指定將在編碼內容中維護的平均位元速率。 您也可以指定資料流程的最大位元速率和所需的緩衝區視窗上限。

在編碼之前,您無法知道限制 VBR 資料流程的平均位元速率為何,但您可以使用粗略的估計值。 一般而言,您指定的最大位元速率最終會是平均位元速率的兩到三倍。

限制的 VBR 必須與雙階段編碼搭配使用。 未在設定檔中設定雙階段編碼。 您必須將寫入器設定為在寫入資料流程之前執行前置處理傳遞。 如需使用雙階段編碼的詳細資訊,請參閱 使用 Two-Pass 編碼

若要在設定檔中設定資料流程以使用受限制的 VBR 編碼,請執行下列步驟。

  1. 呼叫 WMCreateProfileManager 函式來建立設定檔管理員物件。
  2. 開啟您想要新增 VBR 支援的現有設定檔。 如需開啟設定檔的詳細資訊,請參閱 使用設定檔
  3. 呼叫 IWMProfile::GetStreamIWMProfile::GetStreamByNumber,以取得您想要使用的資料流程組態物件。
  4. 呼叫IWMStreamConfig::QueryInterface,以取得資料流程組態物件的IWMPropertyVault介面指標。
  5. 呼叫g_wszVBREnabled屬性的IWMPropertyVault::SetProperty來啟用資料流程的 VBR 編碼。
  6. 使用 IWMPropertyVault::SetProperty 的呼叫來設定 g_wszVBRBitrateMaxg_wszVBRBufferWindowMax 屬性所需的最大值。
  7. 呼叫 IWMProfile::ReconfigStream來儲存對資料流程所做的變更。
  8. 儲存設定檔,或將它傳遞至寫入器物件。
  9. 設定寫入器以執行前置處理傳遞。

設定 VBR 資料流程