使用DirectShow从非DirectShow源捕获到AVI

时间:2012-02-02 20:08:37

标签: c++ directshow

这可能是一个愚蠢的问题,但我很难概念化我需要做什么......过去我使用DirectShow连接相机并使用源过滤器AVI捕获AVI多路复用器,压缩过滤器,运行图表等...一块蛋糕。 在这种特殊情况下,当我的非DirectShow相机驱动程序准备好缓冲区时,我会收到通知。我得到通知然后我去抓住BYTE *并使用GDI渲染它。我现在还需要用这些缓冲区创建一个AVI。 从概念上讲,每次收到缓冲区时都会使用类似vfw和写入AVI流的内容,当然vfw是旧技术,我也遇到了一些问题(我发布在不同的论坛中) 。 如何将这些缓冲区推入DirectShow AVI Mux并写入文件?我是否必须创建自己的源过滤器来接收这些缓冲区,然后将我的源过滤器和avi mux添加到过滤器图形中? 感谢您的任何提示

1 个答案:

答案 0 :(得分:2)

所以你有BYTE*视频帧数据。它非常接近你的想法。您的选择是使用VFW AVIFileOpen和朋友写入AVI文件,或将数据注入DirectShow管道。为了做到这一点,你通常会进行PushSource - 过滤并从那里推送视频帧(通过AVI Mux到文件编写器)。