Media Foundation H.265 视频编码器是一种 媒体基础转换 ,支持将内容编码为 H.265/HEVC 格式。 编码器支持以下配置文件:
- Main Profile
H.265 视频编码器公开以下接口:
输入类型
输入媒体类型必须具有以下子类型之一:
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
有关这些子类型的详细信息,请参阅 视频子类型 GUID。
输出类型必须在输入类型之前设置。 在设置输出类型之前,编码器的 IMFTransform::SetInputType 方法将返回 MF_E_TRANSFORM_TYPE_NOT_SET。
输出类型
编码器支持单个输出子类型:
- MFVideoFormat_H265
在输出媒体类型上设置以下属性。
属性 | 说明 |
---|---|
MF_MT_MAJOR_TYPE | 主要类型。 必须 MFMediaType_Video。 |
MF_MT_SUBTYPE | 视频子类型。 必须 MFVideoFormat_HEVC。 |
MF_MT_AVG_BITRATE | 平均编码比特率,以位/秒为单位。 必须大于零。 |
MF_MT_FRAME_RATE | 帧速率。 |
MF_MT_FRAME_SIZE | 帧大小。 |
MF_MT_INTERLACE_MODE | 交错模式。 |
MF_MT_VIDEO_PROFILE | H.265 编码配置文件。 支持的值包括:
|
MF_MT_MPEG2_LEVEL | 指定编码视频的级别。 有关配置文件和级别约束的详细信息,请参阅ITU-T H.265的附件 A。 |
MF_MT_PIXEL_ASPECT_RATIO | 可选。 指定像素纵横比。 默认值为 1:1。 |
设置输出类型后,视频编码器通过添加 MF_MT_MPEG_SEQUENCE_HEADER 属性来更新 类型 。 此属性包含序列标头。
支持的 IMFTransform 方法
H.265/HEVC 编码器支持 IMFTransform 接口的以下方法:
- GetAttributes
- GetInputAvailableType
- GetInputCurrentType
- GetInputStatus
- GetInputStreamInfo
- GetOutputAvailableType
- GetOutputCurrentType
- GetOutputStatus
- GetOutputStreamInfo
- GetStreamCount
- GetStreamLimits
- ProcessEvent
- ProcessMessage
- ProcessInput
- ProcessOutput
- SetInputType
- SetOutputType
- SetOutputBounds
所有其他 IMFTransform 方法将返回错误E_NOTIMPL。
支持的 ICodecAPI 方法
H.265/HEVC 编码器支持 ICodecAPI 接口的以下方法:
所有其他 ICodecAPI 方法将返回错误E_NOTIMPL。
编解码器属性
H.265 编码器实现用于设置编码参数的 ICodecAPI 接口。 它支持以下属性。
有关 HCK 编码器认证的编解码器要求,请参阅下面的 认证硬件编码器 部分。
属性 | 说明 |
---|---|
CODECAPI_AVEncCommonRateControlMode | 设置速率控制模式。 支持的模式包括:
这是一个VT_UI4值。 |
CODECAPI_AVEncCommonMeanBitRate | 设置编码的位流的平均比特率(以位/秒为单位)。 有效范围为 [1 ...2²²–1]。 这是一个VT_UI4值。 |
CODECAPI_AVEncCommonBufferSize | 设置常量比特率 (CBR) 编码的缓冲区大小(以字节为单位)。 有效范围为 [1 ...2²²–1]。 这是一个VT_UI4值。 |
CODECAPI_AVEncCommonMaxBitRate | 设置允许峰值比特率的速率控制模式的最大比特率。 有效范围为 [1 ...2²²–1]。 这是一个VT_UI4值。 |
CODECAPI_AVEncMPVGOPSize | 设置从一个 GOP 标头到下一个 GOP 标头的图片数,包括前导定位点,但不包括以下定位点。 有效范围为 [0 ...2²²–1]。 如果为零,则编码器选择 GOP 大小。 默认值为零。 这是一个VT_UI4值。 |
CODECAPI_AVLowLatencyMode | 启用或禁用低延迟模式。 这是一个VT_BOOL值。 |
CODECAPI_AVEncCommonQualityVsSpeed | 设置质量/速度权衡。 此值影响编码器如何执行各种编码操作,例如运动补偿。 在复杂性级别较高时,编码器运行速度较慢,但以相同的比特率生成更好的质量。 有效范围为 0 – 100。 在内部,此值映射到编码器支持的较小质量/速度级别集。 这是一个VT_UI4值。 |
CODECAPI_AVEncVideoForceKeyFrame | 强制编码器将下一帧编码为关键帧。 这是一个VT_UI4值。 |
CODECAPI_AVEncVideoEncodeQP | 设置此属性时,它将导致编码器使用指定的 QP 对下一帧和所有后续帧进行编码,直到指定新的 QP。 有效范围:0-51(含) |
CODECAPI_AVEncVideoMinQP | 此属性将设置在 CBR 速率控制期间编码器可以使用的最小 QP 限制。 这是一个VT_UI4值。 |
CODECAPI_AVEncVideoMaxQP | 此属性将设置在 CBR 速率控制期间编码器可以使用的最大 QP 限制。 这是一个VT_UI4值。 |
CODECAPI_VideoEncoderDisplayContentType | 设置内容是否为全屏视频,而不是视频窗口可能较小或根本没有视频的屏幕内容。 这是一个VT_UI4值。 |
CODECAPI_AVEncNumWorkerThreads | 设置用于执行压缩操作的线程数。 编码器将帧划分为多个磁贴,使线程数等于磁贴数。
|
认证硬件编码器
如果存在经过认证的硬件编码器,则通常使用它,而不是媒体基础相关方案的收件箱系统编码器。 需要经过认证的编码器才能支持一组特定的 ICodecAPI 属性,并且可以选择性地支持另一组属性。 认证过程应保证正确支持所需属性,如果支持可选属性,则也得到适当支持。
下面是编码器通过 HCK 编码器认证的必需和可选 ICodecAPI 属性集。
- CODECAPI_AVEncCommonRateControlMode
- CODECAPI_AVEncCommonQuality
- CODECAPI_AVEncCommonMeanBitRate
- CODECAPI_AVEncCommonBufferSize
- CODECAPI_AVEncMPVGOPSize
- CODECAPI_AVEncVideoEncodeQP
- CODECAPI_AVEncVideoForceKeyFrame
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 10 [仅限桌面应用] |
最低受支持的服务器 |
无受支持的版本 |
DLL |
|
另请参阅