Using webrtcdsp echo cancellation on Android

Nicolas Dufresne nicolas at ndufresne.ca
Tue Oct 2 12:08:43 UTC 2018


Le mar. 2 oct. 2018 04 h 42, Niels Avonds <niels.avonds at gmail.com> a écrit :

> Hi everyone,
>
> I'm working on a project where we're using GStreamer to build an
> Android WebRTC application. Currently, we're dealing with echo
> problems. What is the recommended way to deal with these issues when
> using GStreamer under Android?
>
> I have tried using the webrtcdsp and webrtcechoprobe elements, but
> that hasn't been successful. I'm able to make those elements work on
> my pc, but not on Android. I've tried the following simple pipeline
> (adjusted for Android from the example pipeline given in the webrtcdsp
> documentation):
>
> openslessrc ! webrtcdsp ! webrtcechoprobe ! openslessink sync=true
>
> This doesn't cancel the echo, while a similar pipeline on the pc is
> working perfectly:
>
> pulsesrc ! webrtcdsp ! webrtcechoprobe ! pulsesink sync=true
>
> I've noticed that the buffer length for opensles is 20ms by default.
> Could this be the issue?
>

20ms should not be an issue. Webrtcdsp will cut it in half. Most of the
time it is the latency that is too high, or wrongly reported. Reducing the
latency will reduce the error margin. Try refusing buffer-time property on
openslessink to some small multiple of "latency" property. So let say you
chose 20ms latency, then try buffer-time at 60 or 80ms. If I remember, the
total pipeline latency should not exceed 200ms.


> Thanks in advance!
> Best regards,
> Niels Avonds
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20181002/d2437ed4/attachment.html>


More information about the gstreamer-devel mailing list