我想录制完整的MacOS屏幕,并对图像进行不同的处理,例如:
- 计算不同区域的平均颜色
- 重新渲染在
NSPanel
或NSWindow
中模糊的屏幕部分
目前我正在使用以下方式来使用AVCaptureScreenInput
let input = AVCaptureScreenInput(displayID: CGMainDisplayID())!
avCaptureSession.addInput(input)
let output = AVCaptureVideoDataOutput()
avCaptureSession.addOutput(output)
output.setSampleBufferDelegate(self, queue: .main)
self.avCaptureSession.startRunning()
这种方法的问题在于图像的帧速似乎相当低,我想要达到30fps+。
在macOS上实现这些目标的好方法是什么?一方面,需要“快速”获取图像,另一方面,需要实时处理/重新渲染捕获的图像。
问题#1
使用捕获会话的上述解决方案会导致不可接受的延迟。这意味着当移动窗口时,响应渲染将延迟超过100毫秒。我希望能实时完成。
minFrameDuration
属性吗? - Jean-Baptiste Yunès