如何用Python代码在Wayland(Gnome)上捕获屏幕?

Ped*_*ius 5 python opencv gnome screen-capture wayland

我正在尝试使用Python捕获屏幕,因为我将在OpenCV上使用它,但是由于Gnome使用Wayland,而我发现的所有库仅适用于X11,因此我无法找到使其在Gnome上运行的方法。 。

目前,我不考虑更改界面。我正在寻找此问题的解决方案。有人知道解决方案吗?

更具体地说,我将使用这些图像来训练AI,因此我需要不断地使用它们。

编辑:我发现了这一点,但是我如何才能在Python中将帧传递给OpenCV而不是保存视频文件呢?

小智 1

如今进行截屏广播的正确方法是使用Screencast 门户,它是 XDG 桌面门户的一部分,并且已经受到 GNOME、KDE、wlroots(等)的支持。作为一个额外的优势,这也适用于 Flatpaks 等容器化格式。

您可以找到有关如何使用此代码片段在 Pyhon 中进行截屏的示例,该代码片段由 Mutter 维护者之一创建。如果您查找parse_launch(),您将看到一个 GStreamer 管道,您可以修改该管道以包含可以为您进行处理的 GStreamer OpenCV 元素。

注意:在您的编辑中,您链接到该门户的前身,这是 GNOME 特定的内部 API,所以我不会依赖它;-)