deepstream-app is opensource. create_source_bin in \opt\nvidia\deepstream\deepstream\sources\apps\apps-common\src\deepstream_source_bin.c does not support udp source. but you can modify the code to customize. please refer to this topic for how to input udp in Gstreamer.
please simplify the configurations first, for example, disabling pgie, sige, osd temporarily, then the compare the two pipeline graph by referring to this faq. if still can’t work, please share the two graphs.
I tested on DS6.3. after setting rtp://0.0.0.0:9024, deepstream-app can’t work. here is the log.ds6.3-failed.txt (9.5 KB). Noticing the app works on your DS6.3. could you share the running log and negotiated graph ds-app-playing on DS6.3? Thanks!
Here is the log output, which suggest uri might be wrong.
check my configurations here
Code: main → parse_config_file → parse_source → CONFIG_GROUP_SOURCE_URI
** ERROR: <main:716>: Failed to set pipeline to PAUSED
Quitting
ERROR from src_elem: No URI handler implemented for "rtp".
Debug info: gsturidecodebin.c(1408): gen_source_element (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin0/GstURIDecodeBin:src_elem
App run failed
We have tested on Jetpack 5.1.4/L4T36.4/Jetson Orin Nano 8GB. It works fine with rtp uri.
We are debuging the code, which deepstream-app has changed to jetson-yolo, you can find there is no kind of ERROR from src_elem: No URI handler implemented for "rtp". error in DS7.1.
$ ./jetson-yolo -c source_config_yolov8n.txt
txt -> source_config_yolov8n.txt
CONFIG_GROUP_SOURCE_URI -> rtp://0.0.0.0:5600
parse_source -> 0
multi_source_config -> 1
Setting min object dimensions as 16x16 instead of 1x1 to support VIC compute mode.
0:00:00.288660833 19208 0xaaaace926a60 INFO nvinfer gstnvinfer.cpp:684:gst_nvinfer_logger:<primary_gie> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:2092> [UID = 1]: deserialized trt engine from :/home/daniel/Work/jetson-fpv/utils/dsyolo/model_b1_gpu0_fp16.engine
Implicit layer support has been deprecated
INFO: [Implicit Engine Info]: layers num: 0
0:00:00.288785666 19208 0xaaaace926a60 INFO nvinfer gstnvinfer.cpp:684:gst_nvinfer_logger:<primary_gie> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2195> [UID = 1]: Use deserialized engine model: /home/daniel/Work/jetson-fpv/utils/dsyolo/model_b1_gpu0_fp16.engine
0:00:00.304711265 19208 0xaaaace926a60 INFO nvinfer gstnvinfer_impl.cpp:343:notifyLoadModelStatus:<primary_gie> [UID 1]: Load new model:/home/daniel/Work/jetson-fpv/utils/dsyolo/yolov8n_infer_primary.txt sucessfully
Runtime commands:
h: Print this help
q: Quit
p: Pause
r: Resume
NOTE: To expand a source in the 2D tiled display and view object details, left-click on the source.
To go back to the tiled display, right-click anywhere on the window.
** INFO: <bus_callback:291>: Pipeline ready
** INFO: <bus_callback:277>: Pipeline running
q
Quitting
App run successful
you can execute “export GST_DEBUG=3” to get more logs. from my side, if using uri=rtp://0.0.0.0:9024, there will be new error “_rtp_udpsrc0> Failed to resolve ▒m”. please refer to the whole log log-0207.txt (20.3 KB). if using gstreamer on Jetpack 5.1.4 works, you can migrate to the same gtreamer version by referring to this link.
You might met some streaming source issue, try this to simulate $ video-viewer file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4 rtp://@:5600 --input-loop=-1 --headless
Here is my log for DS7.1 – black screen (of course)
from source2_1080p_dec_infer-resnet_demux_int8_modify.txt you shared, [source0] is using the local file, [source1] is disabled. so this test did not test rtp source.
Oh yes, then it’s right. You can disable source0 and enable souce1. That’s what it is I have described above.
daniel@daniel-nvidia:/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app$ deepstream-app -c source2_1080p_dec_infer -resnet_demux_int8_modify.txt
** INFO: <create_encode_file_bin:364>: Could not create HW encoder. Falling back to SW encoder
Setting min object dimensions as 16x16 instead of 1x1 to support VIC compute mode.
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performa nce or even cause errors.
0:00:00.399094028 3511 0xaaab01823a00 INFO nvinfer gstnvinfer.cpp:684:gst_nvinfer_logger:<primary_gie> NvDsInfe rContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:2092> [UID = 1]: dese rialized trt engine from :/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/../../models/Primary_Detector/res net18_trafficcamnet_pruned.onnx_b2_gpu0_int8.engine
INFO: [FullDims Engine Info]: layers num: 3
0 INPUT kFLOAT input_1:0 3x544x960 min: 1x3x544x960 opt: 2x3x544x960 Max: 2x3x544x960
1 OUTPUT kFLOAT output_cov/Sigmoid:0 4x34x60 min: 0 opt: 0 Max: 0
2 OUTPUT kFLOAT output_bbox/BiasAdd:0 16x34x60 min: 0 opt: 0 Max: 0
0:00:00.399289324 3511 0xaaab01823a00 INFO nvinfer gstnvinfer.cpp:684:gst_nvinfer_logger:<primary_gie> NvDsInfe rContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2195> [UID = 1]: Use deser ialized engine model: /opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/../../models/Primary_Detector/resnet1 8_trafficcamnet_pruned.onnx_b2_gpu0_int8.engine
0:00:00.424121370 3511 0xaaab01823a00 INFO nvinfer gstnvinfer_impl.cpp:343:notifyLoadModelStatus:<primary_gie> [UID 1]: Load new model:/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_infer_primary.txt sucessfull y
Runtime commands:
h: Print this help
q: Quit
p: Pause
r: Resume
** INFO: <bus_callback:291>: Pipeline ready
** INFO: <bus_callback:277>: Pipeline running
**PERF: FPS 0 (Avg)
**PERF: 0.00 (0.00)
**PERF: 0.00 (0.00)
^C** ERROR: <_intr_handler:131>: User Interrupted..
Quitting
App run successful
testing on DS7.1 with your source2_1080p_dec_infer-resnet_demux_int8_modify.txt, I got the same result with yours. that is fps is 0.log-0208.txt (2.1 KB)
As I mentioned, deepstream-app uses uridecodebin if source type=3. the first cmd does not work. the second cmd works. it is a the issue of uridecodebin receiving rtp, not a deepsteram bug.
here are some solutions.
2.1 As you mentioned, uridecodebin receiving rtp works on DS6.3, but from my test ds6.3-failed.txt, it still can’t wok on DS6.3. so please provide a negotiated pipeline graph ds-app-playing for further anlysis. the 0.00.00.320092359-ds-app-playing.png you shared is before negotiation, not after negotiation.
2.2 since the second cmd above works, you can modify deepstream-app to customize.