Ti suggerisco di creare automaticamente /dev
collegamenti simbolici utilizzando udev
, utilizzando proprietà univoche (numero di serie? numero di porta?) delle tue fotocamere USB. Vedi questo (dovrebbe valere anche per Arch) tutorial sulle regole di udev. O forse questo tutorial è più chiaro.
Puoi ottenere l'elenco delle proprietà dei tuoi dispositivi utilizzando:
sudo udevadm info --query=all --name=/dev/video1
allora
sudo udevadm info --query=all --name=/dev/video2
Trova ciò che è diverso e crea un .rules
file da esso all'interno di /etc/udev/rules.d
(puoi usare 99-myvideocards.rules
come nome file, diciamo); supponiamo che tu voglia utilizzare il numero di serie, otterrai un set di regole simile a:
ATTRS{ID_SERIAL}=="0123456789", SYMLINK+="myfirstvideocard"
ATTRS{ID_SERIAL}=="1234567890", SYMLINK+="mysecondvideocard"
Dopo aver scollegato/ricollegato i tuoi dispositivi (o dopo un riavvio), otterrai /dev/myfirstvideocard
e /dev/mysecondvideocard
che puntano sempre agli stessi dispositivi.
Il metodo di Patrice Levesque funziona bene, ma ho scoperto che ci sono già collegamenti simbolici in Linux come /dev/v4l/by-id/usb-046d_0819_92E84F10-video-index0
nella cartella /dev/v4l/by-id/
quindi non c'è bisogno di fare nulla, se il proprio programma può accettare argomenti diversi da /dev/videoX
.