Media Foundation H.264 视频解码器是一种 媒体基础转换 ,支持解码基线、主配置文件和高配置文件,最高级别为 5.1。
H.264 视频解码器公开以下接口。
- Windows 8) 支持 ICodecAPI (
-
IMFGetService
-
IMFQualityAdvise
-
IMFQualityAdvise2
-
IMFRateControl
-
IMFRateSupport
-
IMFRealTimeClient
-
IMFTransform
若要创建解码器的实例,请执行下列操作之一:
- 调用 MFTEnum 或 MFTEnumEx 函数。
- 调用 CoCreateInstance。 解码器的 CLSID CLSID_CMSH264DecoderMFT,在 wmcodecdsp.h 中声明。
输入类型必须至少包含以下两个属性:
| Attribute |
说明 |
|
MF_MT_MAJOR_TYPE |
MFMediaType_Video |
|
MF_MT_SUBTYPE |
MFVideoFormat_H264 或MFVideoFormat_H264_ES |
如果输入类型仅包含这两个属性,则解码器将提供充当占位符的默认输出类型。 当解码器收到足够多的输入样本以生成输出帧时,它会通过从 IMFTransform::P rocessOutput 返回MF_E_TRANSFORM_STREAM_CHANGE来发出格式更改信号。 有关处理格式更改的详细信息,请参阅 ProcessOutput 文档。
若要避免初始格式更改,请在输入类型中提供尽可能多的信息,包括:
| Attribute |
说明 |
|
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 方法。 应用程序可以使用此方法获取或设置以下属性。
| Attribute |
说明 |
|
CODECAPI_AVDecVideoAcceleration_H264 |
启用或禁用硬件加速。 |
|
CODECAPI_AVDecVideoThumbnailGenerationMode |
启用或禁用缩略图生成模式。 |
|
MF_SA_D3D_AWARE |
指示解码器支持 DirectX 视频加速 (DXVA) 。 将 视为只读。 |
在 Windows 8 中,H.264 解码器还支持以下属性。
| Attribute |
说明 |
|
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。 (有关详细信息,请参阅ITU-T H.264 规范。) |
| 色度格式 |
4:2:0 色度或单色 |
| 最小分辨率 |
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 Vista 的平台更新补充,则 H.264 视频解码器在 Windows Vista 上可用,但只能通过使用 源读取器在 Windows Vista 上访问。
| 要求 |
值 |
| 最低受支持的客户端 |
Windows 7 [仅限桌面应用] |
| 最低受支持的服务器 |
无受支持的版本 |
| DLL |
- Msmpeg2vdec.dll
|
-
编解码器对象
-
Media Foundation 中的 MPEG-4 支持
-
Media Foundation 中支持的媒体格式
-
视频媒体类型