WebRTC and WebRTCBench

WebRTC is an industry and standards effort to provide real-time communication capabilities into all browsers and make these capabilities accessible to software developers via standard HTML5 and Javascript APIs. WebRTC fills a critical gap in web technologies by allowing (a) browser access to native devices (e.g., microphone, webcam) through a Javascript API and (b) sharing captured streams using Real-Time browser-to-browser Communication. WebRTC also provides data sharing.

WebRTC accomplishes three main tasks: Acquiring audio and video; Communicating Audio and Video; Communicating Arbitrary Data. These tasks map one to one to three main Javascript APIs: MeadiaStream (i.e., getUserMedia); RTCPeerConnection; RTCDataChannel. Various aspects of video, audio and data transmission can be evaluated once a connection is established.

We are investigating issues in WebRTC behavior and performance. The latter is particularly important on mobile devices. We have developed a benchmark suite, WebRTCBench, to help identify perfromance issues and target them for improvement. The goal of WebRTCBench is to measure various aspects of connection establishment and streaming between WebRTC peers. This allows a quantitative comparison of WebRTC implementations across browsers and devices (i.e., hardware platforms). WebRTCBench allows definition and evaluation of MediaStreams composed of Video, Audio, Data or any subset of the three. It can establish a single peer connection with a media server and multiple peer connections between browsers in a WebRTC triangle.

The current version of the benchmark can be downloded here

Supported by the Intel Corp.