Live Content Capabilities in dash.js Enable Surround Sound Experiment

MPEG-DASH is the open standard for adaptive media streaming, and dash.js is a reference implementation of that standard which aims to accelerate adoption of the standard. The dash.js player is open source and works in modern browsers without the need for plugins.dashif-logo-170x60

The latest dash.js release adds some very important features and improvements for media playback Perhaps the most notable is support for live content. This capability allows broadcasters to stream both live and pre-recorded content without the use of additional plug-ins. Microsoft Open Technologies, Inc. (MS Open Tech) contributed this support to the dash.js project, where it has been tested extensively using community-provided content.

As evidence of the progress of MPEG-DASH and dash.js, the British Broadcasting Corporation (BBC) recently completed a unique broadcast experiment that was made possible through the use of this work.

The broadcast network offered select evening concerts in surround sound using the MPEG-DASH standard and the dash.js player. BBC Radio Head of Technology Rupert Brun described the experiment:

"Radio 3 has a long history of pushing the boundaries with new technology, from early stereo broadcasts in 1958 through wide dynamic range high bit rate audio (HD Sound) to binaural presentation (surround sound in headphones). In collaboration with BBC R&D, we have a new experiment for you to try. For two weeks from 15th to 31st March some of our evening concerts from London’s Southbank Centre will be available in surround sound."

Dave Evans, a Technologist at the BBC, provided some additional background on the specific tools they used to support this trial in his blog:

“In order to deliver the surround audio to you, a DASH player application needs to at least perform the following tasks:

  1. Create a MediaSource object and set it as the source of the media element
  2. Request and parse manifest and create SourceBuffer objects for each enabled stream
  3. Request segments for each stream and append them to the SourceBuffers
  4. Repeat step 3

Quite a lot of code is required just for those few steps. For this trial, we’ve chosen to use a modified version of dash.js, an open-source MPEG-DASH player implemented entirely in Javascript”

Seeing our code adopted within the community in this way is literally music to our ears! We hope that the BBC’s use of dash.js to quickly build an MPEG-DASH player for streaming will encourage other media organizations to implement similar capabilities for their audiences.

In fact, since this technology is freely available, you don’t need the resources of the BBC to build an MPEG-DASH player of your own. All it really takes is a few lines of code.