android - 如何使用 Qt 多媒体和 C++ 从 OpenGL 纹理中保存 .mp4 视频

标签 android c++ qt opengl-es qtmultimedia

我正在使用基于 Qt 5.9 的应用程序,该应用程序在嵌入式 linuxandroid 上运行。该应用程序使用 OpenGL ES 3.0 处理实时数据并实时显示 OpenGL 纹理。我以每秒 30 多帧的速度显示,这使得它几乎是实时的并且看起来像视频。

我需要保存使用 OpenGL 纹理显示的 30 到 40 帧的 mp4。 据我所知,我可以利用 Qt Multimedia去做这个。但我缺乏如何做到这一点的知识。我正在尝试阅读并理解 here 等链接的部分内容& here .

一旦保存了 mp4,就可以按照说明使用 QMediaPlayer 进行播放 here .这看起来很简单。但是我正在努力弄清楚如何在需要时将我的 OpenGL 纹理保存到 .mp4 中。

那么,如何从显示在 QML 项目上的 OpenGL 纹理中保存 .mp4 视频?

指出任何存在的基本示例也会有所帮助。

最佳答案

我认为 Qt 在内容创建方面不会给您带来任何好处,Qt 的多媒体功能纯粹是为了内容消费目的。你可以玩 MM,而不是做 MM。

您将明确使用许多可用的 MM 库之一 - vlc、ffmpeg、gstreamer、libav 等等。

关于android - 如何使用 Qt 多媒体和 C++ 从 OpenGL 纹理中保存 .mp4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45487148/

相关文章:

android - 如何判断多屏是否添加了第二个应用?

java - 在 Java/Android 中使用公历时获取错误的时间戳值

android - flutter 错误 : no named parameter with the name "overflow"

c++ - 在 C++ 中创建自定义异常

c++ - 在开罗渲染文本时倒置文本

c++ - QML 文本元素上的 dataChanged?

c++ - Windows 7 上的奇怪行为 QT QSerialPort 不会更改串行 com 端口的设置

android - 如果没有记录,ImageView 不显示图像

c++ - QT按钮点击改变qplaintextedit

c++ - Qt connect 无法识别 lambda 表达式