这可能是一个愚蠢的问题,但我很难概念化我在这里需要做的事情......在过去,我使用DirectShow连接到一个摄像头,并使用源过滤器,AVI多路复用器,压缩过滤器,运行图等等来捕获AVI ...小菜一碟。 在这种特殊情况下,当我的非DirectShow相机驱动程序准备好缓冲区时,我会收到通知。我收到通知,然后我去抓取BYTE *并使用GDI进行渲染。我现在也需要用这些缓冲区创建一个AVI。 从概念上来说,我使用vfw之类的东西并在每次接收缓冲区时写入AVI流中都是有意义的,当然vfw是旧技术,而且我也有一些问题需要解决(正如我在其他论坛中发布的那样) )。 如何将这些缓冲区放入DirectShow AVI Mux并写入文件?我是否必须创建自己的源过滤器来接收这些缓冲区,然后将我的源过滤器和avi多路复用器添加到过滤器图形中? 感谢您的任何提示使用DirectShow从非DirectShow源捕获到AVI
1
A
回答
2
所以你有BYTE*
与视频帧数据。这与你所设想的非常接近。您的选择是使用VFW AVIFileOpen
和朋友写入AVI
文件,或将数据注入DirectShow管道。要做到后者,你通常会制作类似PushSource的过滤器,并从那里推送视频帧(通过AVI Mux到文件编写器)。
相关问题
- 1. 使用DirectShow捕获音频
- 2. 使用DirectShow CaptureNet添加音频到AVI
- 3. DirectShow原始捕获
- 4. C++ IPC - d3d钩子和directshow捕获源
- 5. 使用directshow压缩avi视频文件
- 6. DirectShow +未压缩的AVI
- 7. DirectShow DVD操作和捕获
- 8. 如何从不使用DirectShow的相机捕获数据?
- 9. 的DirectShow不能启动捕获两次
- 10. “假”DirectShow视频捕获设备
- 11. DirectShow C#捕获Pin属性窗口#
- 12. 将iplImage或Mat从directshow获取到opencv
- 13. AVI Decompressor突然停止使用DirectShow解码视频Graphedit
- 14. 写给Directshow源过滤器
- 15. DirectShow源代码过滤器
- 16. DirectShow的源过滤SETTIME
- 17. 如何忽略使用DirectShow API捕获按钮/区域?
- 18. 使用DirectShow捕获帧和OpenCV来处理
- 19. 是否可以使用DirectShow API捕获HDV/HD流
- 20. 使用C++中的directshow过滤器捕获视频中的帧
- 21. 关于“在DirectShow之外使用DirectShow过滤器?”
- 22. 开源YUV420为RGB源代码或directshow
- 23. DirectShow中的GMFBridge使用
- 24. 使用Silverlight中的DirectShow API
- 25. directshow从哪里获取图像尺寸?
- 26. 从资源文件中使用directshow播放音频
- 27. 用于Windows视频捕获DirectShow的替代品
- 28. 使用Dekstop窗口作为源的DirectShow源过滤器
- 29. C++和DirectShow
- 30. DirectShow IsUsingTimeFormat与GetTimeFormat
谢谢罗马。我将研究创建PushSource过滤器。虽然我认为我更喜欢使用VFW,但看起来工作量较少。我尝试过但VFW有问题,这里描述[创建AVI的问题](http://stackoverflow.com/questions/9106347/avi-created-with-avistreamwrite-has-incorrect-length-and-playback-speed)。我会继续阻止。谢谢! – mash 2012-02-03 14:00:00
如果你的视频已经被压缩了,那么要写入AVI文件,你最好使用'Video for Windows'(毕竟你不需要接触滤波器)。如果你还需要压缩(还有选择合适的压缩器)和/或与音频合并,那么'DirectShow'可能是更好的选择。 – 2012-02-03 14:03:32
是的,我同意你的看法,我正在研究压缩vfw中的视频,看起来如果我需要压缩,使用DirectShow是有意义的。我正在研究这两种方法,以使它们正常工作。如果你对我以前的文章中提到的VFW问题有任何想法,我将不胜感激。否则,非常感谢您的帮助。 – mash 2012-02-03 15:19:06