Flash Player 10.1 and VoIP

Friday, April 16th, 2010

Adding UDP-based RTMFP protocol and Speex audio codec in Flash Player 10 were right moves from Adobe and it allowed us to notice that FP was about to become a good VoIP client. But even with RTMFP capabilities Flash Player couldn’t connect two clients using P2P behind the specific NATs/firewalls, so fallback to server’s relay was required in such cases. With new features of Flash Player 10.1 (RTMFP groups) everything changes, now peers from RTMFP group will help you to do P2P media transfer if direct P2P connection between some 2 peers from the group isn’t possible. If you think a little it will become obvious that FP can be used to create P2P-networks like Skype’s one, root servers will only deal with signaling and will help clients to join groups with peers that can help in media delivery. It can be used in many services. Now we need Acoustic Echo Cancellation support and more advanced video codec for encoding video from webcam (h264, for example) to create web-based Skype.

Tags:, , , , , ,

AEC tests. Part 2.

Thursday, March 25th, 2010

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:, , , , ,

First successful tests of AEC. Stay tuned.

Monday, March 8th, 2010

Adobe has informed that they are working on AEC support in Flash Player and it will be available later in the next release after 10.1, but we don’t want to wait another few years. In FP 10.1 we got access to microphone samples and playback samples and it makes possible to use some AEC. Although there are a lot of problems (only 44KHz playback mode) and async events firing our first tests showed that it actually works, but still have to solve some minor problems and adjust AEC for better quality. Prepare to have up to 40-50% of CPU load when AEC is working, but for most people AEC is worth it.

Tags:, , , ,