如何以编程方式在 python 中录制 window / GUI 应用程序?

How do I programmatically video record a window / GUI application in python?

我想以编程方式录制 GUI 应用程序(特别是 RViz)的视频,因为我 运行 多次进行实验,并希望将这些录制自动化并与 运行 同步。 RViz 本身不提供录制服务,推荐使用 SimpleScreenRecorder。是否有提供此功能的库?

系统:Linux (Ubuntu)

首选语言:python

我没有找到任何合适的工具,所以我自己写了一个应该适用于所有 Linux 系统的工具:https://github.com/LemonPi/window_recorder

您将其用作上下文管理器,要么不提供 window 个名称以提示您单击 window,要么提供 window 个名称的列表以尝试捕获(第一个有效的匹配)。例如,

from window_recorder.recorder import WindowRecorder
import time

# passing in nothing as the window name will allow you to select the window by clicking
# want to capture an RViz window, which could have name "RViz*" as well
with WindowRecorder(["RViz*", "RViz"], frame_rate=30.0, name_suffix="rviz"):
    # do things...
    time.sleep(0.1)
    start = time.time()
    while time.time() - start < 2:
        time.sleep(0.1)