Stream 6 cameras at the same time

Hi Guys,

I have a Jetson Xavier NX Board. I am planning to stream 6 Cameras (4 usb and 2 csi) at the same time. I dont have any concern about frames or streaming quality. But I need to stream all 6 at once. Currently, I am able to stream either 2 usb or 2 csi at the same time. When I run all at same time, I am getting “No Space Left of Device”. Couldn’t find a solution. Please let me know if you have any suggestions.

Thanks in Advance.

The message “No Space Left of Device” about the storage space?
How about 3 usb camera?

Yeah. I tried with 3 camera too. Same message showing. Only 2 usb cameras are working for me at once.

What’s your command line to run the camera?

python and opencv. (VideoCapture & Imshow)

Can the v4l2-ctl working for 6 cameras?
If the v4l2-ctl working well, the problem could be relative with openCV.

Oh. I didn’t check with v4l2-ctl.
you mean to say that we need to use API (cap_v4l2) in code? In that case I used it,
Can you shed some light on that?

Maybe v4l2-ctl --stream-mmap --stream-count=5000 -d /dev/video0 for USB camera,
v4l2-ctl --set-ctrl bypass_mode=0 --stream-mmap --stream-count=5000 -d /dev/video0 for CSI camera

I ran that command in 3 terminals for 3 cameras. Now all are running in PC.

but in Jetson when I run the 3rd camera. Again it showed the following message.
VIDIOC_STREAMON: failed: No space left on device

I just try on NX, can’t repo it with 2 USB cameras and one CSI camera.
What’s the USB camera resolution?
What’s if select smaller resolution?

I figured it.
I am using two logitech cams and 2 local cams. Logitech resolution is 720p and local cam resolution is 480. I selected a smaller resolution which 240p and ran it. Still I am getting “No space Left” Message. So, I tried with 2 logitech and 1 local cam and I am able to stream all three but If I connect 2 local cam and 1 logitech, I am able to stream only 2.
I checked the USB bandwidth too.

  1. 2 Logitech cams consuming 30 Mbps bandwidht at 720P resolution.
  2. 2 Local cams consuming 30 Mbps bandwidht at 480P resolution.
  3. 2 Logitech cams are consuming 10 Mbps bandwidht at 240P resolution.
  4. 2 Logitech cams are consuming 30 Mbps bandwidht at 240P resolution.
  5. 2 Logitech and 1 Local cams are consuming 28Mbps bandwidth at 240P
  6. 1 Logitech and 2 Local cams are getting error because of point

I think If we select the smaller resolution we can connect 4 Logitech cams but I have not tested it.

You mean, you cannot run 2 usb cameras and one csi camera at once?
what kind of error are you getting?

I run 2 USB and one local cameras without problem.

Oh…Okay. I am working and CSI and USB cameras at once. I’ll update you about the status.

I have checked the CSI Cameras. Now I am able to run either 3 USB Cameras or 2 CSI cameras but not 5 at the same time. do you have any suggestions?

Did you open 5 console to run the v4l2-ctl command?

No, CSI cameras are showing green screen when I use v4l and it is working fine when I use gstreamer (nvarguscamerasrc). I combined altogether in a single program and executed it. I am not getting any error & I am only able to see CSI cams video but USB cam video are not opening.

I am confuse with it.
Can you just have your detail test instruction here.


I want to stream 6 Cameras at a time.
So, I have 2 CSI MIPI Cameras (IMX219).
2 USB Logitech Cameras
2 USB Zebronics Cameras.

I figured My Jetson is able to allow around 36Mbps bandwidth,
So, I changed the resolution for USB Cameras and Now 2 Logitech cameras bandwidth is 10 MBps and 1 Zebronics USB Cam bandwidth is 15 Mbps. I cannot use the 4 Zebronics. I think it has to do with drivers. Now I am planning to buy extra 2 Logitech USB cam and then it should be able to stream all 480.

Coming to CSI Cameras, I am able to stream 2 cameras alone at 3264x2464 resolution but When I stream all 5 cameras at once (3 USB & 2 CSI), CSI camera has lag but in 480P, all are running good.

I think, If I replace 2 zebronics camera with 2 other logitech cameras. I should be able to stream all 6 at a time. Problem is solved. What do you think? you have any doubts?

Thanks for the help though.

I have another doubt. Do you have any idea about streaming all together in a single frame? or sending into to a server and stream on the browser?