try putting the set(FOURCC) call last. maybe it didn’t correctly try to switch into MJPEG mode. I’ve seen people have issues with the order of these calls.
I think something isn’t USB 3 here, even though it should be. hubs are active devices. they must support USB 3, not just USB in general. a USB 2 hub will work for USB 3 devices, but they’ll run at USB 2 speeds then.
not with OpenCV. VideoCapture’s device number assignment is somewhat opaque and utterly unaware of a device’s identity or “where” a device was plugged in.
it will always assign IDs from 0 onwards. if you have another camera, even a virtual one, then it might be a good idea to test higher numbers. if not, then 0 and 1 are the only useful ones.