2013-10-02 185 views
0

我開發C#桌面應用程序,並指該鏈接,從該播放視頻文件播放視頻文件http://www.codeproject.com/Articles/2632/DirectShow-MediaPlayer-in-C,現在,當我點擊該面板上拍攝照片(在上面的鏈接所示)如何從打捕捉圖像視頻文件,我搜索,但我發現所有示例顯示捕捉某些設備的圖像(eg.webcam等..),在我的情況下,它不是設備它是我從目錄和播放瀏覽的文件,因爲我是新手視頻捕捉請告訴我我怎麼能做到這一點從播放視頻文件

回答

0

你需要一個過濾器捕獲屏幕,併發送視頻往下流。

在DirectShow的庫有一個名爲PushSource樣品過濾器和內部有PushSourceDesktop

在Codeplex上有這樣的例子:(Click me)或關於過濾器的信息(Click me)

1

「捕捉」通常是指圖像採集時,獲取從外部源的圖像。您想要取代當前顯示的視頻幀的副本。有幾種方法可以做到這一點,當視頻播放時,視頻渲染器通常會提供GetCurrentImage方法,該方法會返回當前顯示的視頻幀的副本,甚至可能會轉換爲RGB。

方法的語法視頻渲染器版本之間略有不同。

參見實現這一點前面的主題:

+0

我搜索了很多,上面提到的鏈接,但他們都表示從設備捕捉幀。你可以請直接給我一些捕獲圖像的代碼,播放從目錄中選擇的視頻文件,我不理解如何捕獲幀單擊事件 – Durga

+0

上面的第一個鏈接捕獲從演示文稿組件的視頻。無論源是設備還是文件都無關緊要 - 當前顯示的幀的副本來自可視化組件,它們是相同/相似的。 –

+0

可以請你告訴在第一個鏈接,我會得到''IBaseFilter'類IEnumFilters'代碼,因爲我得到錯誤失蹤的命名空間這一點,所以我不能夠準確地瞭解這些做什麼,還是我失去了一些圖書館或DLL包括在這裏? – Durga

0

您還可以使用「SampleGrabber」DirectShow過濾器:將其放置在源過濾器和呈現過濾器之間的過濾器鏈中。

約SampleGrabber更多信息: see MSDN

+0

這個答案是在C++我正在與C#工作,是他們在C#SampleGrabber代碼? – Durga