我尝试为 opencv 获取立体声对。我将 Logitech B910 和 Logitech C910 网络摄像头连接到 USB。但是有这个错误。我玩过 quirks 参数并outfmt=mjpeg
在 mplayer 中设置,但再次出现此错误。
我在哪里可以找到 uvcvideo 或 USB 驱动程序中的错误?我应该使用哪些监控或调试工具?
这是一个措辞不当的错误信息;原因是控制器上没有足够的 USB 带宽。
如您所料,如果您可以让您的相机使用 MJEPG,您的问题将得到解决。
OpenCV 可能正在使用 FFMPEG 进行获取,(linux 构建通常具有 FFMPEG 支持)并且 OpenCV 文档承认如果使用 FFMPEG,您将无法更改获取格式。
我在研究中发现的只是您需要更改 FFMPEG 配置。
如果可以,请尝试将相机移至不同的 USB 控制器。
这对我很有魅力
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
This is a problem with the USB controller running out of space.
This can usually be fixed by plugging the device into a different USB port. For example I have eSATA ports on my board and USB 2 ports and USB 3 ports. If you were previously using USB2 ports try the USB3 ports.
You can see the video card allotment via the command line on Ubuntu via
cat /sys/kernel/debug/usb/devices | grep "B: "
You might have to use sudo depending on distro. If you are windows, or osx sorry I don't know solutions for those systems.
my results look like this.
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
我刚刚遇到了这个问题,事实证明我必须将我的网络摄像头(Logitech QuickCam Zoom)连接到 USB 2.0 端口,而不是首先插入的 USB 3.0 端口。