Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Will Law edited this page · 33 revisions


Please post questions to dash.js Google Group



Meeting Minutes

Sample Player

MediaPlayer Class

Background Info

Clone this wiki locally

Note Nov 10th 2015 - Dev branch should not be used to make changes against or test. ABR in Dev is disabled right now due to the ongoing refactor.

Note: Oct 30 2105 - dash.js is in the middle of a significant refactor to the 2.0 version. This will bring a host of new features and a more scalable and modular architecture, with significant changes coming to scheduling, events and dependency injection. While this transition is happening, new PR’s issued against Dev branch will most likely not be pulled in. We encourage you to hold off your PR's until the new architecture has been merged with /dev/ and then to rebase your PRs against that branch before re-submitting them. The /dev/ branch should be ready again by mid to late November. We'll notify everyone via the list server and this readme when it's time.

dash.js is an initiative of the DASH Industry Forum to establish a production quality framework for building video and audio players that play back MPEG-DASH content using client-side JavaScript libraries leveraging the Media Source Extensions API set as defined by the W3C. The core objectives of this project are to build an open source JavaScript library for the playback of DASH which:

  • Is robust in a real-world production environment
  • Has the best performing adaption algorithms
  • Is free for commercial use
  • Is both codec and browser agnostic
  • Implements best practices in the playback of MPEG DASH
  • Supports a wide array of features including in-band events, multiple-periods and cross-browser DRM.

For an up-to-date view as to the state of MSE support in browsers, look here.

dash.js License

All code in the dash.js project is covered by the BSD-3 license. This permissive license allows redistribution and use in source and binary forms, with or without modification, without cost or any license fees. It is our intent that you use this code to freely build DASH players for personal, company internal, or commercial purposes.

Setting Up Your Dev Environment

Reference Player

  1. Download 'master' or latest tagged release.
  2. Extract dash.js and move the entire folder to localhost (or run any http server instance such as python's SimpleHTTPServer at the root of the dash.js folder).
  3. Open samples/dash-if-reference-player/index.html in your MSE capable web browser.

Install Dependencies

  1. install nodejs
  2. install grunt - npm install -g grunt-cli

Build / Run Tests

(1) Change directories to the build folder

  • cd build/

(2) Install all Node Modules defined in package.json

  • npm install

(3) Run all the GruntFile.js task (Complete Build and Test)

  • grunt

(4) You can also target individual tasks:

  • grunt uglify

  • grunt jsdoc

  • grunt

Quick Start for Users

If you just want a DASH player to use and don't need to see the code or commit to this project, then follow the instructions below. If you are a developer and want to work with this code base, then skip down to the "Quick Start for Developers" section.

Put the following code in your web page

<script src=""></script>


<body onLoad="Dash.createAll()">


     <video class="dashjs-player" autoplay preload="none" controls="true">

        <source src="" type="application/dash+xml"/>




Then place your page under a web server (do not try to run from the file system) and load it via http in a MSE-enabled browser. The video will start automatically. Switch out the manifest URL to your own manifest once you have everything working. If you prefer to use the latest code from this project (versus the last tagged release) then download dash.all.js file from the development/dist folder, mount it on a web server and change your script tag to refer to it.

View the /samples folder for many other examples of embedding and using the player. For help, join our email list and read our wiki.

Quick Start for Developers

Create a video element somewhere in your html. For our purposes, make sure to set the controls property to true.

<video id="videoPlayer" controls="true"></video>

Now comes the good stuff. We need to create a dash context. Then from that context we create a media player, initialize it, attach it to our "videoPlayer" and then tell it where to get the video from. We will do this in an anonymous self executing function, that way it will run as soon as the page loads. So, here is how we do it:


  var url = "";

  var context = new Dash.di.DashContext();

  var player = new MediaPlayer(context);





When it is all done, it should look similar to this:

<!doctype html>



     <title>Dash.js Rocks</title>




        <video id="videoPlayer" controls="true"></video>


     <script src="yourPathToDash/dash.all.js"></script>



           var url = "";

           var context = new Dash.di.DashContext();

           var player = new MediaPlayer(context);








By whom

This project is organized by the Dash Industry Forum, a non-profit industry association established to catalyze the adoption of MPEG-DASH. Membership includes many large media companies, including Microsoft, Qualcomm, Ericsson, Adobe, Sony, Cisco, Intel and Akamai.

Something went wrong with that request. Please try again.