May 15th, 2013 by Dominick Accattato
What is WebRTC
In the world of disruptive technologies, WebRTC has quickly caught the attention of the web development community. WebRTC at its core provides real-time communication between browsers. The following represents the group’s mission statement:
Why was WebRTC created
WebRTC has humble beginnings but grand expectations based on source code that Google decided to open source. The original code came from two companies: Global IP Sound (for voice) and On2 (for video). These two companies were acquired by Google for the codecs and security based protocols for peer to peer streaming technology. On2 was the source for the webm project and codec.
Why is it interesting
WebRTC is interesting for so many reasons, but for real-time streaming developers it brings full circle what we have been working on for over 10 years. Previous to WebRTC, people were streaming with either their own proprietary technology or through a browser plugin. The most ubiquitous plugin was, and still is the Flash Player. Flash still remains today the best option for web conferences that want to maintain backwards compatibility with older browsers and leverage a full stack of streaming technologies.
However, WebRTC is steadily gaining momentum and will eventually overcome the advantages that Flash currently has in this space. It will take a bit of time for the technology to increase adoption, but it will eventually happen and many of the leading browser vendors are behind the movement. Especially since the standards are supported by the W3C and IETF working groups.
What are the current challenges?
Currently WebRTC has some challenges. First, it still needs wider acceptance and adoption. At this moment, only Chrome (Stable) and Firefox (Nightly) have support. Internet Explorer has expressed interest, but Safari has not made any indication that they would provide support. That said, if all the other major vendors end up supporting the standard, Safari would most likely follow suit.
Also, since the technology is largely peer to peer, there isn’t a great solution for a media server yet. In addition, the technology requires implementors install either a STUN or TURN server. A STUN server basically facilitates “hole punching” which is what is needed for NAT traversal through firewalls. A TURN server is basically a STUN server with extensions that allow it to also act as a fallback media relay server. Regardless, it’s still difficult to choose the right STUN/TURN server to work with, but I’m sure this will become more clear as the standards and implementors start to roll out more products.
In addition, there is still much work to be done on the specifications. The standards boards are continuing their efforts on the creation of their working drafts. These will eventually be published standards and RFC’s.
What are the main API Interfaces?
You can visit the following site for a good description of the API’s (http://docs.webplatform.org/wiki/apis/webrtc)
What about Flash Streaming?
I’ve thought about how this will affect the current ecosystem of Flash Streaming which basically dominates the video streaming on the Internet today. As Flash has a large adoption rate, it will continue to thrive and will even remain as a great backward compatible solution. At this point, I still feel like the Actionscript API’s are easier to work with and the aggregated technology behind Flash Streaming appears to be easier to work with, but that is a biased statement since I’ve been working with Flash Streaming for over 10 years.
Many groups are also still very interested in how WebRTC will affect Red5. I can only say that at this time, the Red5 developers including myself, are excited about the potential of WebRTC, and we plan to modernize Red5 to accommodate this new plugin-less approach.
So I hope I’ve drawn some attention to this very new and exciting technology. We at Infrared5 hope to put this technology to use for our clients. If you’re interested in a project based on WebRTC, just drop us a message.
Project Website: http://www.webrtc.org/
Google Code Project: https://code.google.com/p/webrtc/
WebRTC Blog: http://www.webrtc.org/blog
W3C Editor’s Draft: http://dev.w3.org/2011/webrtc/editor/webrtc.html
WebRTC Example: https://apprtc.appspot.com/?r=65920333