HTML5

Progress on BigBlueButton HTML5 Client

Since early summer we’ve been prototyping and exploring how we can create an HTML5 client for BigBlueButton. This would be a client that doesn’t require flash; rather, it would use native HTML5 for the UI and WebRTC for the real-time communication.

Currently, we’ve create a prototype HTML5 client (no audio or video yet) that we are integrating with the BigBlueButton server. In exploring how this might work on a tablet or mobile device, we want to keep the UI as simple as possible.

Here’s a mockukp for the UI to be viewing a live session.

 

Our goal here was simplicity: this would let the viewer watch the current presentation.  If they click the button in the bottom right, the tools would expose.

 

 

If they click on the users icon, the list of users would appear on the left; if they click the chat icon, the list of chat messages would appear on the right.

 


The above screen shot is taken from an working internal prototype — there is still much to be done. We’re currently working on hooking up all the presentation events (slide updates, mouse movement, whiteboard, and pan/zoom).

The challenge will be audio and video.  You can see more UI mockups of exploring how we can display the webcams.   We really want to use WebRTC for the audio/video, but currently WebRTC is primarily designed for P2P applications.  With BigBlueButton, we need the streams going through a central server so we can record the session for later playback, so we’re investigating how we can use WebRTC to connect to a central server

We’re also investigating how we can stream out the audio/video (using WebM) to enable a user to join a live BigBlueButton session from an HTML5 client, see the presentation area, two-way chat, and hear/see the presenter via a one way stream. While it wouldn’t be two-way audio/video, it would enable users to join from any HTML5 browser capable of receiving a WebM stream. This would be a stepping stone to a full WebRTC implementation.

There’s lots of work ahead, but we’re very determined to figure out the best way to provide a native HTML5 client for BigBlueButton. Our efforts to create an HTML5 + WebRTC interface for BigBlueButton are also documented in our Mozilla Ignite Proposal.

This work is going on in parallel to the current BigBlueButton 0.81 release.  There won’t be an HTML5 client for 0.81, but depending on our progress for the prototypes, we’ll have a good idea how feasible it will be to merge this into core.