比Python更快的东西多处理过程在苹果操作系统中录制屏幕?

2024-10-03 17:20:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个Python程序来记录 在OSX中,当前屏幕以任意fps的速度显示,比如60fps。在

捕捉当前屏幕的最快方法 正在使用subprocess.call([“截屏”图片.bmp"]). 但是 拍一张截图花了大约0.16秒,所以我 无法通过连续截图获取超过6 fps。在

相反,我尝试使用Python的多处理过程(第一次)以0.0167s的间隔启动新进程来截屏,以制作60 fps的视频。我首先试着遵循以下准则:

from multiprocessing import Process
from subprocess import call
from PIL import Image
import time

def capture(file_name):
    call(["screencapture", file_name])

p1=Process(target=capture, args=("f1",))
p1.start()

p2=Process(target=capture, args=("f2",))
p2.start()

我测试了上面的代码,在屏幕上拍摄了2张照片 谷歌的秒表正在运行。得到的两张照片显示了0.05秒的间隔,最多只能达到12帧/秒。在

因为有像Monosnap这样支持60fps的屏幕录制程序,我想应该有更好的方法来实现这一点,我正试图找到如何加快速度。我怎样才能把时间间隔缩短到0.0167秒或更短?在

Edit1:这是对声称这可能是Take screenshots **quickly** from python的重复声明的一个更新。实际上,在PyGTK sample上有FionaSarah的解决方案,它来自原始问题的第一个链接。但是这个解决方案似乎不能与当前版本的Gdk一起工作地理信息库PyGObject的。FionaSarah使用gtk.gdk.Pixbuf。从当前版本的Gdk中找不到的\u drawable获取。看来Gtk.离屏窗口可以改为使用,或者应该使用use Xlib fromthis。在


Tags: 方法namefromimport程序间隔屏幕call