編碼屬性
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:
- 取得編碼器 MFT 的 IMFTransform 介面的參考資料,詳情如 所述的使用編碼器的 IMFTransform 介面。
- 查詢 IPropertyStore 介面的編碼器 MFT。
- 呼叫 IPropertyStore::SetValue來設定必要的屬性。
如果您使用內建編碼器激活物件,並已建立並設定的 ASF 檔案匯流排,您可以將 ASF 媒體匯流排的屬性存放區傳遞至 MFCreateWMAEncoderActivate 或 MFCreateWMVEncoderActivate。 編碼器會根據應用程式指定的設定自動設定。 如需詳細資訊,請參閱 使用編碼器的啟用物件中所述的程式。
如需使用啟用物件建立 Media Foundation 物件的詳細資訊,請參閱 Activation Objects。