免责声明:我对 VNC 客户端和服务器了解不多,所以希望我使用了正确的术语:)
我有一个VNC“服务器”在接受我的 iPhone 作为客户端的树莓派上运行。当屏幕上出现特定消息时,例如可能是低电量警告,我想运行特定脚本。
我目前的做法不太理想:
- 我对视频源的每一秒进行屏幕截图和裁剪
- 然后,我运行 OCR 命令行脚本来确定低功耗消息是否确实存在,这需要 2-3 秒。
- 当它被识别时,距离屏幕出现已经过去了 5 秒,这并不理想,我正在尝试降低这个数字。
由于 VNC 服务器正在运行,是否有某种方法可以在 VNC 服务器的帧进入时访问它们并使用 python 或 shell 脚本对其进行处理?如果没有,也许使用一些 VNC 录制或 VNC 客户端可能吗?
本节将对我的问题进行全面解释。
由于自 iOS 11 越狱客户端以来,所有适用于 iOS 设备的 vnc 客户端都已被弃用,因此我想创建一个自定义解决方案,该解决方案仍然允许我在点击屏幕的位置编写脚本。该解决方案将由 3 部分组成:
- 捕获屏幕 - 我确定将屏幕播放到我的 PI 是一个很好的解决方案,但我对其他人持开放态度。
- 编写脚本来确定要单击的位置。就我而言,我想通过查看屏幕并确定需要点击的位置来自动点击游戏(我知道,我知道)
- 注册点击事件 - 我使用一个名为 teensy(arduino)的假鼠标来点击屏幕上我想要的位置
我的主要问题是步骤(2):我需要一种快速可靠的方法来处理屏幕并输出点击位置。我目前正在对树莓派 VNC 客户端进行截图,但这很慢而且不理想。所以,我的首要问题是如何在程序中捕获 VNC 服务器缓冲区帧