Ever since releasing Bowser, the world’s first mobile WebRTC browser, to the public in 2012 we have been asked to share our implementation. Today it’s happening!
Today, we are not only releasing Bowser as free and Open Source but also the underlying cross-platform WebRTC framework called OpenWebRTC.
OpenWebRTC has been developed and used internally at Ericsson Research over the last few years. We have used it to build several research prototypes such as Field Service Support using Google Glass and Remote Control of an Excavator.
Native apps and browser back-ends
OpenWebRTC is built on the belief that the WebRTC standard would transcend the pure browser environment and that native apps, implementing the same protocols and API’s, would become an important part of the WebRTC ecosystem. This is especially true on mobile platforms where native app distribution is often preferred over pure web apps. Native OpenWebRTC apps can either talk to other native apps or browsers that support WebRTC. OpenWebRTC can also provide the WebRTC-backend to web browsers, such as Bowser. Bowser is in fact a very thin layer of UI code on top of OpenWebRTC as shown here.
The GStreamer Open Source multimedia framework has provided us with a very capable and flexible base on which to build OpenWebRTC. We have written a few additional GStreamer plugins to complete the picture in terms of WebRTC. OpenWebRTC implements all the logic needed to easily set up and maintain WebRTC sessions while also being flexible and supporting more advanced use cases.
WebRTC web apps running in Bowser as well as other applications built on top of OpenWebRTC will be interoperable with WebRTC enabled browsers such as Chrome and Firefox. With support for both H.264 (OpenH264) and VP8 (libvpx) video codecs OpenWebRTC is compatible with most video communication services without the need for costly transcoding. We are also planning to add support for the HEVC/H.265 video codec.
Support for iOS, Android, Mac OS X and Linux is built right in.
Bowser has been released as Open Source and you can find the source code here.
Bowser is still the only browser on iOS with support for WebRTC. While waiting for Mobile Safari to get WebRTC support we want as many people as possible the get a chance to start experimenting with WebRTC on iOS. Therefore Bowser has been re-submitted to the Apple App Store, we will post an update to this blog when it’s available for download. Bowser will continue to be a free app and our plan is that future versions will incorporate changes made by the community. We have not put a lot of effort in to basic browser features and would love to get your help with making Bowser even better. For the time being Ericsson Research will continue administrating Bowser on the App Store.
The WebRTC standard is still evolving and developers are finding news ways of using the technology every day. We hope that by releasing OpenWebRTC and Bowser as Open Source, the pace of innovation in the WebRTC community will quicken even further.
If you would like to contribute, please head on over to GitHub. The permissive BSD license allows you to use the code as you please with very few limitations. We are really excited to see what you will build using OpenWebRTC. If you need support there is a mailing list and Twitter account for discussions and questions, as well as a blog where we will be posting more details.
More information is available at the OpenwebRTC site.
– Stefan Ålund and the Ericsson Research WebRTC team