tcpserversink latency/buffering

Lusine lusinehayrapetyan1992 at gmail.com
Fri Feb 5 17:41:03 UTC 2021


Hi Folks,

I'm trying to get ultra low video-streaming latency on the local machine.
With udpsink & udpsrc elements the latency is less than 20ms. With
tcpserversink and  tcpclientsrc the latency is more than 300ms.
I have a c++ application where I'm able to see the latecy.
My pipelines look like this:

# udp streamer & receiver on local machine
gst-launch-1.0 -v videotestsrc is-live=true ! x264enc tune=zerolatency
bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1
port=5000
gst-launch-1.0 -v udpsrc port=5000 caps = "application/x-rtp,
media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264,
payload=(int)96" ! rtph264depay ! h264parse  ! avdec_h264 ! videoconvert !
autovideosink

# tcp streamer and receiver on local machine
gst-launch-1.0 -v videotestsrc is-live=true ! x264enc tune=zerolatency
bitrate=500 speed-preset=superfast ! tcpserversink host=127.0.0.1 port=5000
gst-launch-1.0 -v tcpclientsrc port=5000  ! h264parse  ! avdec_h264 !
videoconvert ! autovideosink

How I can get smaller latency with tcp. It seems that tcpserversink has
local buffering which causes the latency. Is it possible to turn it off?
I've tried:
unit-format=buffers units-max=1 buffers-max=1 but it didn't help. Any other
clue why we see the latency on the local machine?



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list