閱讀英文

共用方式為


編碼屬性

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

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

音訊串流屬性

下表顯示音訊數據流的編碼器設定。

編碼類型 屬性名稱 - 值
常數比特率編碼 MFPKEY_VBRENABLED - FALSE (選擇性)根據預設,MFPKEY_VBRENABLED會設定為 FALSE
Quality-Based 變數比特率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (選擇性)
根據預設,MFPKEY_PASSESUSED設為1。
MFPKEY_DESIRED_VBRQUALITY - 從 0 到 100
不受限制的變數比特率編碼 MFPKEY_VBRENABLED -
MFPKEY_PASSESUSED - 2
Peak-Constrained 變數比特率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大比特率
MFPKEY_BMAX - 緩衝區視窗上限

 

影片串流屬性

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

編碼類型 屬性名稱
常數比特率編碼 MFPKEY_VBRENABLED - FALSE (選擇性)
根據預設,MFPKEY_VBRENABLED會設定為 FALSE
MFPKEY_VIDEOWINDOW - 緩衝區視窗
Quality-Based 變數比特率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (選擇性)
根據預設,MFPKEY_PASSESUSED設為1。
MFPKEY_DESIRED_VBRQUALITY - 從 0 到 100
不受限制的變數比特率編碼 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
Peak-Constrained 變數比特率編碼 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 Media Encoders