Set webcam on different USB bus
Solution 1:
The answer is: it's not actually your problem.
Some logitech cameras have usb bandwidth allocation bug. Lets see if that's the case.
cat /sys/kernel/debug/usb/devices | grep "B: "
will give you current bandwidth allocation of all usb hubs, output will be something like this:
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
B: Alloc= 35/900 us ( 4%), #Int= 3, #Iso= 0
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
As you can see, I currently have 35 mbps allocated of my usb3 hub. The problem with some logitech cameras, though, is that they will always allocate as much as they can get (480 mbps), disregarding of mode. And so it's down to simple arithmetic as 480 + 480 > 900 and second camera just "won't fit".
As long as your cameras are plugged in the same hardware usb hub, you will have that problem.
Also bear in mind, that webcamera usually allocates 128mbps in MJPEG and 424mbps in uncompressed mode for 640x480.