2011-05-25 262 views
6

我有一箇舊的計算機視覺實驗,使用Video for Windows從連接到PC的相機抓取幀。這是一個黑客攻擊,它使用VfW創建預覽窗口,然後從窗口DC執行GetDIBits。ISampleGrabber已棄用?

我終於準備好將它移植到DirectShow。我的理解是,我可以通過使用ISampleGrabber從視頻捕捉圖抓取幀,但現在我讀了ISampleGrabber is deprecated

從視頻Feed抓取幀的非棄用方式是什麼?我是否必須實現我自己的DirectShow過濾器,它基本上實現了ISampleGrabber的功能?

+0

嗨,我有一個類似的問題在那裏ISampleGrabber和IID_ISampleGrabber是未申報的標識符(我在SDK V7.1運行,VS2010)。你能分享你的解決方案嗎? – Basel 2014-04-24 22:05:26

+0

@Basel:我添加了我自己的頭文件:http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2ab5c212-5824-419d-b5d9-7f5db82f57cd/qedith-missing-in-current -windows-sdk-v70?forum = windowsdirectshowdevelopment – 2014-04-25 12:31:12

+0

感謝@Adrian,我終於設法從舊的SDK版本(V5,V6.0)中恢復qedit.h,並使用ifndef/def作爲缺失的「dxtrans.h」。 – Basel 2014-04-25 23:25:58

回答

6

DirectShow不被棄用;只是DirectShow編輯服務。我強烈建議使用DirectShow,因爲它需要更廣泛的支持,除非需要MF的特定功能。

幾年來一直沒有開發DES,但採樣卡是一種廣泛使用的濾波器,有點獨立於DES。我很樂意推薦您使用它。如果在將來的Windows版本中存在問題,則更換過濾器不會超過一兩天的工作量。

5

我認爲Windows Media Foundation將是你最好的選擇,如果你只是針對Vista/Win7,否則你仍然可以使用DirectShow/SampleGrabber的方法,我懷疑它會很快被刪除。相關問題here

+0

+1當我第一次寫這個問題時,XP仍然是一個需求,但是現在Vista和Win7都是基本級目標平臺的合理選擇。 – 2015-01-27 00:45:04