Multiple USB Webcams on USB 3.0 Hub

whytheheckme

New Member
Hello,

I'm running into an issue only on the Windows version of OBS (I cannot replicate on Mac). I have multiple (up to 5, but for the this demo and the attached log files, it manifests itself with just 2) USB 2.0 webcams connected to a single USB 3.0 hub (externally powered). When I use usbview to interrogate the bus structure, I can see the hub connected as a USB SS hub, along with the corresponding USB 2.0 hub. I can see the cameras attached to the USB 2.0 hub (as they are USB 2.0 cameras). They show that they're connected at 480 Mb/s (and I estimate that the actual max throughput of each camera is about 12 Mb/s).

In the Mac version of OBS, I can start (all the way up to 5) Video Capture sources in OBS, and see the output of all cameras simultaneously. In windows (on three PCs, a Dell Optiplex 7040, an MSI GL63, and the very SAME Mac running Windows 10 in boot camp, I can only see one camera at a time. When I go to add a second source, the preview window in the panel expands as if there would be something to show, but nothing appears. If I "Deactivate" the first source, I can then choose a camera in the second source. Both cameras work all the time, just only one at a time.

Plugging the cameras directly into the computer works every time, on every machine. I've attached logs for that as well.

I have also tried two different model powered USB 3.0 hubs, as well as five different model USB cameras. I've also reinstalled windows on both the MSI and Bootcamp. Again, the same hub works on the same machine in the same port in MacOS.

Interestingly, I also tried accessing both cameras simultaneously using other applications, and can not. I realize that this means that this is not an OBS problem, but I'm hoping that this community may be able to generate some ideas to help me get to the bottom of this.

Please share any thoughts you might have.
Thank you!
Jacob


Working Mac Log: https://obsproject.com/logs/7AzOCBnqYoS8oIOA
Working Mac Profiler USB Export: https://pastebin.com/YZ5vmbtR

Non-Working Windows Log: https://obsproject.com/logs/sNBIbshSP6eC-46N
Non Working USBview Export: https://pastebin.com/iqMLeypP

Working Windows Log (no USB 3.0 hub in between): https://obsproject.com/logs/ba36L2YE5-nOfQ_V
Working USBview Export: https://pastebin.com/45n1R662
 

whytheheckme

New Member
Followup:
Booting the Bootcamp Windows install in Parallels on the Mac - WORKS. The only difference is how Windows perceives the devices (because in Parallels, the USB hub is virtualized.) Below is the export for that, as well as some images to help demonstrate the difference in topology.


Note, these are the SAME piece of hardware - the only thing that's changed is how I've booted it (USB virtualized in Parallels.)
Working through Parallels (and pastebin) :
Screen Shot 2020-07-21 at 9.42.22 PM.png


Not working through Boot Camp (and looks identical on any other PC):
USB Hub.PNG
 

whytheheckme

New Member
Bad write by programmer driver on Windows ?

I am now led to believe that this is the case. I've tested on 4 different PCs running Windows 10, with failure on all of them. I've tested on the Parallels accessed Windows 10 (which uses drivers written by Parallels), with success.

I've now tried it on a 10 year old PC running Windows 7, and multiple cameras work perfectly out of the box, no tweaks needed.

Any tips from anyone on how to replace USB drivers or diagnose the Windows driver issue would be greatly appreciated.
Frankly, I'm surprised nobody has had this issue up until now...
 

psifertex

New Member
I'm running into the exact same issue! Unfortunately I'm trying to stream multiple webcams at the same time and that means encoding a lot of streams which my mac CPU can't handle. The windows machine I have has a discrete GPU that can handle it but it only has three physical USB ports. No matter what I do I can't get two webcams working on a USB hub! There's clearly enough bandwidth, the hub is powered and both webcams work fine when in native ports, just not through the USB hub. It's a huge pain!
 

whytheheckme

New Member
I've spent another couple dozen hours on this....

On the PC, after attempting to "Activate" a second camera (or add a new source with it), I can see the traffic to the new camera (SET INTERFACE Request) but the response from the camera isn't success, instead it's USBD_STATUS_NO_BANDWIDTH.

nobandwidth.png


I don't get this response on the Mac.

Investigating further, if I reduce the resolution of the first camera and force compression mode to MJPEG in OBS, I'm able to get the second camera added. However, I can't get a third added. Meanwhile, on the Mac, with the same Hub and Camera hardware, I'm able to get 5 cameras added without changing any config options in OBS at all.

This is incredibly frustrating....
 

jasmine.moreira

New Member
I was a Mac user and I had no problems using 2 cameras connected to an usb hub. Now I have a Windows machine for video editing and I can't use the cams with this configuration. OBS is an amazing piece of software and I would be very grateful if a solution would be found.
 

GarethL

New Member
Ive spent multiple hours trying to work out what the problem is with exactly the same issue! Mixed emotions - relieved that i'm not the only one with the issue but frustrated that such a common set-up (multiple cameras via USB 3.0 hub) doesn't work on Win 10. Given this appears to be a Window 10 driver issue and not OBS, there's probably not much we can do?
 

carlmmii

Active Member
USB2.0 devices are limited to USB2.0 host controller bandwidth on windows, which leads to the problems of connecting multiple cameras to the same hub. Doesn't matter that it has all the USB3.0 bandwidth to handle all those webcams... they all don't use it.

What's interesting to me is the difference between the USBview on bootcamp vs the USBview on parallels. Bootcamp is showing it connected via USB1.1 and USB2.0 interfaces, which is expected. Parallels however is showing it connected over USB3.0... which if true, would explain why it's able to handle the excess load, since it's not limited to USB2.0 bandwidth limits.
 
I got a 2014 Mac Mini which has one USB 3 Port split between four USB a sockets. I'm only using three Minoru cameras which max out to 640x480 pixels by 30 frames by two eyes. (Stereoscopic camera). I get three cameras working but the problem is that sometimes one or two cameras decide to stutter. Is there a strategy which I should use like for example I have a choice between a USB 3.1 multiple 3.0 hub a USB 3.0 to multiple 2.1 and one 3.0 hub. I got two of each of those.

Also my camera needs Long reach because the camera placements are not that close to each other. Therefore I have extra cables of USB 3.0 a female to a male connectors.

I can get all three cameras plus the footage working but I'm not sure about what strategy I should use for my USB 3 and 2 connectors.
 

EssKayKay

New Member
I am having the exact same issue trying to attach two Logitech webcams (C-920 & c-9220) to my Win10 Dell XPS 13. I tried it with both an externally powered USB-A to USB-A and an externally powered USB-C to USB-A 4-port hubs with the same result (i.e., could only view on webcam at a time). Also, as others have noted, I could run both webcams simultaneously on my old Win7 HP Pavilion laptop. Has anyone resolved this issue?
 

.norman.

Member
I am having the exact same issue trying to attach two Logitech webcams (C-920 & c-9220) to my Win10 Dell XPS 13. I tried it with both an externally powered USB-A to USB-A and an externally powered USB-C to USB-A 4-port hubs with the same result (i.e., could only view on webcam at a time). Also, as others have noted, I could run both webcams simultaneously on my old Win7 HP Pavilion laptop. Has anyone resolved this issue?

it is a usb controller issue, you should never use an external hub with your cameras. your computer should have more than 1 usb controller installed. (for example a laptop with usb ports on both sides) make sure that your cameras are connected to different controllers. also worth checking to make sure that you are using usb3.0 or higher ports, the simple way to confirm is to look at the port on your computer, if the interior is blue or blueish-green then it is a usb3.0+ port, if it is black it is a usb2.0 port.
 

EssKayKay

New Member
it is a usb controller issue, you should never use an external hub with your cameras. your computer should have more than 1 usb controller installed. (for example a laptop with usb ports on both sides) make sure that your cameras are connected to different controllers. also worth checking to make sure that you are using usb3.0 or higher ports, the simple way to confirm is to look at the port on your computer, if the interior is blue or blueish-green then it is a usb3.0+ port, if it is black it is a usb2.0 port.
Thanks ngholson for you input – much appreciated.

Please forgive me since you are talking to a real non-technophile here. I think I understand what you are saying. There is only one USB3 port on this machine and that’s the one I connected to. I assume both cameras are USB-2. I have tried two “powered” USB hubs; a USB-3 and USB-C. Neither of them worked.

The weird thing is it worked fine on my old lower level Win-7 machine with no USB-3 ports. Again, I’m no savant but it sounds like an OS thing – then again, what do I know.

I would like to get this to work with this laptop. I read that many people are running numerous webcams; I assume with external hubs – all I want is two. Any other suggestions would be greatly appreciated.

Thanks all,
SKK
 

.norman.

Member
I have tried two “powered” USB hubs; a USB-3 and USB-C. Neither of them worked.

if the laptop has a USB-C typically that would be a separate controller from the USB 3.0 A connections. try and use a USB-C hub with 1 camera and the other camera connected to the USB A port.

edit: not both connected to the hub, one directly connected to the computer and 1 connected to a usb hub connected via USB C to the laptop
 

.norman.

Member
The weird thing is it worked fine on my old lower level Win-7 machine with no USB-3 ports. Again, I’m no savant but it sounds like an OS thing – then again, what do I know.

it is a hardware issue, each usb controller only has so many resources, cameras use a lot of those resources. as laptop manufacturers try and stay competitive with lower prices, costs get cut somewhere, most users do not need that many usb connections on a laptop. the end result is laptops with 1 maybe 2 usb A connections (if any) and 1 USB-C connection.
 

EssKayKay

New Member
if the laptop has a USB-C typically that would be a separate controller from the USB 3.0 A connections. try and use a USB-C hub with 1 camera and the other camera connected to the USB A port.

edit: not both connected to the hub, one directly connected to the computer and 1 connected to a usb hub connected via USB C to the laptop
Yup, as long as I connected one cam to the hub and one to a port on the laptop I can see both cameras. The problem is I really don't to do this but if necessary I guess I must. Again, just a bit disappointing that it worked better with my old laptop.

Thanks again. . .
 

.norman.

Member
Yup, as long as I connected one cam to the hub and one to a port on the laptop I can see both cameras. The problem is I really don't to do this but if necessary I guess I must. Again, just a bit disappointing that it worked better with my old laptop.

Thanks again. . .

you can still connect a mouse and other usb devices to the hub if needed, just not 2 cameras.
 

EssKayKay

New Member
you can still connect a mouse and other usb devices to the hub if needed, just not 2 cameras.
Yes, I was able to do that, not a mouse but my audio interface. like I said, in an effort to keep things clean and uncluttered as my space is very limited, I wanted to plug all into one hub but apparently that won't work with this machine.

Thanks again for our time and concern - much appreciated,
Steve K.
 

EssKayKay

New Member
I got a hold of my sister’s HP Envy x360. I connected the USB hubs (USB-A & USB-C) to the HP – both of them worked fine. So apparently it may be an issue specific to my Dell XPS13 laptop.

Like I have noted, I am not the most tech-savvy guy around. But, since my machine is only an 11-inch laptop and the others were 15-inch units. Could this have something to do with the size of the laptop? I know that sounds weird but I assume my smaller machine has a smaller motherboard. I’ve read that there may be concerns where different USB ports are connected different USN controllers (or something like that). Does my small unit only have one controller and the larger units have two controllers?

Please bear with me as I am only grasping at straws here so please. Again, any suggestions are greatly appreciated,
Steve K.
 

.norman.

Member
I got a hold of my sister’s HP Envy x360. I connected the USB hubs (USB-A & USB-C) to the HP – both of them worked fine. So apparently it may be an issue specific to my Dell XPS13 laptop.

Like I have noted, I am not the most tech-savvy guy around. But, since my machine is only an 11-inch laptop and the others were 15-inch units. Could this have something to do with the size of the laptop? I know that sounds weird but I assume my smaller machine has a smaller motherboard. I’ve read that there may be concerns where different USB ports are connected different USN controllers (or something like that). Does my small unit only have one controller and the larger units have two controllers?

Please bear with me as I am only grasping at straws here so please. Again, any suggestions are greatly appreciated,
Steve K.

you would need to look up the specifications for your specific computer on the manufacturers webpage to answer that question.
 
Top