webrtcdsp and webrtcechoprobe on Windows

Attila kocsisa01 at gmail.com
Wed Jun 17 19:16:36 UTC 2020


I've been trying to create a pipeline for a voice chat application and would
like to include echo cancellation.

Since the example local loop pipeline does not work on Windows 10 (at least
not on the computers I tried), I came up with this:

wasapisrc low-latency=true ! queue max-size-time=400000000 ! audioconvert !
audio/x-raw, format=S16LE ! webrtcdsp ! webrtcechoprobe ! audioconvert !

This seems to work but it is very fragile. Depending on the PC, I have to
vary to queue size otherwise it will either not do any cancellation or if
the queue is too small, it will not produce any sound at all. What can I do
to fix that (I know that this is a test loop only, but I'm hoping that
understanding the problem here will help me with my actual problem).

For my actual pipeline, I have not been able to make echo-cancellation work
at all - the sound goes through and I get a very strong echo that does not
die down at all. 

  wasapisrc low-latency=true ! queue max-size-time=400000000 ! audioconvert
! audio/x-raw, format=S16LE ! webrtcdsp^
    ! opusenc audio-type=2048 bitrate=24000 inband-fec=true
packet-loss-percentage=5 ! rtpopuspay ^
    ! udpsink host=$FARENDIP port=7480 async=FALSE ^
  udpsrc port=7480 caps="application/x-rtp, ssrc=(uint)1537893241,
payload=(int)96, channels=1, clock-rate=48000" ^
    ! rtpjitterbuffer latency=10 ! rtpopusdepay ! opusdec plc=true
use-inband-fec=true ! webrtcechoprobe ^
    ! audioconvert ! autoaudiosink

Any ideas/help would be appreciated.


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

More information about the gstreamer-devel mailing list