Debian / Linux에서 둘 이상의 USB 웹캠을 실행하면 다음 오류가 발생합니다.
libv4l2: error turning on stream: No space left on device
VIDIOC_STREAMON: No space left on device
OpenCV에서 처음 프로그래밍 문제로 보였던 것은 치즈와 xawtv를 실행하여 동일한 오류가 발생한 후 신비한 하드웨어 / 소프트웨어 문제를 찾는 것으로 바뀌 었습니다.
USB 호스트 컨트롤러에서 사용 가능한 모든 대역폭을 요청하는 웹캠으로 인한 것 같습니다. 이를 염두에두고 단일 카메라가 얼마나 많은 대역폭을 사용하는지보기 위해 wireshark 와 capinfos 를 실행하기로 결정했습니다 .
4 megabits per second at 320x240
14 megabits per second at 640x480
32 megabits per second at 1280x720
흥미 롭습니다! 320x240의 두 대의 카메라가 작동하지만 더 높은 해상도가 실패하는 이유를 설명 할 수 있습니다. 마치 USB 컨트롤러가 USB 1 속도로만 작동하는 것처럼 보이지만 lsusb 는 초당 480 메가 비트를 지원하는 장치에 속하는 두 웹캠을 모두 보여줍니다.
한 솔루션은 다음 명령을 실행하여 웹캠이 최대 사용량을 요청하는 대신 대역폭 사용량을 계산하도록 제안했습니다.
sudo rmmod uvcvideo
sudo modprobe uvcvideo quirks=128
불행히도 아무런 차이가 없었으므로 다른 솔루션을 시도하기로 결정했습니다. StackOverflow 의 게시물 은 웹캠에 MJPEG와 같은 낮은 FPS 또는 압축 비디오 형식을 사용하도록 제안했지만 v4lctl 목록 을 실행 한 후에 는 웹캠 중 하나가 비디오 모드 변경을 지원하지 않는 것으로 보입니다.
그리고 그것이 내가 붙어있는 곳입니다. 두 개의 웹캠이 USB 2의 최대 속도보다 느리게 작동하는 이유는 무엇입니까?
추신 : 디스크 공간 문제가 아니며 웹캠을 시작할 때 df에 아무런 변화가 없습니다.
pps : 차이 가 나면 lsusb의 결과는 다음과 같습니다.