title: OpenCV Python: cv2.VideoCapture can only find 2 of 3 cameras, Windows Camera app finds all
body: <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>