Hello, I'm trying to add AEC from libspeexdsp to libavfilter.Target use case: two Android smartphones recording audio, transmitting it with RTP to some processor, which cancels echo, adds a delay to sync with another video stream, mixes with music and outputs to a stereo system.
First line of the log file attached shows the commandline I use for testing. What the filtergraph means: grab mono from USB webcam, pass it as 'record' to AEC, loopback 'cleaned' output with a frame delay as 'playback' for AEC, build a stereo output from a 'cleaned' output and a channel of silence. OFFTOPIC: Had to use ALSA directly because pulse demuxer has some weird delay problem (https://bbs.archlinux.org/viewtopic.php?id=239893).
So far AEC already does something useful because positive self-amplification (or what's the term for this?) starts on a [slightly] larger volume then without this filter. ☺ Still, it doesn't remove the effect completely. I suspect, that it may be related to warnings
[alsa @ 0x56554d388bc0] ALSA buffer xrunand FF_FILTER_FORWARD_STATUS_BACK_ALL dropping all queued frames when output isn't ready. How do you think, is it true?
I've also explored possibility of adding webrtc-audio-processing's AEC, but for that I'd need to build a C/C++ wrapper. Of which I haven't found any example in FFmpeg's code. People out there say that it's better than libspeexdsp's. Plus Xiph seems to be very insisting on 'one-quartz recording & playback', while my use case is definitely nothing like this. What do you think about this?
Any suggestions are welcome. Arseniy.
0001-AEC-filter-from-Speex.patch
Description: Binary data
speexaec.log
Description: Binary data
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel