我正在寻求澄清在构建半自动截屏和视频编码管道时遇到的问题。解决它的可靠技术也会很可爱:-)
问题
设置:基于 Quartz + Applescript 的库执行截屏脚本,在 Quicktime 等应用程序中触发屏幕录制,与网站交互,然后将屏幕录制导出到目标位置。
该管道有效。有一个例外:在使用基于 Quartz 的库或 Applescript 在文本字段中键入后,鼠标光标在生成的屏幕录制中消失了。请注意,当我观看现场直播的截屏视频时,我一直看到鼠标光标。
恢复光标
我发现了一些在执行截屏视频时恢复鼠标光标的技术:
- 在输入文本框失去焦点后手动输入内容(不能以编程方式工作)
- 通过 cmd-tab 切换到不同的应用程序(通过 Applescript 手动和以编程方式工作)
- 使用 Applescript 启动一个新应用程序,但前提是它进入前台(其工作机制可能与切换到不同的应用程序相同)
- 右键单击以触发上下文菜单出现。可以以编程方式完成,并且可以在同一个应用程序中。
我的临时解决方法是在每次脚本键入文本后通过 Applescript 简单地发出两个快速 cmd-tab 命令。这可以正常工作,尽管它确实会在生成的截屏视频中留下一些小瑕疵。
设置和实验的详细信息
关于我在这里使用的技术的更多细节。
- 该机器是运行 Yosemite 的 2013 MBP
- 我使用了两个独立的基于 Quartz 的库来模拟用户操作:osxautomation和cliclick,它们都表现出相同的问题。
- 我使用了三种不同的技术进行屏幕重新编码:Quicktime、Camtasia 和 ffmpeg (ffmpeg -f avfoundation -i "1:0" out.avi)。这些都可能在引擎盖下使用 AV Foundation,尽管我不确定。
- 我使用 Safari、Firefox 和 Chrome 作为交互的目标浏览器
任何对可能导致问题的原因和/或更好解决方法的想法的见解将不胜感激!
ps 我不熟悉所涉及的大多数技术,例如 Quartz 和 AV Foundation,因此,如果我的描述存在根本性缺陷,或者我标记了一项根本不解决问题的技术,我提前道歉。