• Hardware Platform : Jetson Nano 4GB
• DeepStream Version: 5.1
• JetPack Version: 4.5.1
• TensorRT:7.1.3
• Issue Type: bugs
gst-launch-1.0 have error of SIGSEGV, when using 2 usb cameras.
This is pipeline.
$ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! \
'image/jpeg, width=1472, height=736, framerate=30/1' ! \
nvv4l2decoder mjpeg=1 ! \
nvvideoconvert ! \
m.sink_0 v4l2src device=/dev/video1 io-mode=2 ! \
'image/jpeg, width=1472, height=736, framerate=30/1' ! \
nvv4l2decoder mjpeg=1 ! \
nvvideoconvert ! \
m.sink_1 nvstreammux name=m width=1472 height=736 batch-size=2 num-surfaces-per-frame=2 ! \
nvmultistreamtiler rows=2 columns=1 width=1472 height=1472 ! \
nvvideoconvert ! \
nvegltransform ! \
nveglglessink
This is result, Caught SIGSEGV
Setting pipeline to PAUSED ...
Using winsys: x11
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Caught SIGSEGV
Check devices.
$ v4l2-ctl --list-devices
Insta360 Air (usb-70090000.xusb-2.3):
/dev/video1
Insta360 Air (usb-70090000.xusb-2.4):
/dev/video0
Check formats.
$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : Motion-JPEG
Size: Discrete 1472x736
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2176x1088
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 3008x1504
Interval: Discrete 0.033s (30.000 fps)
Index : 1
Type : Video Capture
Pixel Format: 'H264' (compressed)
Name : H.264
Size: Discrete 1920x960
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Size: Discrete 2560x1280
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
I can’t successfully load two USB cameras with gst-launch-1.0, is there any way to fix this?
Please do not set “num-surfaces-per-frame” with nvstreammux, it is for special camera only, and it does not support multiple streams.
If gst-launch-1.0 use H264, same errors.
$ gst-launch-1.0 v4l2src device=/dev/video0 ! \
'video/x-h264, width=1920, height=960, framerate=30/1' ! \
nvv4l2decoder ! \
m.sink_0 \
nvstreammux name=m batch-size=2 width=1920 height=1080 ! \
nvmultistreamtiler rows=1 columns=2 width=1280 height=720 ! \
nvvideoconvert ! \
nvdsosd ! \
nvegltransform ! \
nveglglessink v4l2src device=/dev/video1 ! \
'video/x-h264, width=1920, height=960, framerate=30/1' ! \
nvv4l2decoder ! \
m.sink_1
this is result.
Setting pipeline to PAUSED ...
Using winsys: x11
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Caught SIGSEGV
I updated my pipeline
$ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! \
'image/jpeg, width=1472, height=736, framerate=30/1' ! \
nvv4l2decoder mjpeg=1 ! \
nvvideoconvert ! \
m.sink_0 \
v4l2src device=/dev/video1 io-mode=2 ! \
'image/jpeg, width=1472, height=736, framerate=30/1' ! \
nvv4l2decoder mjpeg=1 ! \
nvvideoconvert ! \
m.sink_1 \
nvstreammux name=m width=1472 height=736 batch-size=2 ! \
nvmultistreamtiler rows=2 columns=1 width=1472 height=1472 ! \
nvvideoconvert ! \
nvegltransform ! \
nveglglessink
But I had same errors.
Setting pipeline to PAUSED ...
Using winsys: x11
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Caught SIGSEGV
#0 0x0000007f9a0fad5c in waitpid ()
#1 0x0000007f9a1362a0 in g_on_error_stack_trace ()
#2 0x0000005586abcc3c in ?? ()
#3 0x0000000000008600 in ?? ()
The pipeline of not using nvv4l2decoder.
$ gst-launch-1.0 v4l2src device="/dev/video0" ! \
'image/jpeg, width=1472, height=736, framerate=30/1' !\
jpegdec ! \
nvvideoconvert ! \
'video/x-raw(memory:NVMM)' ! \
m.sink_0 \
nvstreammux name=m batch-size=2 width=1472 height=736 ! \
nvmultistreamtiler rows=1 columns=2 width=1472 height=1472 ! \
nvvideoconvert ! \
nvdsosd ! \
nvegltransform ! \
nveglglessink sync=0 v4l2src device="/dev/video1" ! \
jpegdec ! \
nvvideoconvert ! \
'video/x-raw(memory:NVMM)' ! \
m.sink_1
This pipeline run correctly.