1. Bowser and OpenWebRTC released as Open Source

    Ericsson Research Blog

    Bowser and OpenWebRTC released as Open Source

    Stefan hero

    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!

    Our group at Ericsson Research is heavily involved in the standardization of WebRTC, and have been developing prototype implementations of the standard ever since its inception (e.g. 1, 2, 3, 4, 5).

    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.

    Having independent, interoperable, implementations is important for the health of any standard, and WebRTC is no exception. Both IETF and W3C require it as part of the standards process. The ambition of OpenWebRTC is to follow the WebRTC standard closely as it continues to evolve. The bulk of the API layer is therefore implemented in JavaScript, making it super fast to modify and extend with new functionality.

    stefan2

    GStreamer

    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.

    gstreamer1

    Interoperability

    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

    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.

    Getting started

    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.

    Happy hacking!
    – Stefan Ålund and the Ericsson Research WebRTC team

    • Néstor Bermúdez

      Any chance the code for the Google Glass will be available somewhere? Or a sample version of it. I’ve tried the OpenWebRTC android sample apps running on glass and the behavior is nothing similar to what we see this video.

      • admin

        Hi Néstor, unfortunately the code for the application is not publicly available. The app was built on top of an old and modified version of OpenWebRTC, and used with the hardware accelerated video encoding, which is why you may not achieve the same results if running the current version of OpenWebRTC on Google Glass. There are some issues on GitHub related to the topic: