Multiple deepstream-app with udp sink in same network

• Hardware Platform: JetsonNano
• DeepStream Version: 5.0
• JetPack Version (valid for Jetson only): R32 4.3
• TensorRT Version: 7.1.3 with CUDA 10.2

Hi. In same network, I use multiple JetsonNano boards with deepstream-app to stream out video via RTSP server.
The config for sink is same for all devices.

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File 4=Rtsp
type=4
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0
# Codec 1=H264, 2=H265, 3=MPEG4
codec=1
bitrate=9000000
udp-port=5400
rtsp-port=8554
iframeinterval=30
profile=4

The stream works fine on individual JetsonNano. But when I run multiple Jetson boards at the same time, and use VLC to view the stream from 1 Jetson board, I saw the mixing of output stream.

In deepstream_sink_bin.c source code, I saw that the address 224.224.255.255 is used for UDP host, and the port is passed via config file. If I use different UDP port for each Jetson board, the output stream isn’t mixed.

My question is, beside changing the UDP port number in config file, is there any ways to solve this conflict with the same sink config? Auto negotiate the host address? Random UDP port number?

Thank you so much.

One stream will only transferred over one host+port UDP connection. So you need to allocate different host+port for different streams. Current deepstream-app sample codes only support config port number with config file. If you want to change host address, you may need to modify the source codes.

Thank you. I remove the host property from udpsink setting, and it works.
The deepstream-app specified 224.224.255.255 IP address, so the port & IP are duplicated on the same network. By removing host property, udpsink will use localhost IP address. So the collision is gone.

1 Like