WebRTC

We just finished one of our latest ship it days at work which was great fun and meant that along with a few other developers I got the chance to look into the current state of WebRTC and how we could make use of it.

Now I'm sure a few of you are wondering just what WebRTC is so I've stolen this from the quote from webrtc.org.

"WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose."

WebRTC - web real time communication.  Makes sense once you know what it means, doesn't it.  It's a project that was open sourced by Google that in my eyes (and at least a few others) is really exciting.  It means that you can build a number of applications that were previously desktop based such as Skype directly into the browser.  Best of all, because this technology is being built into the browser it means that there's no plug ins!  No longer will you have to install something which will allow you to capture the media from a users webcam or mic.  There's quite a few examples out there which let you see the different stuff that you can do with this new technology available over at http://www.webrtc.org/running-the-demos.  One of my personal favourites forgets the communication aspect and using just CSS and WebRTC puts a number of effects over the media it captures from your camera.  It's called  webcamtoy so check it out.

One thing to note about WebRTC is that it is very new and the W3C draft of WebRTC is definitely not complete yet.  What this does mean is that it can and will change before the spec is finalised.  Browsers are using the standard prefix notation to prevent any issues between any differences in implementation.  Also support for the various APIs is patchy at best across the different browsers.  In fact the only browsers that do support WebRTC to varying extents as I write this are Chrome, Opera and Firefox nightly builds.  By varying extents I mean that they all support getUserMedia, which is only one component of WebRTC, however, at the moment that's what most people mean when they say they support WebRTC.  You can also get WebRTC in IE if you use the Chrome Frame plug in.

I won't go into any more detail as there is a great HTML5 rocks blog post which covers it in detail.  In a future blog post I'll go over some of the stuff we did in our ship it day project which was all based around getting a web browser to talk to a SIP phone.