How many usb cameras can be used together in Jetson Nano?

How many usb cameras can be used together in Jetson Nano?

Hi i45p8w,

There are 4 USB 3.0 post on devkit, your consideration should be toward the entire Nano system performance where could meet your project requirement or not, such as the resolution/FPS requirement, streaming or picture application performance requirement…etc.

What kind of usb camera?Support UVC?

Hi,

Yes, we support UVC driver.
Please consider USB cameras from our partners:

Hi all,
I’ve 2 USB cameras. But once connected using the command “v4ls-ctl --all” I’m able to see only one camera (/dev/video0). How to activate also the other one?

Thanks for your support
Plauto

How many usb cameras can be used together in Jetson Nano?

Hi all again,
please how to set UVC driver to make me able to use 2 USB cameras on Jetson NANO devkit? Is it possible?

Thanks

Hi,
Please try other cameras. Two USB3 cameras should work fine on Jetson Nano. Suspect it is specific to certain cameras which can not be enumerated successfully.

Hi,
Might also be an issue in insufficient power.
Please also check Power supply considerations for Jetson Nano Developer Kit - Jetson Nano - NVIDIA Developer Forums
Or try a USB hub with external power supply.

I have connected two cameras via two USB3-HDMI adapter and read the streams with gstreamer, see pictures.

I have connected two cameras via two USB3-HDMI adapter and read the streams with gstreamer, see pictures.

$ gst-launch-1.0 -v v4l2src device=/dev/video<b>0</b> ! video/x-raw,framerate=30/1,width=1280,height=720 ! xvimagesink


Hey WiSi-Testpilot, would you be able to share your code for loading video streams from USB into a program? Or the documentation/tutorial you followed to get your nano setup like it is. I’ve spent all afternoon searching online and didn’t find a single thing. Everyone else is using CSI cams and/or just 1 USB cam. Thanks in advance!

Hi,
are you looking for Gstremer code or opencv?
This is a simple opencv example.

import cv2
######choose source
cam1 = cv2.VideoCapture(1)
cam1.set(3,1280)
cam1.set(4,720)
while cam1.isOpened():
   ret1, frame1 = cam1.read()
   cv2.imshow("video1", frame1)
   key = cv2.waitKey(1) & 0xff
   if key == 27:
       break

This is the gstreamer code for the attached image (if I remember correctly)
The cameras are a thermalcamera and a Gopro. Alpha is the transparency. Nv… are Nvidia signal processor plugins.
With nvvidconv you can cropp (nvvidconv top=180 left=320 bottom=900 right=1600)

 gst-launch-1.0 nvcompositor name=mix sink_1::xpos=320 sink_1::ypos=132 \
 sink_1::width=640 sink_1::height=500  sink_1::alpha=0.5 ! nv3dsink \
 \
 \
 v4l2src device=/dev/video1 ! video/x-raw, framerate=30/1, width=1920, height=1080 ! \
  nvvidconv top=180 left=320 bottom=900 right=1600 ! alpha alpha=1 ! nvvidconv ! mix.sink_2 \
 \
v4l2src device=/dev/video0 ! video/x-raw, framerate=30/1, width=640, height=480  ! \
 alpha alpha=1 ! nvvidconv top=32 left=112 bottom=450 right=538 ! mix.sink_1 \
 \

Best regards,
Wilhelm

Thanks a lot for the reply Wilhelm. I am using OpenCV and was able to get both of the streams to write at the same time using multithreading, but they max out at ~60fps @ 640*360. Now my new problem is to find a way to increase the fps even more so the video files are more in the neighborhood of 100-120fps.

If you’re interested in using multithreading to increase performance in your program, I could help share some code with you.

More than 2 USB cameras of any kind seem to be problematic for Jetson Nano. I have tried a variety of cameras, it is simply difficult to make it work.

See my experiences here Jetson Nano - impossible to use three USB cams (seemingly) · Issue #892 · dusty-nv/jetson-inference · GitHub and here Three cameras on Jetson Nano

1 Like