Linux Qt5/Yocto:已部署应用程序的捕获屏幕/屏幕记录

Linux Qt5/Yocto:已部署应用程序的捕获屏幕/屏幕记录,linux,qt,qt5,yocto,screen-recording,Linux,Qt,Qt5,Yocto,Screen Recording,有些视频需要捕获GUI(如果可能的话,还需要声音)。使用桌面构建而不是部署的应用程序是可能的,但是对于更原生的方法,我会在设备上运行它。 设置包括一个ARM板(quadcore,所以应该还有足够的性能)和一个基于Qt5.12的构建 我做了一些广泛的网络搜索,但除了一些如何捕获单屏幕的提示外,什么也没找到。Qt是否提供内置的功能 任何提示(关键词)欢迎 编辑20210311:感谢到目前为止的输入。但是,由于没有开发人员可以进行录制,因此不需要篡改应用程序的代码。 是的,它是一个基于QML的应用程序

有些视频需要捕获GUI(如果可能的话,还需要声音)。使用桌面构建而不是部署的应用程序是可能的,但是对于更原生的方法,我会在设备上运行它。 设置包括一个ARM板(quadcore,所以应该还有足够的性能)和一个基于Qt5.12的构建

我做了一些广泛的网络搜索,但除了一些如何捕获单屏幕的提示外,什么也没找到。Qt是否提供内置的功能

任何提示(关键词)欢迎

编辑20210311:感谢到目前为止的输入。但是,由于没有开发人员可以进行录制,因此不需要篡改应用程序的代码。 是的,它是一个基于QML的应用程序。
当前状态:有强烈的提示表明交叉编译ffmpeg和从/dev/fb0获取帧将是最好的。但是我还没有给它一个机会。

如果您使用的是QML,那么您可以使用。否则,您将需要使用显示服务器方法,这意味着您需要学习X11或Wayland函数,具体取决于您的Yocto设置所使用的功能。

您只需使用库并从小部件的屏幕快照创建自排列视频即可。对于快照,您可以使用QML和小部件的以下代码

QImage img(mywidget.size());
QPainter painter(&img);
mywidget.render(&painter);
img.save("/some/file.jpg");

使用录制音频并将其作为音频文件发送到QtAvi。在中,您可以找到QtAvi库的完整示例。

不幸的是,Qt中没有任何内置功能可以为您提供此功能。感谢您的建议。由于我们有数百个“项目”,这将导致大量的努力。另外:不是Wayland norX11,而是eglfs。谢谢您的输入。