2011-05-04 19 views
4

我正在致力於實時生成高動態範圍視頻的項目。目標是用3個現成的網絡攝像頭(Microsoft LiveCam Studio)來完成它。我開始嘗試使用OpenCV,但是我無法打開相機。所以我直接跳到videoInput。我可以讓任何兩臺相機相互配合工作。我可以讓任何兩個網絡攝像頭與我的筆記本電腦上的內置攝像頭一起使用。但是,如果我嘗試所有的三個攝像頭一起跑,我得到3攝像頭捕捉視頻輸入或其他任何東西

ERROR: Could not start graph'

花費幾個小時調查videoInput.cpp我想不通爲什麼它會具有相同類型的兩個相機沒有問題後,但不能當我添加第三。

我以爲當我到達這個意想不到的牆時,我幾乎完成了我的項目。

你有什麼想法嗎?

的Windows 7(64)

的Visual Studio 2011

我需要得到所有3個攝像頭幀的同步方式。對於如何完成此任務的任何建議,我都非常歡迎。有沒有其他框架可以讓我避免DirectShow或MediaFoundation?有沒有人有我可以看到的代碼,將打開多個攝像頭,並從流中拉框架?

+0

你可以嘗試將相機插入不同USB集線器的端口嗎? – 2011-05-04 20:58:32

回答

3

很可能攝像頭只能通過directshow(至少在windows上)連接,我不知道微軟提供的任何低級API直接與攝像頭通信。

您是否可以使用常規攝像頭查看器同時運行3個攝像頭?

它可能是directshow或USB的帶寬限制 - 嘗試將它們連接到不同的端口。

即使你不能準確地使用directshow同步相機,定時將高達一個幀間隔(1/10s?)。

1

典型的問題是,USB帶寬不足以使兩臺攝像機在同一時間運行,兩臺攝像機都獨立運行良好,但是一旦你嘗試了它們,你就會失敗。另一個不太常見的原因是相機驅動程序。也許你可以在低分辨率模式下嘗試 - 如果嘗試成功,那麼帶寬不足的版本是最有可能的一個。

有時你可以通過將攝像機連接到不同的USB主機/控制器(而不是同一主機上的端口!)來解決問題。 API本身並不限制您一次只能使用一臺攝像機。

+0

我已經看到微軟Lifecam攝像頭在USB集線器上聲稱所有可用帶寬。您可能需要將額外的USB控制器卡添加到計算機才能成功。 – SteveS 2014-01-24 17:09:50