H.264 视频解码器

Media Foundation H.264 视频解码器是一种 媒体基础转换 ,支持对基线、主配置文件和高配置文件进行解码,最高级别为 5.1。

H.264 视频解码器公开以下接口。

若要创建解码器的实例,请执行以下操作之一:

输入类型

输入类型必须至少包含以下两个属性:

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,用于设置以下编解码器属性。

格式约束

解码器支持以下格式:

设置 格式
配置文件/级别 基线、主配置文件和高配置文件,最高级别为 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 解码仅适用于主要兼容的基线、Main 和高配置文件比特流。 (主要兼容的基线位流定义为 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
Msmpeg2vdec.dll

另请参阅

编解码器对象

媒体基础中的 MPEG-4 支持

Media Foundation 中支持的媒体格式

视频媒体类型