c++ - 如何在Qt5 C++中使用QMediaRecorder从QImage序列生成视频文件

标签 c++ qt5 video-encoding qmediarecorder

基本上,我想要的是使用QMediaRecorder编码视频,方法是提供我在运行时在自定义代码中生成的QImage序列作为源。

到目前为止,我还没有找到实现此目的的简便方法,并且所有解决方案都指向解决方案,在该解决方案中,我必须以某种方式实现自己的QMediaService和/或QMediaControl子类,并将QImage作为输入,进行注册并以某种方式使QMediaRecorder使用它们。但是根据官方Qt文档中有关该主题的to this页面,这条路走的比较少,我自己一个人走:

In general, implementing a QMediaService is outside of the scope of this documentation and support on the relevant mailing lists or IRC channels should be sought.



我在这篇文章中希望拥有此知识的人可以对如何做到这一点有所了解。我认为记录这组功能将为Qt5用户打开许多有用的可能性。

更新2020-06-16:已经快四年了,仍然没有一个答案。我将悬赏于此问题,并使用最新示例Qt5的示例示例接受最佳答案。

最佳答案

直接使用ffmpeg执行此操作非常简单。
您可以将图像保存在磁盘上,然后通过QProcess从命令行使用ffmpeg过滤器。
您还可以在代码中创建视频流,因此避免了由于将图像保存在磁盘上而造成的时间和性能损失,请将图像保存在该流中

关于c++ - 如何在Qt5 C++中使用QMediaRecorder从QImage序列生成视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407128/

相关文章:

c++ - 自定义 GUI 对象

c++ - 检测 "new"项目何时被删除

c++ - 调用QQmlPropertyMap子进程的子进程?

c++ - 如何从父级不是 QMainWindow 的 QWidget 访问 QMainWindow

c++ - ui_*文件不是QT5.5生成的

c++ - std::initializer_list 返回值的生命周期

java - 比较 excel 中的列

php - 视频上传大小

ffmpeg - 仅使用 libx264 在服务器上进行编码并在客户端使用 libffmpeg 进行解码,仅流式传输视频所需的最少元数据量是多少?

android - 使用 FFmpeg 在视频上叠加帧 PNG 动画