Problem using audiofx in a live/webrtc context

Guillaume Denis gdenispro at
Tue May 25 16:06:39 UTC 2021


I've successfully used audiofx elements to process files, for instance 
with audioecho:

gst-launch-1.0 filesrc location=in.wav ! decodebin ! audioconvert ! 
audio/x-raw, channels=1 ! audioecho delay=500000000 intensity=0.6 
feedback=0.4 ! wavenc ! filesink location=out.wav

But within a webrtc initiated stream, the processed sound is polluted 
with small noises or silences. If I use a tee to record the result:

appsrc format=time is-live=true do-timestamp=true name=src !
application/x-rtp,payload=111,encoding-name=OPUS !
rtpopusdepay !
decodebin !
audioconvert !
audioecho delay=500000000 intensity=0.6 feedback=0.4 !
audioconvert !
opusenc !
tee name=teeout !
queue max-size-buffers=0 max-size-bytes=0 max-size-time=5000000000 !
oggmux ! filesink location=logs/audio-out.ogg
teeout. !
queue max-size-buffers=0 max-size-bytes=0 !
rtpopuspay !
appsink name=sink qos=true

-> Interestingly the recorded file is free from defects, while the live 
heard output is polluted (same result without the tee and queues).

I have tried several audiofx elements with the same result, but when I 
use the pitch plugin, the problem does not occur.

Is there anything to consider in this pipeline to have audiofx work?

Ultimately, my goal is to reuse a simple working GstAudioFilter source 
code and modify it to create a different effect.


More information about the gstreamer-devel mailing list