首页 > 解决方案 > Qt5/Yocto:捕获已部署应用程序的屏幕/屏幕录像

问题描述

需要为某些视频捕获 GUI(如果可能的话带有声音)。使用桌面构建而不是部署的应用程序是可能的,但对于更原生的方法,我会在设备上运行它。安装程序包括一个带有 Yocto Linux 的 ARM 板(四核,所以应该有足够的性能)和一个基于 Qt 5.12 的构建。

我已经进行了一些广泛的网络搜索,但除了一些关于如何捕获单个屏幕的提示之外什么也没找到。Qt 是否提供内置功能?

欢迎任何提示(关键词)!

编辑 20210311:感谢到目前为止的输入。但是 - 由于没有开发人员应该进行记录 - 不需要篡改应用程序的代码。是的,它是一个基于 QML 的应用程序。当前状态:有强烈暗示交叉编译 ffmpeg 并从 /dev/fb0 抓取帧将是最好的。但我还没有试一试。

标签: linuxqtqt5yoctoscreen-recording

解决方案


只需您可以使用QtAvi库并从小部件的屏幕截图创建一个自编视频。对于快照,您可以将此方法用于 QML,并将以下代码用于小部件

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

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


推荐阅读