Cannot change source latency (source::latency) for uridecodebin3 (while uridecodebin works) via gst-launch-1.0
OS: Debian 11 and Sid with GStreamer 1.18.4 and 1.20.3
If I use pipeline like this:
gst-launch-1.0 uridecodebin "uri=rtsp://u:p@192.168.1.14:554/av0_0" ! glimagesink
I get about ~2s video latency.
But, with help of post https://gstreamer-devel.narkive.com/34gdoXTs/setting-module-properties-for-a-bin-through-cli, I've discovered that you CAN change latency parameter (for internal rtspsrc?):
gst-launch-1.0 uridecodebin source::latency=100 "uri=rtsp://u:p@192.168.1.14:554/av0_0" ! glimagesink
Resulting video latency is amazingly good, almost completely real-time, which is important for my use case.
Though it "feels" as uridecodebin
does not utilize rtpjitterbuffer
? Video from IP cameras can be rather "choppy".
I've tried to use uridecodebin3
with hope that it will be better, but it's latency is huge, and same source::latency=100
trick does not seem to work:
gst-launch-1.0 uridecodebin3 source::latency=100 "uri=rtsp://u:p@192.168.1.14:554/av0_0" ! glimagesink
I get same ~2s latency as with original uridecodebin
without source::latency=100
set.
Alternative is to use almost-completely-manual pipeline, which produces very low latency, and choppy-less-ness :) but with disadvantage that I have to specify h265/h265/mjpeg/... codecs for different streams manually, while uridecodebin[3] would automate this:
gst-launch-1.0 rtspsrc "location=rtsp://u:p@192.168.1.14:554/av0_0" latency=100 ! rtpjitterbuffer latency=100 ! rtph264depay ! h264parse ! decodebin3 ! glimagesink