opencv用のステレオペアを取得しようとしています。LogitechB910とLogitechC910のWebカメラをUSBに接続します。しかし、このエラーがあります。癖のあるパラメータで遊ん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
これは、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