Improving the reliability of the streams being sent over an IP network

**• Hardware Platform (Jetson / GPU) Jetson Orin nano
**• DeepStream Version 6.3
**• JetPack Version (valid for Jetson only) 5.1.2
Good day, I have successfully processed a stream and sent it though an IP network to another computer. The stream is stable for the most part but sometimes there is a lag or a jitter in the video that is seen on the client side…Here is a snippet of the code that creates the server and factory, as well as showing the code that creates the sink of the pipeline:

        sink = Gst.ElementFactory.make("udpsink", f"udpsink{streamID}")
        sink.set_property('host', '224.224.255.255')
        sink.set_property('port', 5400)
        sink.set_property('async', True)
        sink.set_property('sync', 0)
        pipeline.add(sink)
        queue.link(sink)

        codec='H264'
        updsink_port_num= 5400
        rtsp_port_num=8554    
        server = GstRtspServer.RTSPServer.new()
        server.props.service = "%d" % rtsp_port_num
        server.attach(None)
        factory = GstRtspServer.RTSPMediaFactory.new()
        factory.set_launch( "( udpsrc name=pay0 port=%d buffer-size=212992 caps=\"application/x-rtp, media=video, clock-rate=90000, encoding-name=(string)%s, payload=96 \" )" % (updsink_port_num, codec))        
        factory.set_shared(True)
        server.get_mount_points().add_factory("/ds-test", factory)

Is there a way for me to create a cache that can store some of the stream temporarily to act as a buffer-so that the stream that is received on the client side is much more stable and robust? And if not, is there another way for me to improve the stability of the streams that is received on the client side?

I would also like to know if it is possible to send multiple streams through the IP network. So if I am processing multiple streams in real time, then I can send each of these processed streams through the IP network to multiple other computers…Here is my pipeline structure:
uridecodebin → … → nvstreamdemux → nvstreammux → nvdsosd → nvvideoconvert → capsfilter → nvv4l2h264enc → rtph264pay → udpsink

you can set cache in the client’s player.

please refer to the sample1 and sample2. you can use nvstreamdemux to send each stream to each RTSPserver.

I am using VLC to capture the stream that is sent. I have configured it to capture 2 seconds of video in the cache, but the stream is still not smooth…Are there configuration changes that I can make to the pipeline to ensure that the streams are more stable and smooth?

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.

  1. you can measure the fps of the pipeline. please find perf in deepstream_demux_multi_in_multi_out.py.
  2. if fps is high, please check Gstreamer opensource GstRtspServer to improve the stability of the streams.

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