3 Capturing a camera with video input or something else

I am working on a project to create high dynamic range video in real time. The goal is to do this with 3 webcams on a shelf (Microsoft LiveCam Studio). I started using OpenCV, but I had difficulty opening it. So I jumped right on videoInput . I can make any two cameras work with each other. And I can get any two webcams to work with the built-in webcam on my laptop. But if I try to run all three webcams together, I get

ERROR: Failed to start chart

After spending several hours researching videoInput.cpp , I canโ€™t understand why it will not have problems with two cameras of the same type, but it will fail if I add a third one.

I thought I almost finished my project when I reached this unexpected wall.

Do you have any thoughts on this?

Windows 7 (64)

Visual studio 2011

I need to get a frame from all 3 cameras in a synchronized way. I am open to any suggestions on how to do this. Is there any other framework that will allow me to avoid DirectShow or MediaFoundation? Does anyone have a code that I can look at that will open several cameras and pull frames from streams?

+4
source share
2 answers

It is likely that cameras only connect via directshow (at least on windows), I donโ€™t know any low-level APIs provided by Microsoft to talk directly to cameras.

Can I launch 3 cameras at the same time using a regular webcam?

This may be a limitation in directshow or USB bandwidth - try connecting them to different ports.

Even then you will not be able to accurately synchronize cameras using directshow, the time will be up to the frame interval (1 / 10s?).

+3
source

A typical problem is that USB bandwidth is not enough for two cameras working at the same time, both cameras are working fine, but as soon as you try them, you have a failure. Another common reason is the camera driver. Perhaps you can try it in low resolution mode - if this attempt succeeds, a version with insufficient bandwidth is most likely.

Sometimes you can work by connecting cameras to different USB hosts / controllers (and not to ports of the same host!). The API itself does not limit you to just one camera at a time.

+1
source

All Articles