通过套接字发送的macOS屏幕截图太慢了

时间:2017-12-18 16:38:18

标签: python macos python-3.x sockets quartz

我的总体目标是将计算机屏幕流式传输到同一本地网络上的另一台计算机。

我知道之前已经询问过使用python截取osx,特别是here,但我对那里的答案不满意。也就是说,它们太慢了。使用我的Retina Mac,我最多只有7fps。我目前正在捕捉这样的截图

def capture(path):
    _, displays, count = CG.CGGetActiveDisplayList(1, None, None)
    url = NSURL.fileURLWithPath_(path)

    dest = Quartz.CGImageDestinationCreateWithURL(
        url, LaunchServices.kUTTypeJPEG, 1, None)

    properties = {
        Quartz.kCGImagePropertyDPIWidth: 72,
        Quartz.kCGImagePropertyDPIHeight: 72,
    }

    image = CG.CGDisplayCreateImage(displays[0])
    Quartz.CGImageDestinationAddImage(dest, image, properties)
    Quartz.CGImageDestinationFinalize(dest)

使用Quartz以72 dpi捕获屏幕截图并将其保存到文件中。然后,我通过Python套接字发送图像数据。

我的主要问题是,是否有任何明显的地方可以加快这个过程?我的主要两个加速想法是

  1. 如何直接通过套接字从Quartz CGImageRef发送数据,而不将其写入文件?
  2. 有没有更快的方法来捕获屏幕截图?我不介意它的分辨率较低。

0 个答案:

没有答案