編碼屬性

Windows 媒體音訊和 Windows 媒體視訊編碼器支援各種不同的編碼模式。 這些模式通常會透過在編碼器 媒體基礎轉換 上設定屬性, (MFT) 。 若要執行檔案編碼,無論是使用 WMContainer 層級元件還是建置部分拓撲,您必須根據編碼模式和資料流程的媒體類型,適當地設定編碼器。 您必須在編碼器和物件上設定相同的屬性集, (ASF 檔案接收或 ASF 多工器) 您用來寫入 ASF 檔案。

編碼器屬性定義于 wmcodecdsp.h 中。 用來設定編碼器的特定屬性是使用 IPropertyStore 介面的 方法來設定。

音訊資料流程屬性

下表顯示音訊資料流程的編碼器設定。

編碼類型 屬性名稱 - 值
常數位元速率編碼 MFPKEY_VBRENABLED - FALSE (選擇性) 根據預設,MFPKEY_VBRENABLED會設定為 FALSE
品質型變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (選擇性)
根據預設,MFPKEY_PASSESUSED設定為 1。
MFPKEY_DESIRED_VBRQUALITY - 從 0 到 100
未限制的變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
尖峰限制變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大位元速率
MFPKEY_BMAX - 緩衝區視窗上限

 

影片串流屬性

下表顯示視訊串流的編碼器設定。

編碼類型 屬性名稱
常數位元速率編碼 MFPKEY_VBRENABLED - FALSE (選擇性)
根據預設,MFPKEY_VBRENABLED設定為 FALSE
MFPKEY_VIDEOWINDOW - 緩衝區視窗
品質型變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (選擇性)
根據預設,MFPKEY_PASSESUSED設定為 1。
MFPKEY_DESIRED_VBRQUALITY - 從 0 到 100
未限制的變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
尖峰限制變數位元速率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大位元速率
MFPKEY_BMAX - 緩衝區視窗上限

 

設定編碼器的屬性存放區

您必須在編碼會話之前指定編碼類型和各種資料流程特定設定,以設定編碼器。 您也必須在 ASF ContentInfo 物件 的屬性存放區中設定編碼器屬性,此物件代表輸出檔案的 ASF 標頭物件。

如果您使用編碼器 MFT:

  1. 取得編碼器 MFT 之 IMFTransform 介面的參考,如 使用編碼器的 IMFTransform 介面中所述。
  2. 查詢 IPropertyStore 介面的編碼器 MFT。
  3. 呼叫 IPropertyStore::SetValue來設定必要的屬性。

如果您使用內建編碼器啟用物件並已建立已設定 ASF 檔案接收,您可以將 ASF 媒體接收的屬性存放區傳遞至 MFCreateWMAEncoderActivateMFCreateWMVEncoderActivate。 編碼器會根據應用程式指定的設定自動設定。 如需詳細資訊,請參閱 使用編碼器的啟用物件中所述的程式。

如需使用啟用物件建立 Media Foundation 物件的詳細資訊,請參閱 Activation Objects

具現化編碼器 MFT

Windows 媒體編碼器