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