我尝试为opencv获取立体声对。我将Logitech B910和Logitech C910网络摄像头连接到USB。但是有这个错误。我使用了quirks参数并在mplayer中设置了outfmt=mjpeg
,但又出现了这个错误。
在哪里可以找到uvcvideo或usb驱动程序中的错误?我应该使用哪种监控或调试工具?
答案 0 :(得分:8)
这是一个措辞错误的错误消息;原因是控制器上没有足够的USB带宽。
正如您所猜测的,如果您可以让您的相机使用MJEPG,您的问题将得到解决。
OpenCV可能正在使用FFMPEG进行获取,(linux构建通常具有FFMPEG支持),OpenCV文档承认如果使用FFMPEG,则无法更改获取格式。
我在研究中发现,您需要更改FFMPEG配置。
如果可以,请尝试将相机移动到不同的USB控制器。
答案 1 :(得分:3)
这对我来说很有魅力
sudo rmmod uvcvideo
sudo modprobe uvcvideo quirks=128
每次重启都会重置。如果此方法有效,请创建以下文件:sudo vi /etc/modprobe.d/uvcvideo.conf
,其中包含以下行:options uvcvideo quirks=128
点击此链接http://renoirsrants.blogspot.in/2011/07/multiple-webcams-on-zoneminder.html
答案 2 :(得分:0)
这是USB控制器空间不足的问题。
通常可以通过将设备插入不同的USB端口来解决此问题。例如,我的主板上有eSATA端口,USB 2端口和USB 3端口。如果您以前使用USB2端口,请尝试使用USB3端口。
您可以通过Ubuntu上的命令行通过
查看视频卡分配cat /sys/kernel/debug/usb/devices | grep "B: "
根据发行版,您可能必须使用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
答案 3 :(得分:0)
我刚遇到这个问题,事实证明我必须将我的WebCam(Logitech QuickCam Zoom)连接到USB 2.0端口,而不是首先插入的USB 3.0端口。