Based on the pipeline in your last comment, using “sync=1”, the cmd still works well.Here is loglog-1205.txt (14.6 KB). can you get the same result?
When I ran the pipeline with fakesink and sync=1, I got the same results as you.
However, when I ran the pipeline with nv3dsink and sync=1, it hung.
fakesink and sync=1
GStreamer log is as follows.
gstreamer.log (2.3 MB)
export USE_NEW_NVSTREAMMUX=yes
gst-launch-1.0 \
v4l2src device=/dev/video0 ! "video/x-raw, width=1280, height=720" ! tee name=t \
t.src_0 ! nvvideoconvert src-crop="0:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_0 \
t.src_1 ! nvvideoconvert src-crop="320:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_1 \
t.src_2 ! nvvideoconvert src-crop="640:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_2 \
t.src_3 ! nvvideoconvert src-crop="960:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_3 \
t.src_4 ! nvvideoconvert src-crop="0:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_4 \
t.src_5 ! nvvideoconvert src-crop="320:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_5 \
t.src_6 ! nvvideoconvert src-crop="640:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_6 \
t.src_7 ! nvvideoconvert src-crop="960:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_7 \
t.src_8 ! nvvideoconvert src-crop="0:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_8 \
t.src_9 ! nvvideoconvert src-crop="320:360:320:18" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_9 \
t.src_10 ! nvvideoconvert src-crop="640:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_10 \
t.src_11 ! nvvideoconvert src-crop="960:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_11 \
t.src_12 ! nvvideoconvert src-crop="0:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_12 \
t.src_13 ! nvvideoconvert src-crop="320:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_13 \
t.src_14 ! nvvideoconvert src-crop="640:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_14 \
t.src_15 ! nvvideoconvert src-crop="960:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_15 \
nvstreammux name=mux batch-size=16 ! \
queue ! nvvideoconvert ! nvinfer config-file-path="/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_infer_primary.txt" model-engine-file="/opt/nvidia/deepstream/deepstream-7.1/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b30_gpu0_int8.engine" ! \
nvtracker tracker-width=1280 tracker-height=720 ll-lib-file="/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so" ! \
nvstreamdemux name=demux \
demux.src_0 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_1 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_2 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_3 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_4 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_5 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_6 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_7 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_8 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_9 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_10 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_11 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_12 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_13 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_14 ! fakesink sync=1 enable-last-sample=0 async=0 \
demux.src_15 ! fakesink sync=1 enable-last-sample=0 async=0
nv3dsink and sync=1
GStreamer log is as follows.
gstreamer.log (3.3 MB)
export USE_NEW_NVSTREAMMUX=yes
gst-launch-1.0 \
v4l2src device=/dev/video0 ! "video/x-raw, width=1280, height=720" ! tee name=t \
t.src_0 ! nvvideoconvert src-crop="0:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_0 \
t.src_1 ! nvvideoconvert src-crop="320:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_1 \
t.src_2 ! nvvideoconvert src-crop="640:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_2 \
t.src_3 ! nvvideoconvert src-crop="960:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_3 \
t.src_4 ! nvvideoconvert src-crop="0:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_4 \
t.src_5 ! nvvideoconvert src-crop="320:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_5 \
t.src_6 ! nvvideoconvert src-crop="640:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_6 \
t.src_7 ! nvvideoconvert src-crop="960:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_7 \
t.src_8 ! nvvideoconvert src-crop="0:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_8 \
t.src_9 ! nvvideoconvert src-crop="320:360:320:18" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_9 \
t.src_10 ! nvvideoconvert src-crop="640:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_10 \
t.src_11 ! nvvideoconvert src-crop="960:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_11 \
t.src_12 ! nvvideoconvert src-crop="0:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_12 \
t.src_13 ! nvvideoconvert src-crop="320:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_13 \
t.src_14 ! nvvideoconvert src-crop="640:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_14 \
t.src_15 ! nvvideoconvert src-crop="960:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_15 \
nvstreammux name=mux batch-size=16 ! \
queue ! nvvideoconvert ! nvinfer config-file-path="/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_infer_primary.txt" model-engine-file="/opt/nvidia/deepstream/deepstream-7.1/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b30_gpu0_int8.engine" ! \
nvtracker tracker-width=1280 tracker-height=720 ll-lib-file="/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so" ! \
nvstreamdemux name=demux \
demux.src_0 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_1 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_2 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_3 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_4 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_5 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_6 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_7 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_8 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_9 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_10 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_11 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_12 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_13 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_14 ! nv3dsink sync=1 enable-last-sample=0 async=0 \
demux.src_15 ! nv3dsink sync=1 enable-last-sample=0 async=0
can the original hang issue be reproduced every time? if so, could you provide the detailed log 1.log after running the following cmd. you can compress the log wth zip.
Yes. The hang issue reproduces every time.
I executed the command and retrieved the log.
The following is the log.
1.log.zip (22.1 MB)
to rule out the source’s issue, can this hang issue be reproduced with test soruce? Below is a videotestsrc sample.
I used videotestsrc, and the hang issue can be reproduced.
GStreamer log is as follows.
gstreamer.log (168.8 KB)
export USE_NEW_NVSTREAMMUX=yes
gst-launch-1.0 -v \
videotestsrc ! "video/x-raw, format=RGBA, width=1280, height=720, framerate=5/1" ! tee name=t \
t.src_0 ! nvvideoconvert src-crop="0:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_0 \
t.src_1 ! nvvideoconvert src-crop="320:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_1 \
t.src_2 ! nvvideoconvert src-crop="640:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_2 \
t.src_3 ! nvvideoconvert src-crop="960:0:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_3 \
t.src_4 ! nvvideoconvert src-crop="0:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_4 \
t.src_5 ! nvvideoconvert src-crop="320:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_5 \
t.src_6 ! nvvideoconvert src-crop="640:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_6 \
t.src_7 ! nvvideoconvert src-crop="960:180:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_7 \
t.src_8 ! nvvideoconvert src-crop="0:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_8 \
t.src_9 ! nvvideoconvert src-crop="320:360:320:18" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_9 \
t.src_10 ! nvvideoconvert src-crop="640:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_10 \
t.src_11 ! nvvideoconvert src-crop="960:360:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_11 \
t.src_12 ! nvvideoconvert src-crop="0:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_12 \
t.src_13 ! nvvideoconvert src-crop="320:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_13 \
t.src_14 ! nvvideoconvert src-crop="640:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_14 \
t.src_15 ! nvvideoconvert src-crop="960:540:320:180" copy-hw=2 ! "video/x-raw(memory:NVMM), format=NV12, width=320, height=180" ! nvvideoconvert ! "video/x-raw(memory:NVMM), width=1920, height=1080" ! mux.sink_15 \
nvstreammux name=mux batch-size=16 ! \
queue ! nvvideoconvert ! nvinfer config-file-path="/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_infer_primary.txt" model-engine-file="/opt/nvidia/deepstream/deepstream-7.1/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b30_gpu0_int8.engine" ! \
nvtracker tracker-width=1280 tracker-height=720 ll-lib-file="/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so" ! \
tee ! \
nvstreamdemux name=demux \
demux.src_0 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_1 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_2 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_3 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_4 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_5 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_6 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_7 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_8 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_9 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_10 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_11 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_12 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_13 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_14 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0 \
demux.src_15 ! queue ! tee ! queue ! nv3dsink async=0 enable-last-sample=0