OpenCV Python: cv2.VideoCapture can only find 2 of 3 cameras, Windows Camera app finds all : <p>I'm trying to create 3 real-time capture frames with webcams into a USB hub into my laptop. Using the "camera" app on Windows, I can change the camera source one at a time and confirm that all 3 webcams are working. However, my OpenCV Python code can only ever find two. </p>

<p>(Quick notes on the USB - it's a USB 3.0 hub, laptop port is USB 3, and I even have an active USB female-to-male cable going into the laptop, so given this and the Windows app working, I generally trust the hardware.) </p>

<p>Below I did some raw testing of <code>cv2.VideoCapture(src)</code> with the results below: </p>

<pre><code>cams_test = 10
for i in range(0, cams_test):
    cap = cv2.VideoCapture(i)
    test, frame = cap.read()
    print("i : "+str(i)+" /// result: "+str(test))
</code></pre>

<p>That first argument, <code>test</code>, returns True/False depending on if the frame can be read. Results:</p>

<pre><code>i : 0 /// result: True
i : 1 /// result: True
i : 2 /// result: False
i : 3 /// result: False
i : 4 /// result: False
i : 5 /// result: False
i : 6 /// result: False
i : 7 /// result: False
i : 8 /// result: False
i : 9 /// result: False
</code></pre>

<p>As with other sample code I tested, only 2 webcams can be registered and show frames in Python. And the Windows 10 camera app lets me scroll between all 3 working and connected webcam feeds. </p>

<p>I know I can create multiple, like 3+, <code>cv2.imshow()</code> frames if I use the <code>cap</code>s that work. My project involves doing this to show realtime USB webcam feeds on the laptop from multiple cameras. </p>

<p>Any help and advice appreciated; also potentially interested in (Python-based) alternative solutions. Cheers. </p>
