2013-03-31 66 views
0

最近,我已經開始在我自己的項目上工作,它使用DirectShow .Net捕獲攝像頭輸出。有幾個問題,我不知道如何解決 1)我如何編碼捕獲到H.264格式的流。我明白我應該如何在過濾器圖中添加過濾器。但我無法找到在哪裏以及如何。此外,我無法找到是否有標準的H.264過濾器,或者我應該從哪裏下載它?如果我需要下載它可以只是一個DLL,以便我添加引用或應該是安裝程序? 2)有沒有辦法將捕獲的輸出保存到內存對象中,某種類型的流還是隻能寫入文件? 最好的問候, 約爾丹DirectShow .Net攝像頭捕獲編碼輸出?

回答

1
  1. 您將需要使用像FFmpeg的或手剎。檢查出http://vidcoder.codeplex.com/。 AForge也有一些視頻編輯功能,你也可以通過濾鏡。還有幾個FFMpeg C#包裝可以使用,如https://github.com/crazyender/FFMPEG.net

  2. 您應該使用AForge.net。所有的辛苦工作已經爲你完成了。使用VideoFileWriterhttp://www.aforgenet.com/framework/docs/html/4ee1742c-44d3-b250-d6aa-90cd2d606611.htm。我看起來AForge框架也使用了FFMpeg(參見AForge.Video.FFMPEG名稱空間)。你只需要創建一個作家,並把它傳遞位圖/幀writer.WriteVideoFrame(bitmap);

你應該充分調查AForge視頻抽象。你可以節省大量的時間。

例子:http://www.aforgenet.com/framework/samples/video.html

1

1)是的,你應該下載編碼器濾波器庫。大多數解碼器都免費提供。但編碼器不是。如果你不想付錢,你必須找到開源的編碼器。 而要在graphedit程序中使用,你應該註冊該dll文件。或者安裝程序會這樣做。而且您還需要檢查容器類型,如mp4,mkv ...換句話說,您需要mux過濾器將其保存到文件中。我認爲有人會鏈接可用的網址。抱歉,我現在沒有網址。

2)什麼是捕獲手段?那是電影嗎?或圖像?

  • 在Image的情況下,有很多示例項目和SampleGrabbers。您可以將它保存到文件和內存中。

  • 在電影的情況下,我敢肯定,你的電腦內存不符合他們與出編碼。創建內存流並將其傳遞給捕獲管理器。

您也可以製作過濾器以便根據您的需求定製過濾器。所有信息都包含在Windows SDK示例中。

1

您可以使用VisioForgeViscomsoft的商業軟件。

AForge潛在的問題 - 捕獲期間沒有音頻,只有視頻。輸出格式也非常有限。但是 - 它是免費且開源的,如果你有任何DirectShow體驗,你可以添加音頻支持。