我正在尝试使用Python捕获屏幕,因为我将在OpenCV上使用它,但是由于Gnome使用Wayland,而我发现的所有库都只能正常工作,所以我无法找到使其在Gnome上运行的方法。使用X11。
目前,我不考虑更改界面。我正在寻找此问题的解决方案。有人知道解决方案吗?
更具体地说,我将使用这些图像来训练AI,因此我需要不断地使用它们。
编辑:我找到了this,但如何将框架传递给Python中的OpenCV而不是保存视频文件?
如今,进行屏幕广播的正确方法是使用Screencast portal,它是XDG桌面门户的一部分,并且已由GNOME,KDE,wlroots(及更多)支持。另外一个优点是,它也可以在Flatpaks等容器化格式中使用。
您可以找到由Mutter维护者之一创建的有关如何使用this snippet在Pyhon中进行屏幕广播的示例。如果您寻找parse_launch()
,将会看到一个GStreamer管道,您可以对其进行修改以包括可以为您进行处理的GStreamer OpenCV元素。
注意:在您的编辑中,您链接到该门户的前身,即GNOME特定的内部API,因此我不会依赖它;-)