2012-07-09 73 views
8

我嘗試獲取opencv的立體對。我將Logitech B910和Logitech C910網絡攝像機連接到USB。但有這個錯誤。我玩怪癖參數,並在mplayer中設置了outfmt=mjpeg,但又有這個錯誤。libv4l2:打開流的錯誤:設備上沒有剩餘空間

哪裏可以找到uvcvideo或usb驅動程序中的錯誤?我應該使用哪些監控或調試工具?

+0

作爲第一步,您是否檢查了輸出設備上是否有足夠的空間? – 2012-07-09 12:22:35

+0

當然,超過5Gb。 – victor1234 2012-07-09 12:24:51

+0

這個縮寫意味着五千兆位。你可能是指GB或GiB。 – 2012-07-09 14:17:08

回答

8

這是措辭錯誤的錯誤消息;原因是控制器上沒有足夠的USB帶寬。

正如你所猜測的,如果你可以讓你的相機使用MJEPG,你的問題將得到解決。

OpenCV可能使用FFMPEG進行採集,(Linux版本通常具有FFMPEG支持),並且OpenCV文檔承認,如果使用FFMPEG,則無法更改採集格式。

我在我的研究中發現的所有內容都是您需要更改FFMPEG配置。

嘗試將攝像頭移動到不同的USB控制器(如果可以的話)。

+0

你如何讓你的相機使用MJEPG?在Opencv或在某個地方的相機驅動程序? – bakalolo 2016-11-14 21:41:21

+0

這可以通過任何[USB適配卡]解決(https://www.newegg.com/Product/ProductList.aspx?Submit=ENE&DEPA=0&Order=BESTMATCH&N=-1&isNodeId=1&Description=pci+usb+card) ,它帶有板載控制器?或者主機內存也將是一個問題,而DMA? – 2017-06-21 02:23:50

+0

是的,添加另一個控制器將幫助 – 2017-06-22 04:06:46

0

這是USB控制器空間不足的問題。

這通常可以通過將設備插入不同的USB端口來解決。例如,我的電路板上有eSATA端口,USB 2端口和USB 3端口。如果您以前使用USB2端口,請嘗試使用USB3端口。

您可以通過

cat /sys/kernel/debug/usb/devices | grep "B: " 

看到通過在Ubuntu的命令行視頻卡配股您可能需要使用sudo取決於發行。如果你是windows,或者osx抱歉,我不知道這些系統的解決方案。

我的結果看起來像這樣。

B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
B: Alloc=140/900 us (16%), #Int= 4, #Iso= 0 
B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 17/900 us (2%), #Int= 1, #Iso= 0 
B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 1, #Iso= 0 
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 
0

我只是碰到了這個問題,它原來我有我的網絡攝像頭(羅技快變焦)連接到USB 2.0端口,而不是首先插入的USB 3.0端口。

相關問題