linux - Qt5/Yocto:捕获已部署应用程序的屏幕/屏幕录像
问题描述
需要为某些视频捕获 GUI(如果可能的话带有声音)。使用桌面构建而不是部署的应用程序是可能的,但对于更原生的方法,我会在设备上运行它。安装程序包括一个带有 Yocto Linux 的 ARM 板(四核,所以应该有足够的性能)和一个基于 Qt 5.12 的构建。
我已经进行了一些广泛的网络搜索,但除了一些关于如何捕获单个屏幕的提示之外什么也没找到。Qt 是否提供内置功能?
欢迎任何提示(关键词)!
编辑 20210311:感谢到目前为止的输入。但是 - 由于没有开发人员应该进行记录 - 不需要篡改应用程序的代码。是的,它是一个基于 QML 的应用程序。当前状态:有强烈暗示交叉编译 ffmpeg 并从 /dev/fb0 抓取帧将是最好的。但我还没有试一试。
解决方案
只需您可以使用QtAvi库并从小部件的屏幕截图创建一个自编视频。对于快照,您可以将此方法用于 QML,并将以下代码用于小部件
QImage img(mywidget.size());
QPainter painter(&img);
mywidget.render(&painter);
img.save("/some/file.jpg");
使用QMediaRecorder录制音频并将其作为音频文件发送到 QtAvi。在此链接中,您可以找到 QtAvi 库的完整示例。
推荐阅读
- spring-boot - Spring-boot 2缺少日志
- javascript - 在 vue.js 的数组中返回“未定义”的对象值
- java - Java 库维护/更改是否可能不影响使用它的应用程序?
- julia - Julia 1.0.0 解析函数溢出错误似乎很奇怪
- mongodb - mongodb 在数组中使用聚合
- loops - 为什么我的变量在我的循环中没有增加?
- coq - 带有 impl 的 setoid_rewrite 不适用于 `A -> B` 类型的引理
- r - 如何使用 R 中的一些嵌套因子来处理不平衡的 Model II 和 Model III 分析?
- excel - countif 使用过滤列 vba 更改
- javascript - Mocha 是否提供参数化测试“@Theory”样式的选项?