1台のPCに3台のUSBカメラがあります。1台のカメラは使用されず、無視してかまいません。 2つの同じカメラを定数のデバイス名(/dev/video1
や/dev/video2
など)に強制的にマッピングする必要があります。カメラの順序は変更しないでください(たとえば、カメラ1をvideo1
としてマウントし、カメラ2をvideo2
としてマウントした後、カメラ1-> /dev/video2
、camera2->ではなく同じ順序にする必要があります。 /dev/video1
。この設定を機能させるには?
カメラ出力をGstreamerに送ります。カメラはv4l2およびvcドライバーインターフェイスを使用しています。問題のLinuxディストリビューションはArchlinux、カメラ-一部のLogitechウェブカメラです。
USBカメラの固有のプロパティ(シリアル番号?ポート番号?)を使用して、udev
を使用して/dev
シンボリックリンクを自動作成することをお勧めします。これを見てください(Archにも当てはまります) devルールに関するチュートリアル 。または おそらくこのチュートリアルはより明確です 。
以下を使用して、デバイスのプロパティのリストを取得できます。
Sudo udevadm info --query=all --name=/dev/video1
その後
Sudo udevadm info --query=all --name=/dev/video2
何が違うかを見つけて、.rules
内に/etc/udev/rules.d
ファイルを作成します(99-myvideocards.rules
をファイル名として使用できます)。シリアル番号を使用したい場合、次のようなルールセットを取得します。
ATTRS{ID_SERIAL}=="0123456789", SYMLINK+="myfirstvideocard"
ATTRS{ID_SERIAL}=="1234567890", SYMLINK+="mysecondvideocard"
デバイスの取り外し/再接続後(または再起動後)、常に同じデバイスを指す/dev/myfirstvideocard
および/dev/mysecondvideocard
が表示されます。
Patrice Levesqueメソッドは問題なく機能しますが、/dev/v4l/by-id/usb-046d_0819_92E84F10-video-index0
フォルダーに/dev/v4l/by-id/
としてシンボリックリンクがすでに存在するため、プログラムが/dev/videoX
以外の引数を受け入れることができる場合、何もする必要はありません。