De man 7 udev
(destacando por mim):
O kernel geralmente atribui nomes de dispositivos imprevisíveis baseados na ordem de descoberta. […] O nome de um nó de dispositivo não pode ser alterado pelo udev, apenas links simbólicos adicionais podem ser criados.
Em outras palavras, acho que você não poderá usar /dev/video0
ou /dev/video1
de forma confiável. Em vez disso, você deve criar e usar links simbólicos estáveis. Algo como o seguinte pode funcionar em vez disso:
KERNEL=="video*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="5555", ATTRS{idProduct}=="3500", SYMLINK+="myframegrabber"
KERNEL=="video*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0843", SYMLINK+="mywebcam"
Você usaria /dev/mywebcam
e /dev/myframegrabber
em seus aplicativos.
A propósito, como mencionado recentemente em uma resposta semelhante :
Existe uma chance de que o video4linux já forneça nomes de dispositivos estáveis. Você pode querer verificar os diretórios
/dev/v4l/by-id/
e/dev/v4l/by-path/
para isso.