C ++ Library / Class用于创建内存位图数组的简单视频文件

时间:2012-01-29 12:57:14

标签: c++ windows video

我写了一个学术模拟软件。模拟结果存储在1字节值的2D存储器阵列中(映射为256色)。

我需要编写一个以确定的间隔读取数组的类,并从中创建一个视频文件。格式并不重要(只要它很受欢迎)。

是否有一个C ++包装类(通过Windows API)或库可以轻松地为我做这个?

1 个答案:

答案 0 :(得分:4)

一个简单的解决方案是使用“Video for Windows API”。这组功能内置于Windows中,允许您使用来自一系列位图的各种视频编解码器创建AVI文件。您也可以选择使用它录制音频。这是一个示例项目的链接,演示了如何使用它:

http://www.codeproject.com/Articles/4169/A-simple-interface-to-the-Video-for-Windows-API-fo

这些功能非常高,不需要包装器来使用它们。在最简单的级别,您将致电:

AVIFileOpen();
AVIFileCreateStream();
AVIFileWriteData(); // repeat for each frame
AVIFileRelease();

您可以将每个帧作为DIB(设备无关位图)传递给流,它将从您的各个帧创建视频。

API文档在这里:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd756804(v=vs.85).aspx