WebRTC efforts underway at Mozilla!

Last week, a small team from Mozilla attended IETF 83 in Paris, and we showed an early demo of a simple video call between two BrowserID-authenticated parties in a special build of Firefox with WebRTC support. It is still very early days for WebRTC integration in Firefox, but we’re really excited to show you something that works!

At Mozilla Labs, we’ve been experimenting with integrating social features in the browser, and it seemed like a cool idea to combine this with WebRTC to establish a video call between two users who are signed in using BrowserID (now called Persona). The SocialAPI add-on, once installed, provides a sidebar where web content from the social service provider is rendered. In our demo social service, we show a “buddy list” of people who are currently signed in using Persona.

The video chat page that is served when the user initiates a video chat uses a custom API intended to simulate the getUserMedia and PeerConnection APIs currently being standardized at the W3C. A <canvas> is used to render both the remote and local videos, though it is also possible to render them in a <video>. We’re working very quickly to implement the standard APIs, and you can follow our progress on the tracker bug.

A lot of folks burned the midnight oil to get this demo ready before the IETF event, and special thanks are due to Eric Rescorla, Michael Hanson, Suhas Nandakumar, Enda Mannion, Ethan Hugg, the folks behind Spacegoo, and Randell Jesup, in addition to the whole media team here at Mozilla.

Current development is being done on a branch of mozilla-central called alder. It is going to be an exciting few months ahead as we work towards bringing WebRTC to Firefox. There is a lot of work to do, and if you are interested in contributing, please reach out! Maire Reavy, our product person and project lead for WebRTC would be happy to help you find ways to contribute. Many of us are also usually available in IRC at #media, and we have a mailing list.

Transcript of screencast:

Hi, I’m Anant from Mozilla Labs and I’m here at IETF where we are demonstrating a simple video call between two BrowserID-authenticated parties, using the new WebRTC APIs that we are working on.

This is a special build of Firefox with WebRTC support, and also has the experimental SocialAPI add-on from Mozilla Labs installed. On the right hand side you can see web content served by demosocialservice.org, to which I will sign with BrowserID. Once I’m signed in, I can see all my online friends on the sidebar. I see my friend Enda is currently online, and so I’m going to click the video chat button to initiate a call.

Here, I see a very early prototype of a video call window served up by our demo social service. Now, I can click the Start Call button to let Enda know that I want to speak with him. Once he accepts the call, a video stream is established between the two parties as you can see. So, that was a video call built entirely using JavaScript and HTML!

You can check out the source code for this demo, as well as learn how to contribute to the ongoing WebRTC efforts at Mozilla in this blog post. Thanks for watching!

View full post on Mozilla Hacks – the Web developer blog

Tagged on: , , ,

11 thoughts on “WebRTC efforts underway at Mozilla!

  1. Anant Narayanan

    It sounds like you’d want to make your IM app a full “webapp” using the apps infrastructure we’re working on. https://developer.mozilla.org/en/Apps has an overview on how to do that, once you have a manifest and a user installs your app it will run in its own window, and you will be able to send out notifications, open pop ups etc.

  2. Anant Narayanan

    Yes, the default is to establish a P2P connection but if one could not be created (because of Firewalls etc.) the webapp has an option to use a proxy.

  3. Andrew Ducker

    This is fantastic. I do wonder whether it would be possible to break this out into it’s own application, but using the Mozilla runtime.

    I like my IM app to be able to open its own windows, pop things up by itself, etc. without necessarily interrupting my browsing. If it’s all running inside a Firefox window then that’s going to be tricky to manage.

  4. CCAC (Collaborative for Communication Access via Captioning)

    Integrate real time speech to text of high quality and you get the prize! 🙂
    cheers, ls/ccac

Leave a Reply