我写了一个学术模拟软件。模拟结果存储在1字节值的2D存储器阵列中(映射为256色)。
我需要编写一个以确定的间隔读取数组的类,并从中创建一个视频文件。格式并不重要(只要它很受欢迎)。
是否有一个C ++包装类(通过Windows API)或库可以轻松地为我做这个?
答案 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