最近,我已經開始在我自己的項目上工作,它使用DirectShow .Net捕獲攝像頭輸出。有幾個問題,我不知道如何解決 1)我如何編碼捕獲到H.264格式的流。我明白我應該如何在過濾器圖中添加過濾器。但我無法找到在哪裏以及如何。此外,我無法找到是否有標準的H.264過濾器,或者我應該從哪裏下載它?如果我需要下載它可以只是一個DLL,以便我添加引用或應該是安裝程序? 2)有沒有辦法將捕獲的輸出保存到內存對象中,某種類型的流還是隻能寫入文件? 最好的問候, 約爾丹DirectShow .Net攝像頭捕獲編碼輸出?
回答
您將需要使用像FFmpeg的或手剎。檢查出http://vidcoder.codeplex.com/。 AForge也有一些視頻編輯功能,你也可以通過濾鏡。還有幾個FFMpeg C#包裝可以使用,如https://github.com/crazyender/FFMPEG.net
您應該使用AForge.net。所有的辛苦工作已經爲你完成了。使用
VideoFileWriter
http://www.aforgenet.com/framework/docs/html/4ee1742c-44d3-b250-d6aa-90cd2d606611.htm。我看起來AForge框架也使用了FFMpeg(參見AForge.Video.FFMPEG
名稱空間)。你只需要創建一個作家,並把它傳遞位圖/幀writer.WriteVideoFrame(bitmap);
你應該充分調查AForge視頻抽象。你可以節省大量的時間。
1)是的,你應該下載編碼器濾波器庫。大多數解碼器都免費提供。但編碼器不是。如果你不想付錢,你必須找到開源的編碼器。 而要在graphedit程序中使用,你應該註冊該dll文件。或者安裝程序會這樣做。而且您還需要檢查容器類型,如mp4,mkv ...換句話說,您需要mux過濾器將其保存到文件中。我認爲有人會鏈接可用的網址。抱歉,我現在沒有網址。
2)什麼是捕獲手段?那是電影嗎?或圖像?
在Image的情況下,有很多示例項目和SampleGrabbers。您可以將它保存到文件和內存中。
在電影的情況下,我敢肯定,你的電腦內存不符合他們與出編碼。創建內存流並將其傳遞給捕獲管理器。
您也可以製作過濾器以便根據您的需求定製過濾器。所有信息都包含在Windows SDK示例中。
您可以使用VisioForge或Viscomsoft的商業軟件。
AForge潛在的問題 - 捕獲期間沒有音頻,只有視頻。輸出格式也非常有限。但是 - 它是免費且開源的,如果你有任何DirectShow體驗,你可以添加音頻支持。
- 1. DirectShow - 在觀看時捕獲攝像頭?
- 2. Visual C攝像頭捕獲
- 3. Directshow,捕獲兩個USB攝像頭,不能同時啓動
- 4. VB.Net Directshow攝像頭快照
- 5. DirectShow攝像頭錄製
- 6. Directshow如何使用Monogram X264編碼器從網絡攝像頭捕捉視頻?
- 7. HTML Javascript攝像頭捕獲
- 8. 從Java攝像頭捕獲
- 9. IP攝像頭捕獲
- 10. DirectShow:攝像頭預覽和圖像捕捉
- 11. Directshow攝像頭的硬件編碼羅技C930e
- 12. 網絡攝像頭「仍銷」捕獲
- 13. 捕獲電視調諧器/網絡攝像頭輸出
- 14. 使用表達式編碼的WPF攝像頭捕獲
- 15. .NET應用程序從PDA攝像頭捕獲圖像
- 16. 從c攝像頭捕獲圖像#
- 17. Applet從Web攝像頭捕獲圖像
- 18. 從網絡攝像頭捕獲圖像
- 19. 從java攝像頭捕獲圖像?
- 20. html5從ipad攝像頭捕獲圖像
- 21. 用Ruby捕獲攝像頭的圖像
- 22. 從內置攝像頭捕獲圖像
- 23. DirectShow USB攝像頭改變視頻源
- 24. DirectShow集成攝像頭曝光控制
- 25. 模擬DirectShow網絡攝像頭
- 26. DirectShow USB攝像頭LED閃存訪問
- 27. 使用DirectShow預覽攝像頭
- 28. .NET網絡攝像頭視頻捕獲到文件
- 29. 如何使用asp.net捕獲ip攝像頭.net MVC2(C#)
- 30. 捕獲攝像頭流與V4L2失敗