Uses to reduce latency of a pipeline

Nicolas Dufresne nicolas at ndufresne.ca
Wed Jan 30 03:08:31 UTC 2019


Le mercredi 30 janvier 2019 à 00:10 +0100, Jack a écrit :
> Hello Nicolas,
> 
> Le 29/01/2019 à 17:46, Nicolas Dufresne a écrit :
> > Le lundi 28 janvier 2019 à 13:04 +0100, Jack a écrit :
> > > Hello,
> > > 
> > > I would like to know if you have recommandations on how to reduce
> > > latency on a running pipeline using gstwebrtc ?
> > > 
> > > For instance, a pipeline 1 like (using Python) :
> > > 
> > > webrtcbin name=sendrecv bundle-policy=max-bundle
> > 
> > You can configured the jitterbuffer latency using child proxy
> > properties. But default it's 200ms (rtpbin latency property is in ms),
> > this example would be 20ms:
> > 
> >   webrtcbin rtpbin::latency=20
> 
> If you can develop a little bit more your answer or give me a url with
> an example or explanation I will be fine :)
> 
> Why using your solution on the first pipeline, which is working fine,
> will solve my problem on the second pipeline ?
> Thanx.
> ++

It felt you you where asking general question from the subject,
configuring the jitterbuffer latency is a general way to reduce
webrtcbin (or rtpbin) latency.

> 
> Jack
> 
> 
> 
> > > filesrc location=my_stereo_sound.wav ! wavparse ! volume name="vol0"
> > > volume=0.5 ! opusenc frame-size=10 ! rtpopuspay pt=96 !
> > > application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000
> > > ! sendrecv.
> > > 
> > > and a pipeline 2 like (always with Python) :
> > > 
> > > webrtcbin name=sendrecv bundle-policy=max-bundle
> > > filesrc location=my_stereo_sound.wav ! wavparse ! deinterleave name=d
> > > d.src_0 ! queue ! volume name="vol0" volume=0.5 ! i.sink_0 d.src_1 !
> > > queue ! volume name="vol1" volume=0.5 ! i.sink_1 interleave name=i !
> > > audiopanorama ! opusenc frame-size=10 ! rtpopuspay pt=96 !
> > > application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000
> > > ! sendrecv.

In this case, the problem is likely related to having a non-live source
sent to webrtcbin. I'd first ask to give a try with a live source to
confirm (audiotestsrc is-live=1 as an example), then I might elaborate.

> > > 
> > > If I change dynamically the value on "vol0" on the first pipeline (with
> > > set_property()), I can hear the modification 1 second later (for me it
> > > is acceptable). But if I do the same on the pipeline 2, the modification
> > > is heard 2 seconds later ! Huge difference ! It is normal regarding the
> > > "complexity" of the second pipeline (compare to the first) ? What do you
> > > advise to reduce latency on the second pipeline ?
> > > ++
> > > 
> > > Jack
> > > 
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > > 
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list