Save independent files for two different CSI inputs

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Jetson
• DeepStream Version 5
• JetPack Version (valid for Jetson only) 4.4
• TensorRT Version 7
• NVIDIA GPU Driver Version (valid for GPU only) JetPack default

Hi,

I am trying to record the video from two separate CSI cameras to two different files. I have followed the recommended configuration provided in Pipeline to send multiple sources to multiple sinks?.

However I get the message below. Dom you know what can be the issue?

(deepstream-app:14940): GStreamer-CRITICAL **: 16:27:25.463: gst_element_get_static_pad: assertion ‘GST_IS_ELEMENT (element)’ failed
Segmentation fault (core dumped)

Best regards,
Alberto

The configuration you got is for local file source. How could you use it as CSI camera source case? Can you provide your own config file? What will happen when you run the following command line(please set correct sensor id)?
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1’ ! nvoverlaysink -e

Hi,

Sorry I did not mention that I adapted it to two CSI input using a previous one that worked but for tiled display and only one sink.

I copy below the configuration file I use (and fails) and the configuration I use for tiiled display and one output(it works)

Configuration file 2 CSI input-2 Output files
[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=0
rows=2
columns=1
width=640
height=720
gpu-id=0
#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
#(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
nvbuf-memory-type=0

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=5
camera-width=1280
camera-height=720
#camera-width=608
#camera-height=608
camera-fps-n=30
camera-fps-d=1
camera-v4l2-dev-node=0
camera-csi-sensor-id=0

[source1]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=5
camera-width=1280
camera-height=720
#camera-width=608
#camera-height=608
camera-fps-n=30
camera-fps-d=1
camera-v4l2-dev-node=0
camera-csi-sensor-id=1

[sink0]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
codec=1
sync=0
bitrate=2000000
output-file=/grabit/videos/fichero_grabacion_cam0.mp4
source-id=0

[sink1]
enable=1
type=3
source-id=1
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
codec=1
sync=0
bitrate=2000000
output-file=/grabit/videos/fichero_grabacion_cam1.mp4

[osd]
enable=0
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Serif
show-clock=1
clock-x-offset=80
clock-y-offset=80
clock-text-size=16
clock-color=1;0;1;0
nvbuf-memory-type=0

[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=1
batch-size=2
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000

Set muxer output width and height

width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0

config-file property is mandatory for any gie section.

Other properties are optional and if set will override the properties set in

the infer config file.

[primary-gie]
enable=0
gpu-id=0
model-engine-file=…/…/models/Primary_Detector_Nano/resnet10.caffemodel_b8_fp16.engine
batch-size=2
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=4
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_nano.txt

[tracker]
enable=0
tracker-width=480
tracker-height=272
#ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_iou.so
ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_klt.so
#ll-config-file required for IOU only
#ll-config-file=iou_config.txt
gpu-id=0

[tests]
file-loop=0

Configuration file 2 CSI input-1 Output file

perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=1
rows=1
columns=1
width=1280
height=720
gpu-id=0
#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
#(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
nvbuf-memory-type=0

[source0]
enable=0
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=3
num-sources=1
gpu-id=0

(0): memtype_device - Memory type Device

(1): memtype_pinned - Memory type Host Pinned

(2): memtype_unified - Memory type Unified

cudadec-memtype=0
uri=file:/opt/nvidia/deepstream/deepstream-5.0/sources/objectDetector_Yolo/videos_input/video_compr_nitido1.mkv

[source1]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=5
camera-width=1280
camera-height=720
#camera-width=608
#camera-height=608
camera-fps-n=30
camera-fps-d=1
camera-v4l2-dev-node=0
camera-csi-sensor-id=0

[source2]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=5
camera-width=1280
camera-height=720
#camera-width=608
#camera-height=608
camera-fps-n=30
camera-fps-d=1
camera-v4l2-dev-node=0
camera-csi-sensor-id=1

[sink0]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0

[sink1]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
codec=1
sync=0
bitrate=2000000
output-file=/grabit/videos/out_prueba_2CSI.mp4
source-id=0

[sink0]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0

[osd]
enable=1
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Serif
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
nvbuf-memory-type=0

[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=1
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000

Set muxer output width and height

width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0

config-file property is mandatory for any gie section.

Other properties are optional and if set will override the properties set in

the infer config file.

[primary-gie]
enable=0
gpu-id=0
#model-engine-file=model_b1_gpu0_int8.engine
#model-engine-file=model_b1_gpu0_fp16.engine
labelfile-path=labels-latas4.txt
batch-size=1
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=2
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_yoloV3.txt

[tracker]
enable=0
tracker-width=640
tracker-height=384
ll-lib-file=/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_mot_klt.so

[tests]
file-loop=0

Right now my second CSI second socket just broke, so I will try to fix it and come back with the “gst-launch xxx” answer

Best regards,
Alberto

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Since your camera is 1280x720 resolution, please try gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)30/1’ ! nvoverlaysink -e

And what will happen when you replace the source with local video files in the first configuration file?