H.264 视频解码器
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 | 交错模式。[!注意] |
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,则解码是通过软件完成的。 [!注意] |
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 |
|
另请参阅