在跟进我之前的问题时,我能够将 Direct3DDevice 的后缓冲区保存到表面。
我已经在 DirectX SDK 中找到了 D3DXSaveSurfaceToFile,它工作正常!但是,我想将获得的表面记录到 AVI 文件中。
我还找到了AVIFile 参考,但它们显然与 DirectX 表面不直接兼容。
解决这个问题的最佳方法是什么?我见过许多基于 GDI+/MVC 的抓取 HDC 的解决方案,但这些都是不可能的。我也不确定 AVIFile 需要什么样的数据以及如何从 D3DSurface 中提取它。
请指教!:)
编辑:
后处理也是一种选择。我可以使用D3DXSaveSurfaceToFileInMemory以多种格式(在此处指定)将表面数据捕获到内存中。之后,我可以压缩这些数据,然后存储到磁盘。
我应该如何压缩我的数据?我应该如何存储它?我是否存储时间戳?录制完成后,如何将生成的数据转成AVI文件?