Ich schlage vor, dass Sie /dev
automatisch erstellen Symlinks mit udev
, unter Verwendung eindeutiger Eigenschaften (Seriennummer? Portnummer?) Ihrer USB-Kameras. Sehen Sie sich dieses (sollte auch für Arch gelten) Tutorial über udev-Regeln an. Oder vielleicht ist dieses Tutorial klarer.
Sie können die Liste der Eigenschaften für Ihre Geräte abrufen mit:
sudo udevadm info --query=all --name=/dev/video1
dann
sudo udevadm info --query=all --name=/dev/video2
Finden Sie heraus, was anders ist, und erstellen Sie einen .rules
Datei daraus in /etc/udev/rules.d
(Sie können 99-myvideocards.rules
verwenden als Dateiname, sagen wir); Angenommen, Sie möchten die Seriennummer verwenden, erhalten Sie einen Regelsatz, der wie folgt aussieht:
ATTRS{ID_SERIAL}=="0123456789", SYMLINK+="myfirstvideocard"
ATTRS{ID_SERIAL}=="1234567890", SYMLINK+="mysecondvideocard"
Nach dem Trennen/Neustecken Ihrer Geräte (oder nach einem Neustart) erhalten Sie /dev/myfirstvideocard
und /dev/mysecondvideocard
die immer auf dieselben Geräte verweisen.
Die Patrice Levesque-Methode funktioniert gut, aber ich habe festgestellt, dass es unter Linux bereits symbolische Links als /dev/v4l/by-id/usb-046d_0819_92E84F10-video-index0
gibt im Ordner /dev/v4l/by-id/
Es ist also nichts zu tun, wenn das eigene Programm andere Argumente als /dev/videoX
akzeptieren kann .