使用FFmpeg(或类似)录制应用程序输出到视频

Recording application output to video using FFmpeg (or similar)

本文关键字:应用程序 输出 视频 FFmpeg 使用      更新时间:2023-10-16

我们有一个要求,让用户记录我们的3D应用程序的视频。我已经可以抓取单个渲染帧,所以这个问题是关于如何将帧写入视频文件的。

我不认为把每一帧写成一个单独的文件和后期处理是一个可行的选择。

我可以看看选项记录到一个简单的视频文件,以便以后优化/编码,或直接写入一个合理的编码格式。

FFmpeg在另一篇文章中被建议,但它看起来有点让我望而生畏。如果不是的话,这是最好的选择吗?我们可以使用LGPL,但不能使用完整的GPL。

我们正在用c++开发Windows (Win32而不是MFC)。示例/伪代码与您推荐的库是非常赞赏…基本上以后怎么做3个功能:

  • startRecording()做任何需要的初始化
  • recordFrame()获取指向帧数据的指针并对其进行编码,理想情况下使用时序数据
  • endRecording()完成视频文件,关闭视频系统等

在sourceforge上查看Taksi的源代码。http://taksi.sourceforge.net/你需要两样东西。1. 压缩帧的代码。2. 容器文件格式。如AVI或MPG。

Taksi使用旧的VideoForWindows API和AVI,而不是新的COM API,但它仍然可以为您工作。