c - 从 OpenGL C 程序制作视频

标签 c windows opengl video

我有一个运行科学模拟并在 OpenGL 窗口中显示可视化的 C 程序。我想把这个可视化制作成视频,最终会在 YouTube 上播放。

问题:从 C/OpenGL 程序制作视频的最佳方法是什么?

我以前的做法是使用截屏程序,但是这很费力(必须启动/停止截屏程序,保存视频文件等...)。似乎应该有一种方法可以使从 C 程序中制作视频的过程自动化。然后我可以让它运行一整夜,早上有 20 个视频要浏览,然后选择最好的一个放到 YouTube 上。

YouTube recommend “640x480 分辨率的 MPEG4(Divx、Xvid)格式”。

我正在使用 GLUT 3.7.6_3,如果有区别的话。如果有充分的理由,我可以更改窗口系统。

我运行的是 Windows (XP),所以更喜欢适用于 Windows 的答案,但 Linux 答案也可以。如果无法在 Windows 上轻松完成视频工作,我可以使用 Linux。我有一个 friend 为视频的每一帧制作一个 .png 图像,然后在 Linux 上使用“mencoder”将它们拼接在一起。

最佳答案

您可以使用 glReadPixels 函数(参见 example)

但是,如果您要显示的内容是由简单对象(即球体、棒等)构成的,我会将每一帧“导出”到 POV-ray 中。文件,渲染这些,然后用这些图片制作视频。你将达到更高的质量。

关于c - 从 OpenGL C 程序制作视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932637/

相关文章:

c++ - 如何区分两个独立程序的文件和公共(public)文件

c - 错误 : initializer element is not a compile-time constant

c - 获取内核对象窗口列表

c++ - 如何使用静态 TexCoords 和动态顶点调用 glDrawElements

c - 如何在 mac os x 上基于 openGL 上下文创建 OpenCL 上下文

C如何在文件中搜索字符串?

c - Keil stm32,使用汇编、分散文件和c。如何将c代码入口点导出到程序集?

c++ - 如何调试 openGL 代码?

linux - Kip Irvine - X86 处理器的汇编语言 - 与 Linux 的相关性如何?

windows - 如何从 Windows 应用程序监视 Intel Controller 上 RAID 阵列的状态?