モーションを使用すると、2つのUSB2ウェブカメラ間で「クロス」が発生するのはなぜですか?

モーションを使用すると、2つのUSB2ウェブカメラ間で「クロス」が発生するのはなぜですか?

使っていますスポーツLinuxパッケージは、2つのMicrosoft LifeCam HD-5000 Webカメラを備えたセキュリティシステムとして機能します。全体的にうまくいきますが、奇妙な問題が発生しました。場合によっては、1つのカムのフィードは、下の画像(赤で強調表示されている)のように、スキャンバーに他のカムの「クロストーク」または「クロス」を表示します。

何してるの?

ご覧のとおり、画像は内部カメラと外部カメラから供給される画像の混合物です。私は信じるこの記事はMotionのwikiから抜粋したものです。同じ問題が説明されていますが、次のような解決策はありません。

1台以上のUSBカメラが必要な場合は、コンピュータにUSB PCIカードを追加してください。

しかし、これはUSB 1.1であり、これらはUSB 2.0カメラです。また、システムには2つのUCBカードがあり、カメラは2つの異なるUSBバスに接続されていると思います。

root@chef:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
        |__ Port 2: Dev 3, If 0, Class=stor., Driver=usbfs, 480M
        |__ Port 3: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 3: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 3: Dev 4, If 2, Class=audio, Driver=snd-usb-audio, 480M
        |__ Port 3: Dev 4, If 3, Class=audio, Driver=snd-usb-audio, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 0, Class=HID, Driver=usbhid, 1.5M
        |__ Port 4: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 4: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 4: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 480M
        |__ Port 4: Dev 5, If 3, Class=audio, Driver=snd-usb-audio, 480M
root@chef:~# lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 12)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation 5 Series Chipset LPC Interface Controller (rev 06)
00:1f.2 IDE interface: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA IDE Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57788 Gigabit Ethernet PCIe (rev 01)

だから私の質問は次のようになります

  1. そのような交差の原因が何であるかを知っている人はいますか?
  2. その他のトラブルシューティングの提案はありますか?
  3. Motion開発者にサポートを依頼する必要があるようです。そうする前に、彼らが提案したように、カメラを2つの異なるPCIカードに実際に接続していることを誰かが確認できますか?

答え1

最初の点の場合:USB1.1はUSB2.0よりはるかに遅いです。、ほとんどの場合。デバイスは、より速い480Mbpsではなく12Mbpsの低い1.1速度で接続を続けることができますが、これは通常、ポートがより低い速度を自動ネゴシエートするか、2つのデバイスのうちの1つが実際に1.1であるために発生します.この問題が発生した場合は、接続を切断して再接続してみてください。両方とも2.0で、オペレーティングシステムが2.0をサポートしていることを確認してください。 (一般的なアドバイスですよね?) ~~とにかく、新しいカードをお勧めしますね。これにより、個々のカメラのUSB1.1のフルスピードを使用できます。PCIバスUSB1.1よりはるかに高速です。しかし、2.0ではそうする必要はありません。 【死んだ馬の鞭打ち、次の話題へ】

今、あなたのデバイスにのみ排他的に適用されます。最も表面的には、Core i5、つまりIntel 5/3400シリーズPCHと82801 PCIブリッジがあります。 (注:Dell Core i5を所有していることが確認されました。)この特定のPCHもコード名です。アイベックスピーク。 (私が知っている限り)もう別のサウスブリッジがないので、以前に存在していなかった新しい動作を受け入れることができます。統合されたチップセットはUSBをDMAにはるかに近いものにするので、問題は5/3400チップセットにあるかドライバにあると予想されます。どちらもテストするのは簡単ですが、初期資本支出が必要なので良いことではありません。

以下はカメラやドライバではなくチップセットだと思うものです。Intel PCHの既知の問題(前後にクリックするのを防ぐために今引用します。

  • 一括トラフィックと制御トラフィックによりUSBポートがハングする(Errata 7およびMicrosoft KB982091)1)
  • 偽のUSBポートは、最初のEHCIコントローラに6つのUSBポート(3420、H55)を搭載したデスクトップPCで検出されます。 ACPI S4に入った後にAC電源を取り外すと、この現象が発生する可能性があります。 AC電源を再度追加してS4から回復すると、USBデバイスが検出されなかったり、正しく動作しなくなることがあります(Errata 12)。
  • 最初のEHCIコントローラに6つのUSBポート(HM55)を搭載したモバイルPCで、偽のUSBポートが検出されます。 ACPI S4に入った後にAC電源とバッテリーを取り外すと、この現象が発生する可能性があります。 AC電源またはバッテリーを追加してS4から復元すると、USBデバイスが検出されないか、正しく機能しない可能性があります(Errata 13)。

これにより、新しいPCIカードを追加すると、特定のUSBコントローラロジックの負荷がなくなり、パフォーマンスが向上すると考えられます。ただし、テストで両方のカメラを同じUSBハブに移動してみてください(マザーボードのスタッキングスロットを一致させるだけで十分です)。同じ問題が発生していることを確認してください。 USD/Pesoは、こうすれば同じ問題に直面するだろうと言います。

しかし、これはLinuxのUVCドライバの問題である可能性が高いと思います。通常、ハードウェア関連の問題ではなく、同じコントローラ(たとえば、コントローラなど)で複数のカメラを処理します。私は特定のビットを解決するために最初にハードウェアから始める必要があると思いました(誤動作が完全に可能であるため)。以下は関連URLです。

さて、今は雑談で十分です。コメントに返信しますか?


要約:USB PCIカードを入手してカメラを取り付けます。

関連情報