USB/Firewire "Branching" -- Is it Possible? 55
Shaze asks: "I have been doing a lot of overseas web conferencing lately and have been playing around with my two webcams. I was suddenly intrigued by the idea of being able to 'span' or 'branch' both webcams together to create one device pulling signals from both. I did some quick research on the topic to no avail, however many of my colleagues believe this to be possible. Some even going so far as to say they have seen software or drivers that will turn your webcams into one Twain device. Aside from my own meanderings, I can't seem to find any information on anyone or anything even suggesting this is possible. What do you say Slashdot readers: Is this a new application waiting to be marketed or am I just seeing double?"
Possible, but pointless (Score:2, Informative)
However, this would probably require a total software rewrite to enable. I don't imagine drivers would need major revisions, fortunately.
My main question, though, is why? Unless you plan to red/blue shift the objects based on apparent depth and require people to wear stupid glasses, you won't see any interesting effects.
I think we should be more concerned with bringing up the audiovideo quality of videoconferencing.
What??? (Score:3, Informative)
I've seen similar (Score:3, Informative)
I've never seen something that uses one USB and one Firewire camera, though. To me, it makes just as much sense to use two FireWire cameras or two USB 2.0 cameras since the bandwidth of USB 1.2 is so small. I did some computer vision work as an undergrad with a single Logitech Quickcam Express. The camera grabbed 24 bit 320x244 images at a rather low framerate - something like 10 or 15 fps. This took up 90% of the USB's bandwidth!
If you want to, you might be able to write a driver that allows you to treat the two as a single TWAIN device, but I imagine the possibility of such a task is highly OS-dependent. I haven't taken a good look to check, but it seems like it would be possible to do so under the Video4Linux framework. MacOS and Windows, I have no idea.
Re:Not pointless (Score:4, Informative)
Hooking two cameras to a computer is standard practise in computer vision (not what my current employer does, just another example). It's a really good way to get binocular views of a scene for passive stereo systems.
Besides, you don't need goofy red/blue glasses to look at stereo pairs of images. Just cross your eyes, for goodness sakes!
Sure, why not? Except on Linux. (Score:3, Informative)
I have multiple cameras working quite well under QNX, but I wrote that driver. It only uses about 4% of the (1.5GHz) CPU per camera at 640x480 x 15FPS RGB, so it's a modest CPU load. I don't get the image tearing problem Windows does, so the hardware can do the job; it's a Windows problem.
The Linux FireWire driver subsystem has some major problems in the bus reset area and doesn't handle multiple bus masters properly. The last time I looked at that driver, it didn't allocate isochronous channels properly; everything went on channel 0. That limits you to one active camera. But that may have been fixed by now.
Application: WebcamXP (Score:3, Informative)
how about a link to something ? (Score:4, Informative)
Where I used to work (Score:3, Informative)
Re:Shouldn't need separate controllers for USB2.0 (Score:3, Informative)
USB1.1 devices on a USB2.0 controller can be difficult.. If you didn't put them on seperate controllers you'd have to put them on a USB hub with multiple USB1.1 USB2.0 TT's. The Transaction Translator is the device responsible for translating the USB1.1 data to USB2.0 and vice versa. There is typically only one TT per USB controller in the chipset. Webcams are especially nasty since they take up almost the complete bandwidth of USB1.1. If you have two usb 1.1 cameras and only one TT, they're still going to be fighting for that 12Mb/s bandwidth into/out of the TT, even though the bus is capable of a lot more.
The problem is similar to the migration from 10Mb/s ethernet to 100Mb/s ethernet if you were ever doing that.. Some "dual speed" hubs only had a single switch path to get from 10 megabits to 100 megabits, so putting a 100Mb/s card in the server and leaving all the clients at 10Mb/s didn't actually create any performance increase. In many situations where idiot admins swapped in a 10/100 hub to replace 10Mb switches they killed their perforamnce. I had quite a few of those. The solution? Buy a 10 megabit switch with a 100Mb uplink port and plug the uplink into the 100 megabit hub. This is the same problem all over again, except that it's on your desk this time and not in the walls!
Another cheap solution is to put one of the USB1.1 cameras directly into a port from the motherboard and another one on a USB2.0 hub. That way one camera will use the chipset's TT and the other one will use the hub's TT.
~GoRK