Share via


Windows 媒體音訊編碼器

Windows 媒體音訊編碼器會編碼音訊資料流程。 編碼器支援三種編碼輸出類別:Windows Media Audio Standard、Windows Media Audio Professional 和 Windows Media Audio Lossless。

類別識別碼

Windows 媒體音訊編碼器的類別識別碼 (CLSID) 是以常數 CLSID_CWMAEncMediaObject 表示。 您可以呼叫 CoCreateInstance 來建立音訊編碼器的實例。

輸入格式

下表顯示代表 Windows 媒體音訊編碼器所支援輸入類別的音訊格式標籤。 如需如何設定編碼器輸入和輸出類型的資訊,請參閱 設定音訊編碼

格式化標籤常數 格式化標籤值 音訊格式
WAVE_FORMAT_PCM 0x0001 PCM 格式
WAVE_FORMAT_IEEE_FLOAT 0x0003 IEEE 浮點數
WAVE_FORMAT_EXTENSIBLE 0xFFFE PCM/IEEE 格式, 採用EEEATEXTENSIBLE 結構

 

輸出格式

下表顯示代表 Windows 媒體音訊編碼器所支援的輸出類別的音訊格式標籤。

格式化標籤常數 格式化標籤值 音訊格式
WAVE_FORMAT_WMAUDIO2 0x0161 Windows Media Audio Standard
WAVE_FORMAT_WMAUDIO3 0x0162 Windows Media Audio Professional
WAVE_FORMAT_WMAUDIO_LOSSLESS 0x0163 Windows 媒體音訊遺失

 

介面

音訊 endoder 物件會 公開 IMediaObject 介面,讓物件可以做為 DirectX 媒體物件 (DMO),並公開 IMFTransform 介面,讓物件可作為媒體基礎轉換 (MFT)。

Windows 媒體音訊編碼器會根據您取得的介面以及執行哪個 Windows 版本,以 DMO 或 MFT 的形式運作。 下表顯示音訊編碼器以 DMO 或 MFT 運作的條件。

作業系統 編碼器行為
Windows XP Windows 媒體音訊編碼器一律會以 DMO 的形式運作。
Windows Vista 根據預設,Windows Media Audio 編碼器會以 DMO 的形式運作。 如果您在音訊編碼器上取得 IMFTransform 介面或 IPropertyStore 介面,它的行為會是 MFT。
Windows 7 根據預設,Windows Media Audio 編碼器會以 DMO 的形式運作。 如果您在音訊編碼器上取得 IMFTransform 介面,它會以 MFT 的形式運作。

 

編碼器屬性

Windows 媒體音訊編碼器支援下列屬性。

屬性 說明
MFPKEY_AVGCONSTRAINED 指定編碼器是否使用平均可控制的 VBR 編碼。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_BMAX 指定緩衝區視窗,以毫秒為單位,以毫秒為單位,以尖峰位速率指定受限制的變數位元速率 (VBR) 資料流程。
Windows XP 和更新版本。
Standard、Professional。
讀取/寫入
MFPKEY_CHECKDATACONSISTENCY2P 指定編碼器在執行雙階段 VBR 編碼時,是否應該檢查各階段的資料一致性。
Windows Vista 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_CONSTRAINDECLATENCY 指定編碼器是否受限於最大解碼器延遲需求。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_CONSTRAINENCCOMPLEXITY 指定編碼演算法的複雜度是否受到限制。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_CONSTRAINENCLATENCY 指定編碼器是否受限於最大延遲需求。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_CONSTRAIN_ENUMERATED_VBRQUALITY 指定編碼器所列舉的模式是否受限於符合品質需求的模式。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DECODERCOMPLEXITYPROFILE 指定編碼內容的複雜度設定檔。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_DESIRED_VBRQUALITY 指定 VBR 編碼所需的品質等級。
Windows Vista 和更新版本。
標準、專業、無損失。
唯寫。
MFPKEY_DYN_ALLOW_NOISESUB 指定編碼器是否使用雜訊替代。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_ALLOW_PCMRANGELIMITING 指定編碼器是否使用 PCM 範圍限制。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_BANDTRUNC_BWCEIL 指定編碼器中頻段截斷允許的編碼頻寬上限。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_BANDTRUNC_BWFLOOR 指定編碼器中頻段截斷所允許的最小編碼頻寬。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_BANDTRUNC_QCEIL 指定允許最小編碼頻寬的品質。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_BANDTRUNC_QFLOOR 指定允許最大編碼頻寬的品質。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_BANDTRUNCATION 指定編碼器是否執行頻帶截斷。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_SIMPLEMASK 指定編碼器是否使用 Windows 媒體音訊編碼器第 7 版所執行的遮罩計算樣式。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_STEREO_PREPROC 指定編碼器是否執行立體影像處理。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_VBR_BAVG 指定設定為使用平均可控制 VBR 編碼之編碼器的緩衝區視窗,以毫秒為單位。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_DYN_VBR_RAVG 指定設定為使用平均可控制 VBR 編碼之編碼器的平均位元速率,以每秒位數為單位。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_ENCCOMPLEXITY 指定編碼演算法的複雜度。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_ENDOFPASS 指定編碼傳遞的結尾。
Windows XP 和更新版本。
Standard、Professional。
唯寫。
MFPKEY_ENHANCED_WMA 指定核心編碼器是否使用「加號」功能。
Windows Vista 和更新版本。
Professional。
讀取/寫入
MFPKEY_MAXDECLATENCYMS 指定解碼器的最大延遲,以毫秒為單位。
Windows Vista 和更新版本。
標準、專業、無損失。
唯寫。
MFPKEY_MAXENCLATENCYMS 指定編碼器的延遲上限,以毫秒為單位。
Windows Vista 和更新版本。
標準、專業、無損失。
唯寫。
MFPKEY_MOST_RECENTLY_ENUMERATED_VBRQUALITY 指定最近列舉輸出類型的 VBR 品質等級。
Windows Vista 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_PASSESRECOMMENDED 指定編碼器所支援的傳遞數目上限。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_PASSESUSED 指定編碼器將用來編碼內容的傳遞數目。
Windows XP 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_PEAKCONSTRAINED 指定編碼器是否受限於尖峰位元速率。
Windows Vista 和更新版本。
Standard、Professional。
讀取/寫入
MFPKEY_PREFERRED_FRAMESIZE 指定每個畫面的慣用樣本數目。
Windows Vista 和更新版本。
Professional。
讀取/寫入
MFPKEY_REQUESTING_A_FRAMESIZE 指定編碼器是否應該使用慣用的畫面大小。
Windows Vista 和更新版本。
Professional。
讀取/寫入
MFPKEY_RMAX 指定尖峰位元速率,以每秒位數為單位,用於限制 2-pass variable-bit-rate (VBR) 編碼。
Windows XP 和更新版本。
Standard、Professional。
讀取/寫入
MFPKEY_STAT_BAVG 指定編碼資料流程的平均緩衝區視窗,以毫秒為單位。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_STAT_BMAX 指定編碼資料流程的最大緩衝區視窗,以毫秒為單位。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_STAT_RAVG 指定編碼資料流程的平均位元速率,以每秒位數為單位。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_STAT_RMAX 指定編碼資料流程的每秒位速率上限。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_VBRENABLED 指定編碼器是否使用 VBR 編碼。
Windows XP 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_WMA_ELEMENTARY_STREAM Windows Media Audio 編解碼器目前不會使用這個屬性。
MFPKEY_WMADRC_AVGREF 指定音訊內容的平均音量層級。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_WMADRC_PEAKREF 指定音訊內容中發生的最高音量層級。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_WMAENC_AVGBYTESPERSEC 指定 VBR 編碼音訊的平均每秒位元組數。
Windows XP 和更新版本。
標準、專業、無損失。
唯讀。
MFPKEY_WMAENC_BUFFERLESSCBR 指定編碼器是否應該為每個畫面產生 1 個 WMA 封包。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_WMAENC_GENERATE_DRC_PARAMS 指定編碼器是否應該產生動態範圍控制項參數。
Windows Vista 和更新版本。
標準、專業、無損失。
讀取/寫入
MFPKEY_WMAENC_ORIGWAVEFORMAT 指定 描述輸入音訊內容的 SEMANTICATEX 結構。
Windows XP 和更新版本。
Standard、Professional。
讀取/寫入
MFPKEY_WMAENC_RTSPDIF 指定編碼器是否應該啟用即時 S/PDIF 編碼。
Windows Vista 和更新版本。
Professional。
讀取/寫入

 

需求

需求
Client
Windows XP、Windows Vista 或 Windows 7
標題
Wmcodecdsp.h
DLL
Wmadmoe.dll

另請參閱

編解碼器物件

編解碼器實作