视频防抖动 MFT
视频防抖动 MFT 是 Microsoft 媒体基础转换 (MFT) ,用于对视频流执行图像防抖动。
CLSID
CLSID_CMSVideoDSPMFT
接口
输入格式
未压缩视频的视频防抖动 MFT 接受的输入媒体类型和子类型组合包括:
- MEDIATYPE_VIDEO
- MEDIASUBTYPE_NV12
- MEDIASUBTYPE_YUY2
输出格式
视频防抖动 MFT 接受的输出媒体类型和子类型组合包括:
- MEDIATYPE_VIDEO
- MEDIASUBTYPE_NV12
输入媒体类型必须在输出媒体类型之前设置。 在大多数情况下,有限的格式支持不是问题,因为管道会自动插入必要的颜色转换。
视频防抖动 MFT 组件能够在输入更改时进行动态格式更改。 当输入图片大小更改或子类型更改时,它将在输出流上触发动态格式更改。
在以下情况下,视频防抖动 MFT 将执行颜色转换:
- 输入格式为 MEDIASUBTYPE_YUY2时。
- 使用 Microsoft DirectX 9.0 兼容模式时。
特性
视频防抖动 MFT 通过 IMFAttributes 接口支持以下属性。
- 属性MF_VIDEODSP_MODE将视频防抖动 MFT 置于防抖动模式或直通模式。 应用程序应在 GUID MF_VIDEODSP_TYPE上调用 IMFAttributes::SetUINT32,其整数对应于以下有效值之一:MFVideoDSPMode_Stabilization = 4,MFVideoDSPMode_Passthrough = 1。 播放期间随时可以更改MF_VIDEODSP_MODE。 这会导致动态模式更改。 (16 或 2 帧后,输出将切换到稳定或传递,具体取决于属性更改后的延迟模式) 。
- 属性MF_LOW_LATENCY将视频防抖动 MFT 置于低延迟模式或高质量模式。 应用程序应调用 GUID MF_LOW_LATENCY上的 IMFAttributes::SetUINT32,其整数对应于以下有效值之一:低延迟 = 1 High Quality = 0
- 管道使用 属性MF_SA_D3D11_BINDFLAGS 来指定用于创建输出样本的 D3D11 绑定标志。 D3D11_BIND_FLAG枚举中值的任意组合都是有效的。
- 管道使用 属性MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT 来指定此组件在输出时必须支持的最小样本数。
- 属性 MFSampleExtension_VideoDSPMode 设置在由稳定器生成的每个样本上,以指示应用于该样本的有效 MF_VIDEODSP_MODE (样本是否稳定) 。 在某些情况下,由于系统负载较高或用户) 请求,样本可能无法稳定 (。 此属性的值与 MF_VIDEODSP_MODE 属性 (MFVideoDSPMode_Stabilization 和 MFVideoDSPMode_Passthrough) 相同。 若要获取此属性的值,应用程序应在 GUID MFSampleExtension_VideoDSPMode调用 IMFAttributes::SetUINT32。
备注
可以通过以下方法之一创建视频防抖动 DSP 的实例:
- 通过调用 MFTEnumEx。 视频防抖动 DSP 在 “MFT_CATEGORY_VIDEO_EFFECT ”类别下注册。
- 通过调用 COM 函数 CoCreateInstance 来传递 CLSID CLSID_CMSVideoDSPMFT。 若要使用此方法,必须包含 wmcodecdsp.h 和针对 wmcodecdspuuid.lib 的链接。
此外,视频防抖动 DSP 支持将 Windows 运行时 作为 Windows 媒体扩展进行实例化。 它在 Windows.Media.VideoEffects 上定义,其全名为“Windows.Media.VideoEffects.VideoStabilization”。
要求
要求 | 值 |
---|---|
标头 |
|
另请参阅