AEC tests. Part 2.
We’ve spent some time testing Speex AEC wrapped in SWC through Alchemy and finally have few points about that:
- Speex AEC is working well, but in Flash it’s hard to use it, because of async nature of all SampleDataEvent calls. Although in few tests we saw it working, in real life it won’t work because of big latency and variable time between SampleDataEvent calls.
- New flash player 10/10.1 audio features - playing audio samples and accessing audio samples from microphone will work only for non-realtime applications
- Now it’s impossible to get audio data from RTMP audio stream and put it back to RTMP audio stream after it’s changed (applying AEC filters)
So even having access to samples on AS level it’s impossible to implement client-side AEC for Flash now. There are 2 options: wait until Adobe adds AEC to flash player itself (best solution, but unknown feature release date: Jobs is right about Adobe, they are lazy), implement server-side AEC (very complicated solution, won’t work for new flash P2P capabilities).
Tags:10.1, AEC, acoustic echo cancellation, flash, player, sample
Save to Browser Favorites
BlogMarks
Blogsvine
Friendsite
Email This to a Friend
If you like this then please subscribe to the ![[Email]](http://blog.flaphone.com/wp-content/plugins/bookmarkify/email.gif)
2010-03-259.55 pm at
great research. to bad your results are so disappointing. let’s see if adobe will finally bring AEC in flash player 10.2…
2010-03-295.36 am at
Sounds it is a bad news, anyway thanks for your research for AEC.
New flash player 10/10.1 audio features - playing audio samples and accessing audio samples from microphone will work only for non-realtime applications
—Do you mean if I use RTMP to transfer audio data then I can NOT get the audio samples from soundcard and microphone ?
2010-03-299.21 am at
Yes, you neither can get samples from RTMP audio stream, nor can put samples from microphone to RTMP audio stream. You can only pass it as RTMP data, but this is handled by Flash Player in other way and produces additional problems for realtime.
2010-04-0212.04 pm at
great research. to bad your results are so disappointing.
2010-04-065.23 pm at
Duh! thanks for wasting my time
2010-04-146.08 am at
Thanks for the research…
Currently we are trying another approach, the main idea is to create virtual microphone driver, which is written using c++ and privides Speex AEC, and the flash application will always try to use this virtual microhpone first. The down side is that user has to install another plugin and it’s not cross platform. Will let everyone know if this approach success when the result comes.
Anyway, the best solution still is adobe provide AEC inside flash player, after all, it’s their responsibility, so everyone please keep voting for the AEC feature.
2010-05-081.34 am at
hola
2010-08-0910.32 pm at
oh man, I can not tell you how much of a bummer it is that AEC isn’t really possible without Adobe getting on the stick. Adobe, if you are listening, you should be able to hear the clock ticking of some other tech (HTML5, java, desktop) coming to eat your lunch. You are honestly on the verge of losing an entire generation of coders who are trying to build usable p2p video communication systems in the browser. PLEASE don’t blow it, make AEC possible asap, like NOW.