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

How to use Qt Multimedia and C++ to save an .mp4 video out of OpenGL textures

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

我需要保存使用 OpenGL 纹理显示的 30 到 40 帧的 mp4。 据我了解,我可以利用 Qt Multimedia to do this. But I lack the knowledge of how to do this. I am trying read & understand the how part from links like here & here

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

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

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

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

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