One of our projects involves video conferencing and we wanted to use WebRTC to easily support a wide variety of platforms.
WebRTC designs a set of 3 HTML5 apis : getUserMedia, RTCDataChannel and RTCPeerConnection.
The first step was to evaluate how well WebRTC was supported on Android (on Nexus 4 to be specific), so we first looked at the main HTML5 browsers available on Google's OS:

  • Firefox 20.0 Beta
  • Chrome 18.0
  • Opera Mobile 12.10
  • Bowser 0.1.4

After searching through the forums it appears that neither Chrome nor Firefox supports WebRTC in their Android versions.
In both cases it's “in progress”, issues can be tracked here and there. mentions Opera, but nothing regarding its Mobile version.
Bowser is supposed to handle WebRTC properly since it was developed by Ericsson for this purpose.

We tried several online demos on Android and on Linux to get a better picture of the current WebRTC support status:

Shiny Demos

These demos were written by the Opera software team as a showcase of Opera's HTML5 support.
The getUserMedia section on the website only tests that, it doesn't test WebRTC itself which also includes RTCDataChannel and RTCPeerConnection APIs.
The Explode demo doesn't work on Firefox Nightly 2013-03-05 but Warholiser does. Let's hope it will be ok with the next stable Firefox release. getUserMedia test

This is also a test that focuses on getUserMedia API. By default it only works with the Linux version of Chrome, not with Firefox or Opera. After modifying the code so that it calls getUserMedia() the same way as it is called in ShinyDemos, the demo was working on all 3 desktop browsers and on Opera Mobile as well.
This test also highlights the fact that Opera only supports Camera access and not microphone access.

Ericsson demo

Ericsson demo doesn't even work with Chrome and Firefox, the 2 leading Desktop WebRTC browsers, which is quite worrying. Ericsson Browser Bowser only supports the H.264 codec and not the VP8 codec that Firefox and Chrome support so it wouldn't be able to communicate with them.
Furthermore, according to the developer comments on the blog the “websockets” (I think it means RTCPeerConnection) is not implemented in the Android version, so running Bowser on Android and IOS wouldn't work either.
The only configuration where the Ericsson browser could work would be with 2 IOS devices and I didn't have the opportunity to test this.

Google AppRTC

This was the key application I wanted to get working since it allows us to do some actual videoconferencing. Unfortunately it only works on Chrome and Firefox Nightly desktop versions.
After looking at the code I noticed the demo was only handling 2 cases : Chrome and Firefox. So accessing it with Opera would just result in an error “GetUserMedia failed. Is this a WebRTC capable browser?
I tried to tweak the demo so it would run with Opera but I hit a wall : Opera doesn't support RTCPeerConnection API so there is no way to get it working. The Android version of Bowser would get rejected on the same ground.


Here is a summary of the tests done on Linux(with Chrome 25, Firefox Nightly 2013-03-05 and Opera 12.14) and Android:


As of March 2013, there is no viable WebRTC videoconferencing solution on Android.
Bowser is an experimental browser and can't be used in a commercial environment.
Opera Mobile already partially supports getUserMedia for camera access, but not for the microphone and as RTCPeerConnection is not supported at all Opera can't be used for videoconferencing. Note that the current Opera Mobile Beta (14.0.1025.52315) doesn't support getUserMedia at all, if you want to experiment with this API, stay on the stable 12.10.
Google and Mozilla both have plans to support WebRTC, so we'll just have to wait...

14/03/13 Edit - Chrome for android now supports WebRTC in its latest Beta!