Hello,
I try to use 4 USB3 camera with Jetson NX. But I cannot get it work with the 4th camera.
The camera are connected with a USB3 hub, and here is the output of lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 5, If 2, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 1: Dev 5, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 5, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 6, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 6, If 2, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 2: Dev 6, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 3: Dev 7, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 3: Dev 7, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 3: Dev 7, If 2, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 4: Dev 8, If 2, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 4: Dev 8, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 4: Dev 8, If 1, Class=Video, Driver=uvcvideo, 5000M
4 camera are same model, here is the output of v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1024x768
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x1024
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1600x1200
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2592x1944
Interval: Discrete 0.040s (25.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1024x768
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x1024
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1600x1200
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 2592x1944
Interval: Discrete 0.040s (25.000 fps)
And here is the command and output of gstreamer:
gst-launch-1.0 v4l2src device=/dev/video0 \
! "video/x-raw,width=(int)640,height=(int)480,framerate=(fraction)60/1,format=(string)YUY2" \
! nvvidconv \
! nvv4l2h265enc insert-sps-pps=true bitrate=800000 \
! rtph265pay pt=96 mtu=1280 config-interval=1 \
! udpsink host=192.168.1.100 port=5000 sync=false
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 8
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
Additional debug info:
gstv4l2src.c(658): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.261292017
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Would you have any advice to solve this problem?
Thank you.
Ambrose