I’m searching for the best open source technologies to use to implement a bidirectional audio/video communication between two browsers.
For now I have unearthed these tracks:
- WebRTC W3C spec and an Ericsson’s implementation
- Red5 and the BigBlueButton implementation as an example
- Cumulus A Red5 implementation of Cirrus
- HTML5 and his many new features (but not before 2014-2015 aparently)
- Maybe some Jabber/Speex kind of implementation that I’m missing
Is there something I’m missing ?
What can be the best solution to use ?
Also (to be more precise), I’d like to implement this feature in my application developped using Django/Python.
The hardest question is what you should use on the client side to capture and stream video from the user’s webcam. For that, you have relatively few options, since whatever you use has to be widely supported by modern browsers, whereas you can do whatever you want on your own servers.
There are three general approaches you can take: use HTML5, use an existing plugin technology, or create your own plugin.
The third is probably the most difficult, and I don’t recommend it. You’d need to maintain at least five different versions of your plugin (one for each major browser), and users would have to install it.
For the second option, there are three major plugin techologies now that ActiveX is dead: Flash, Silverlight, and Java applets. I’d advise you away from Silverlight, as it’s not exactly portable.
That leaves you with Flash, applets, and HTML5 as your choices. Of these, Flash is the most widely used—but it has its disadvantages and the world is moving away from it. HTML5 is the wave of the future, and although the standard won’t be finished until 2014, it’s not expected to change (Last Call was in May 2011) and the major browsers already support much of it—though apparently not yet the WebRTC API, though I’m sure it’ll be in Firefox and Chrome soon.