H.264 影片解碼器
Media Foundation H.264 影片解碼器是一種 媒體基礎轉換 ,可支援解碼基準、主要和高設定檔,最高層級為 5.1。
H.264 影片解碼器會公開下列介面。
- Windows 8) 支援ICodecAPI (
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
若要建立解碼器的實例,請執行下列其中一項:
- 呼叫 MFTEnum 或 MFTEnumEx 函式。
- 呼叫 CoCreateInstance。 解碼器的 CLSID 是在 wmcodecdsp.h 中宣告 CLSID_CMSH264DecoderMFT。
輸入類型
輸入類型至少必須包含下列兩個屬性:
屬性 | 描述 |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 或MFVideoFormat_H264_ES |
如果輸入類型只包含這兩個屬性,解碼器會提供預設輸出類型,做為預留位置。 當解碼器收到足夠的輸入樣本來產生輸出框架時,它會從IMFTransform::P rocessOutput傳回MF_E_TRANSFORM_STREAM_CHANGE來發出格式變更訊號。 如需處理格式變更的詳細資訊,請參閱 ProcessOutput 檔。
若要避免初始格式變更,請盡可能在輸入類型中提供更多資訊,包括:
屬性 | 描述 |
---|---|
MF_MT_FRAME_RATE | 畫面播放速率。 |
MF_MT_FRAME_SIZE | 框架尺寸。 |
MF_MT_INTERLACE_MODE | 交錯模式。
注意: 在 H.264 影片中,交錯結構可以動態變更,因此此屬性的建議值 MFVideoInterlace_MixedInterlaceOrProgressive。 視訊基礎資料流程中的交錯資訊優先于媒體類型。 如需詳細資訊,請參閱 影片交錯。 |
MF_MT_PIXEL_ASPECT_RATIO | 圖元外觀比例。 |
輸入類型必須在輸出類型之前設定。 在設定輸入類型之前,編碼器的 IMFTransform::SetOutputType 方法會傳回 MF_E_TRANSFORM_TYPE_NOT_SET。
輸出型別
解碼器支援下列輸出子類型:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
如需這些子類型的詳細資訊,請參閱 影片子類型 GUID。
轉換屬性
H.264 解碼器會實作 IMFTransform::GetAttributes 方法。 應用程式可以使用這個方法來取得或設定下列屬性。
屬性 | 描述 |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | 啟用或停用硬體加速。 |
CODECAPI_AVDecVideoThumbnailGenerationMode | 啟用或停用縮圖產生模式。 |
MF_SA_D3D_AWARE | 表示解碼器支援 DirectX 影片加速 (DXVA) 。 將 視為唯讀。 |
在 Windows 8 中,H.264 解碼器也支援下列屬性。
屬性 | 描述 |
---|---|
CODECAPI_AVLowLatencyMode | 啟用或停用低延遲解碼模式。 |
CODECAPI_AVDecNumWorkerThreads | 設定解碼器所使用的背景工作執行緒數目。 |
CODECAPI_AVDecVideoMaxCodedWidth | 設定解碼器將接受做為輸入類型的圖片寬度上限。 |
CODECAPI_AVDecVideoMaxCodedHeight | 設定解碼器將接受做為輸入類型的最大圖片高度。 |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | 指定輸出樣本數目上限。 |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | 指定解碼器是否公開 IYUV/I420 輸出類型, (適合在其他格式之前轉碼) 。 |
在 Windows 8 中,H.264 解碼器支援 ICodecAPI 介面。 此介面提供替代 API 來設定下列編解碼器屬性。
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
格式條件約束
解碼器支援下列格式:
設定 | 格式 |
---|---|
設定檔/層級 | 基準、主要和高設定檔,最高層級為 5.1。 (如需詳細資訊,請參閱 ) |
Chroma 格式 | 4:2:0 chroma 或 monochrome |
最小解析度 | 48 × 48 圖元 |
最大解析度 | 4096 × 2304 圖元 DXVA 加速的最大保證解析度為 1920 × 1088 圖元;在更高的解析度上,如果基礎硬體支援解碼,則會使用 DXVA 進行解碼,否則會使用軟體進行解碼。 注意: 在 Windows 7 中,軟體與 DXVA 解碼的最大支援解析度為 1920 × 1088 圖元。 |
DXVA | 解碼器支援 DXVA 第 2 版,但不支援 DXVA 第 1 版。 DXVA 解碼僅支援主要相容基準、主要和高設定檔位流。 (主要相容的基準位元流定義為 profile_idc=66 和 constrained_set1_flag=1.) |
輸入資料必須符合 ISO/IEC 14496-10 的附錄 B。 資料必須包含開始程式碼。 解碼器會略過位元組,直到它在位元組資料流程中找到有效的序列參數集 (SPS) 和圖片參數集 (PPS) 。
解碼器不支援電影粒紋技術。
注意
舊版的檔錯誤指出 Windows Server 2008 R2 上支援解碼器。
如果已安裝適用于 Windows Vista 的平臺更新補充,H.264 視訊解碼器可在 Windows Vista 上使用,但只能使用 來源讀取器在 Windows Vista 上存取。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
DLL |
|
另請參閱