以更精确的方式使用我的网络摄像头的平移和倾斜控制

问题描述

我有一台罗技 PTZ Pro 2。我们用它来记录和流式传输教堂服务。它具有出色的 10 倍变焦。但是在 10m 的距离上使用变焦迫使我以极其准确的方式控制平移/倾斜。

我的第一次尝试是使用相机控制界面的 CameraControl_PanCameraControl_Tilt,但它们没有实现。

目前我可以通过两种方式控制平移和倾斜:

方法 1: 或者我可以使用 Logitech 的自定义属性来控制平移倾斜运动。可以在 x 和 y 轴上以 -1 或 -1 的步长控制电机(使用 Logitech 定义的 KsProperty 属性)。

方法 2: 另一种方法是通过 KsProperty / KSPROPERTY_CAMERACONTROL_PAN_RELATIVEKSPROPERTY_CAMERACONTROL_TILT_RELATIVE 使用相机控制。 但是使用这种方式,我可以启动电机,也可以停止电机。我需要在运动开始和停止之间至少睡眠 55-75 毫秒。当开始和停止之间的时间很短时,什么也不会发生。我想让动作尽可能小。为了使开始和停止之间的延迟尽可能准确,我使用轮询 QueryPerformanceCounter。 (Sleep/SleepEx 不够细化)。

实际上方法 1 和方法 2 的区别在于,当我在启动和停止之间使用较小的时间值时,方法 2(使用电机控制)更准确。但是使用一个小的时间点,当按下我的小型相机控制应用程序的底部时,我可能会冒着根本没有移动的风险。

Logitech PTZ 摄像机是否有任何已知的其他(可能是自定义的)属性以更准确的方式控制平移和倾斜?或者有没有其他属性可用于控制 PTZ Pro 2 摄像机的平移和倾斜,我错过了?

或者有没有一种方法(其他属性)来定义 PT 电机的步进粒度?

或者有什么软件可以帮助我探索相机界面的无数属性

编辑 1: 我测试了更多。我的想法是检测电机何时真正启动,获得 KSPROPERTY_CAMERACONTROL_PAN_RELATIVEKSPROPERTY_CAMERACONTROL_TILT_RELATIVE。所以我想在电机开启时开始运动检查属性并从此时开始延迟运动。但是这个属性总是返回 1!所以查询这个属性告诉我:Motor is on!

编辑 2:IAMCameraControl 界面中,当我使用 Get 调用时,只有 PAN_RELATIVETILT_RELATIVE 返回手动 (2) 控制的标志。所有其他返回自动 (1) 或绝对 (0)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)