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 .