這可能是一個愚蠢的問題,但我很難概念化我在這裏需要做的事情......在過去,我使用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