Capture de plusieurs webcams (uvcvideo) avec OpenCV sous Linux

Je suis en train d'en continu et simultanément les images à partir de 3 Logitech Webcam Pro 900 appareils à l'aide d'OpenCV 2.1 sur Ubuntu 11.10. Le pilote uvcvideo est chargé pour ces.

La capture de deux appareils fonctionne très bien, mais avec trois, j'ai couru dans l'espace de l'erreur pour le troisième:

libv4l2: error turning on stream: No space left on device

Je semble être en cours d'exécution sur cette question:
http://renoirsrants.blogspot.com.au/2011/07/multiple-webcams-on-zoneminder.html et j'ai tenté de faire des caprices=128 (ou à peu près n'importe quelle autre puissance-de-deux de la valeur) truc mais en vain. J'ai aussi essayé sur une autre machine avec deux hubs USB 2.0 et connexion de deux appareils photo de l'un et de l'autre caméra à la seconde, ce qui a entraîné dans le même problème. Je suis de l'initialisation à peu près comme suit (à l'aide de N caméras, donc le résultat est effectivement mis dans un vecteur STL):

cv::VideoCapture cap0(0); //(0,1,2..)

et de tenter de capturer toutes les caméras dans une boucle comme

cap0.retrieve(frame0);

Cela fonctionne très bien pour N=2 caméras. Lorsque j'ai mis N=3 la troisième fenêtre s'ouvre mais aucune image n'apparaît, et la console est spammé plein de V4L2 erreurs. De même, lorsque j'ai mis N=2, et essayez d'ouvrir la troisième caméra en dire du Fromage (simple webcam capture d'application), cela ne fonctionne pas non plus.

Maintenant vient le gros mais: Après avoir essayé guvcview en commençant par les trois instances de ça, j'ai été en mesure d'afficher trois appareils à la fois (avec pas de problèmes en termes de taux de trame ou connexes), de sorte qu'il ne semble pas être un problème matériel. Je l'ai trouver il y a quelque chose que je dois régler, mais je ne suis pas sûr de ce qui est. J'ai regardé dans MJPEG (ces appareils semblent venir à l'appui), mais n'ont pas réussi dans la définition de cette propriété, ou de détecter le mode (yuyv?) ils sont en cours d'exécution si je commence à partir d'OpenCV.

Pensées?

source d'informationauteur geez