我们有一个要求,让用户logging我们的3D应用程序的video。 我已经可以获取单独的渲染帧,所以这个问题是关于如何将帧写入video文件。
我不认为将每个框架作为一个单独的文件编写,后处理是一个可行的select。
我可以查看选项来logging到一个简单的video文件,以便稍后进行优化/编码,或直接写入一个合理的编码格式。
FFmpeg在另一篇文章中被提出,但对我来说看起来有点令人生畏。 是不是最好的select,如果不是可以build议? 我们可以使用LGPL,但不是完整的GPL。
我们在C ++中使用Windows(Win32而不是MFC)。 示例/伪代码与您推荐的库非常赞赏…基本上如何做3个function之后:
startRecording()
做任何需要的初始化 recordFrame()
将指针指向帧数据并对其进行编码,理想情况下是使用定时数据 endRecording()
video文件,closuresvideo系统等 在sourceforge上查看Taksi的源代码。 http://taksi.sourceforge.net/你需要2件事。 1.压缩帧的代码。 2.容器文件格式。 像AVI或MPG。
Taksi使用旧的VideoForWindows API和AVI而不是新的COM API,但它仍然可以为你工作。