Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何利用QT多媒体和C++在OpenGL纹理中保存MP4视频_Android_C++_Qt_Opengl Es_Qtmultimedia - Fatal编程技术网

Android 如何利用QT多媒体和C++在OpenGL纹理中保存MP4视频

Android 如何利用QT多媒体和C++在OpenGL纹理中保存MP4视频,android,c++,qt,opengl-es,qtmultimedia,Android,C++,Qt,Opengl Es,Qtmultimedia,我使用的是运行在嵌入式linux和android上的基于Qt5.9的应用程序。该应用程序使用OpenGL ES 3.0处理实时数据,并实时显示OpenGL纹理。我以每秒30多帧的速度显示,这使得它非常实时&看起来像一个视频 我需要保存使用OpenGL纹理显示的30到40帧的mp4。据我所知,我可以利用这一点。但我不知道如何做到这一点。我正在尝试阅读和理解像&这样的链接中的how部分 保存mp4后,可以使用QMediaPlayer进行播放,如前所述。这看起来很简单。但我正在努力想,当我需要时,如何

我使用的是运行在嵌入式linux和android上的基于Qt5.9的应用程序。该应用程序使用OpenGL ES 3.0处理实时数据,并实时显示OpenGL纹理。我以每秒30多帧的速度显示,这使得它非常实时&看起来像一个视频

我需要保存使用OpenGL纹理显示的30到40帧的mp4。据我所知,我可以利用这一点。但我不知道如何做到这一点。我正在尝试阅读和理解像&这样的链接中的how部分

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

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


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

我认为Qt在内容创建方面不会帮你什么忙,Qt的多媒体设施纯粹是用于内容消费目的。你可以玩MM,不能做MM


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

Ok。所以,我对Qt多媒体帮助的期望是错误的。有没有使用ffmpeg或vlc实现这一点的示例?似乎也在使用ffmpeg从显示的图像中保存视频。我倾向于使用ffmpeg来创建我的视频ffmpeg,它是介于gstreamer(最有能力的)和libav(最简单的)之间的中间地带,尽管我没有玩弄libvnc,所以我不能谈论它在spectrumalso[此链接]中的位置,我在前面的评论中提到过。我在问题和评论中提到的电影渲染器。这里提到的解决方案似乎是使用MovieRenderer将图像保存到文件夹中。然后需要对图像运行ffmpeg命令来创建电影。我在我的应用程序中以某种原始格式保存了std::vector中的所有图像。我通过gl处理运行它们中的每一个&如果Qt支持,则动态创建电影。是否可以使用gstreamer或您提到的任何选项来实现这一点?是的,但这太差劲了。你对你的客户做了什么-要求他们安装额外的东西?此外,它可能会非常浪费空间,必须在编码之前存储所有图像,而不是动态编码。如果Qt真的提供了这一功能,那么渲染电影的那个人会使用Qt。但在很多方面,Qt总是太小太晚