我希望能够使用OpenGL创建视频输出文件,而不是屏幕输出中的通常显示。我想通过不使用glutPostRedisplay()或(SFML版本,这是这样的:) window.Display(),并以某种方式使用glReadPixels()来代替。OpenGL - 创建视频输出文件
glReadPixels使像素内容到内存中的数组(正如你可能已经知道了),但我怎么可以转换成一个框架,并串几帧一起在一个视频文件?视频文件的格式是什么,以便我可以播放它?
我应该解释为什么我想这样做:很多物理模拟的可能需要很长的时间来计算足够的信息来显示一帧,所以最好是离开它运行过夜,播放视频文件,第二天早上。你不会想每五分钟回来一次,看看发生了什么。
您可以将其存储在原始帧(RGBA)中,并稍后处理它。与gstreamer。 (这也允许将转换管道嵌入到应用程序中)。 –
所以gstreamer是我可以在我的代码中包含的东西,并传递一些原始帧,我会得到一个ogg或mpeg或输出? – user3728501
或多或少。它是一个完整的框架,因此对于一个应用程序至少可以看起来很臃肿;但是如果你已经知道例如。 unix风格的管道和过滤器,没有太多的学习曲线。 –