我编写了一个openGL应用程序,想要生成Glut窗口中显示的图形视频。你知道怎么做吗?
从SO的previous question开始,我知道一种可能的解决方案是使用glReadPixels获取openGL渲染的帧,然后使用FFmpeg library生成视频。我真的不知道如何使用FFmpeg,所以我不确定如何编写一个程序来获取帧并输出视频。虽然原始问题中的链接已被删除,但我发现了this example视频编码,这对于任何想要帮助的人都有用。
两个问题:
lablgl
和lablglut
。关于如何在这种情况下实施FFmpeg想法的任何想法?答案 0 :(得分:3)
您可以使用libpng将帧写入单个PNG文件,然后使用命令行ffmpeg
工具将其编码为视频。
答案 1 :(得分:2)
png应答器的变体:输出到bmp。在Paint(或Mac上可用的任何东西)中创建相同大小的白色图像,用记事本打开它,隔离文件头(对于800 * 600它是42 4D 36 F9 15 00 00 00 00 00 36 00 00 00 28 00 -00 00 20 03 00 00 58 02 00 00 01 00 18 00 00 00-00 00 00 F9 15 00 00 00-00 00 00 00 00 00 00 00 00 00 00 00 00 27),追加glReadPixels的结果,冲洗,关闭。
所以是的,很多文件,但通常不是问题,因为大多数openGL应用程序都不会使用硬盘太多。
(我知道,这很脏,但这是最简单的实施方法 - 我曾在火车上做过一次,没有任何文件)
答案 2 :(得分:0)
要为演示捕获视频,最好的方法可能是fraps