Gstreamer software decode with nvstreammux data stream error

Please provide complete information as applicable to your setup.

**• AGX ( 32G )
**• DS5.1
**• Jetpack 4.5.1
**• TensorRT 7.1.3
**• Nvidia L4T 32.5.1

hi , I would like to construct following pipeline ,using avdec_h264 decoder

Test with only decoder , working in the AGX
gst-launch-1.0 filesrc location=/root/videos_samples/cows_1080p.mp4 ! queue ! qtdemux ! video/x-h264 ! h264parse ! avdec_h264 ! queue ! perf print-arm-load=true ! fakesink sync=true

but with combination of inferencing
gst-launch-1.0 filesrc location=/root/videos_samples/cows.mp4 ! queue ! qtdemux ! video/x-h264 ! h264parse ! avdec_h264 ! smuxer.sink_0 nvstreammux name=smuxer width=1920 height=1280 batch-size=1 ! nvinfer config-file-path=/root/deepstream_nvrlow/pgie/config_infer_primary.txt batch-size=1 unique-id=1 ! nvinfer config-file-path=/root/deepstream_nvrlow/sgie1/config_infer_secondary1.txt batch-size=16 unique-id=2 infer-on-gie-id=1 infer-on-class-ids=19 ! perf print-arm-load=true ! fakesink sync=true

ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn’t want to preroll.

Can I use software decoding ( avdec_h264 ) with the nvinfer pipeline ?

Can you have a nvvideoconvert after avdec_h264? Why not use HW video decoder?

can you advice the full pipeline for software decoder with avdec_h264 and nvvideoconvert ? I want to test the software rendering via cpu decoder for this purpose .

I have constructed following pipeline
gst-launch-1.0 filesrc location=/root/videos_samples/cows.mp4 ! queue ! qtdemux ! video/x-h264 ! h264parse ! avdec_h264 ! queue ! nvvideoconvert ! capsfilter caps=‘video/x-raw(memory:NVMM)’ ! smuxer.sink_0 nvstreammux name=smuxer width=1920 height=1280 batch-size=1 ! nvinfer config-file-path=/root/deepstream_nvrlow/pgie/config_infer_primary.txt batch-size=1 unique-id=1 ! nvinfer config-file-path=/root/deepstream_nvrlow/sgie1/config_infer_secondary1.txt batch-size=16 unique-id=2 infer-on-gie-id=1 infer-on-class-ids=19 ! perf print-arm-load=true ! fakesink sync=true

Setting pipeline to PLAYING …
New clock: GstSystemClock
INFO:
perf: perf0; timestamp: 0:11:41.032510687; bps: 12800.000; mean_bps: 12800.000; fps: 28.452; mean_fps: 28.452; cpu: 11;
INFO:
perf: perf0; timestamp: 0:11:42.049063593; bps: 15360.000; mean_bps: 14080.000; fps: 29.511; mean_fps: 28.982; cpu: 11;
INFO:
perf: perf0; timestamp: 0:11:43.079426055; bps: 15360.000; mean_bps: 14506.667; fps: 32.998; mean_fps: 30.321; cpu: 12;
INFO:
perf: perf0; timestamp: 0:11:44.162245754; bps: 15360.000; mean_bps: 14720.000; fps: 28.629; mean_fps: 29.898; cpu: 11;
INFO:
perf: perf0; timestamp: 0:11:45.179470966; bps: 15360.000; mean_bps: 14848.000; fps: 31.458; mean_fps: 30.210; cpu: 11;
INFO:
perf: perf0; timestamp: 0:11:46.209529016; bps: 15360.000; mean_bps: 14933.333; fps: 27.183; mean_fps: 29.705; cpu: 10;

Glad your pipeline works. Thanks for sharing.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.