视频防抖动注册表设置

VideoStabilization 注册表项中的 OEM-set MaxPixelsPerSecond 值使 OEM 能够在设备上配置视频稳定设置,并在捕获时对视频应用视频稳定。 该配置考虑了设备的录制分辨率及其硬件和软件功能。

概述

VideoStabilization 注册表项 MaxPixelsPerSecond 值用于指定在最佳情况下设备上视频稳定的最大功能。 所有应用都可以读取注册表项,避免不合理地使用视频稳定功能。

MaxPixelsPerSecond 值中输入的值设置了限制,超过该限制,即使应用启用了视频稳定功能,MFT 也不会尝试打开视频稳定功能。 注册表项需要指示设备可以运行视频稳定的最大分辨率和帧速率。 如果未设置 MaxPixelsPerSecond 值,则视频稳定 MFT 将使用回退值。 最后,如果这也失败了,视频稳定将使用其内部逻辑关闭,以防止用户体验不佳。

视频稳定要求

当发生以下所有情况时,设备被认为能够运行视频稳定:

  • 视频稳定功能已打开,但未处于直通模式

  • 录制已打开

  • 预览处于活动状态

  • 预览中没有噪点或掉帧

  • 录制的视频中看不到噪点或丢帧

设置视频稳定注册表项

VideoStabilization 注册表项格式:

  • OEM 应设置一个 MaxPixelsPerSecond QWORD 值,该值定义了每秒像素数的截止值,超过该值,即使应用启用了视频稳定功能,也将强制在直通模式下运行。

  • MaxPixelsPerSecond 的定义如下:

    MaxPixelsPerSecond = width * height * frame-rate

    例如,对于 30 fps 的 1080p 分辨率,MaxPixelsPerSecond 定义为 1920 * 1080 * 30 = 62208000。

VideoStabilization 注册表项位置:

  • OEM 应在以下位置创建并设置用于视频稳定的 VideoStabilization 注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\VideoStabilization

    若要在 32 位计算机上设置 VideoStabilization 注册表项 MaxPixelsPerSecond 值,请在提升的命令提示符处使用以下命令:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\VideoStabilization" /v "MaxPixelsPerSecond" /t REG_QWORD /d 62208000 /f 
    
  • 在 64 位计算机上,OEM 还应在 Wow6432Node 路径上创建并设置相同的键:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Media Foundation\Platform\VideoStabilization

    若要在 64 位计算机上设置 VideoStabilization 注册表项 MaxPixelsPerSecond 值,请在提升的命令提示符处使用以下命令:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Windows Media Foundation\Platform\VideoStabilization" /v "MaxPixelsPerSecond" /t REG_QWORD /d 62208000 /f 
    

设置后,视频稳定 MFT 以及第一和第三方应用将可以看到 VideoStabilization 注册表项。

如果设置了 MaxPixelsPerSecond 值,则视频稳定 MFT 将永远不会尝试将帧速率或分辨率稳定在限制之上。 相反,即使应用请求视频稳定,它也会进入直通模式。 视频稳定 MFT 有一种机制,可以为给定设备的应用推荐帧速率和分辨率。 应用可以选择建议,以避免在填充了注册表项的设备上进行此类直通。

如果未设置 MaxPixelsPerSecond 值,则视频稳定 MFT 将尝试稳定到默认值,但不会更高。

默认值为每秒 62208000 像素,即 1920 像素 x 1080 像素 x 30 fps。 当视频稳定尝试稳定但无法保持视频帧的实时稳定时,内部逻辑将视频稳定切换到直通模式(关闭视频稳定),而不会丢失任何帧。

如果在前一个会话中关闭了视频稳定功能,则 MFT 将在决定切换到直通模式之前,尝试在每个新会话中以常规模式启动视频稳定功能。 这是因为它不能依赖之前的模式来做出未来的决定,因为该设备在上次操作时可能处于压力之下。

视频稳定测试要求

OEM 需要验证其设备在视频稳定工作的情况下的端到端功能。 他们需要在给定的每秒最大像素分辨率下验证可接受的体验。

OEM 必须验证下列各项:

  • 在 Microsoft 提供的注册表项位置禁用视频稳定内部逻辑。 禁用内部逻辑可以保证在测试过程中,如果遇到压力情况,视频稳定功能不会进入直通模式。

  • 视频稳定功能可以单独运行,无需后台任务或其他功能

  • 启用视频稳定功能,并禁用内部逻辑的平稳预览渲染

  • 启用视频稳定功能,并禁用内部逻辑的平稳视频录制

  • 稳定录制中达到的每秒期望像素数

  • 无过热现象

请注意 零售系统不应有注册表项来禁用本节中介绍的视频稳定内部逻辑。 但是,零售系统应具有 VideoStabilization 注册表项,并具有通过此测试过程确定的 MaxPixelsPerSecond 值。

请注意 只有在效果上设置了属性 MF_LOW_LATENCY 时,VideoStabilization 注册表项 MaxPixelsPerSecond 值才起作用。 当提供的视频稳定效果添加到 MediaCapture 管道中时,该属性会自动设置。 但是,如果将视频稳定效果插入到自定义管道或未设置 MF_LOW_LATENCY 属性的管道中,则注册表项无效。