微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Qt5/Yocto:已部署应用程序的捕获屏幕/屏幕录制

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

我进行了一些广泛的网络搜索,但只找到了一些有关如何捕获单个屏幕的提示。 Qt 是否提供内置功能

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

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

解决方法

如果您使用 QML,则可以使用 Item.grabToImage() method 抓取任何元素的图像。否则,您将需要使用显示服务器方法,这意味着您需要学习 X11 或 Wayland 函数,具体取决于您的 Yocto 设置所使用的功能。

,

您只需使用 QtAvi 库并根据小部件的屏幕截图创建自编排视频。对于快照,您可以将 this method 用于 QML 和波纹管代码用于小部件 s

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。