DASH-JS – A JavaScript-based DASH library for Google Chrome

Our new DASH-JS implementation is now online! DASH-JS is a seamless integration of Dynamic Adaptive Streaming over HTTP (DASH)  into the Web using the HTML5 video element. Moreover, it is based on JavaScript which uses the Media Source API of Google’s Chrome browser to present a flexible and potentially browser independent DASH player. Furthermore, DASH-JS is currently using WebM-based media segments and comes with a MPD generation script for WebM content. A more detailed description as well as showcases are available here on our website.

Note that the usage of WebM is required solely due to the Media Source API of Chrome. However, the Media Source API has been recently extended toward ISOBMFF segments. Our DASH-JS is actually agnostic to the underlying segment format as long as it is supported by the media decoder.

This entry was posted in DASH. Bookmark the permalink.

13 Responses to DASH-JS – A JavaScript-based DASH library for Google Chrome

  1. Ernst says:

    This writing is a bit iffy. Like reoeyvne else is pointing out, this doesn’t seem very open. I would encourage you guys to meet and revise the wording and/or decision. We love Google but, let’s stay honest with each other no? I think this is a case where the whole web does not consider this an open move – so either tell it like it is, or include h264 and continue forward with the open stance. Don’t say open while removing something that we all consider open :)

  2. Magnus says:

    This looks great. I’m researching DASH for a project involving live streaming. Current DASH work (Yours, Mozilla) seems focused on on-demand video which I suppose is the first step. Would be interesting to hear your plans for live streaming both on the client and server side (DASH-JS, DASHEncoder).

  3. sandeep says:

    I too wish to see the plans for live streaming support. I think it is more challenging than on-demand streaming of pre-encoded video. By the way, none of the three streams given at showcases link worked for me. I am using latest version of Chrome and enabled the Media Source API.

    • Stefan Lederer says:


      which version of Chrome are you using? It’s running with the most actual version 20.0.1132.57 m on my Windows 7 PC.

      Yes, live streaming would be a nice feature, but our ressources are very limited as we are a research institution. But DASH-JS is open source, so you are welcome to contribute code for live streaming.

      Best regards,


      • sandeep says:

        >>Thanks Stefan for reply. I am using exactly same configuration as yours. I confirmed that I enabled the Media Source API as well. May be some corporate policy blocking the video. Let me check on other desktops.

        Well, I checked at my home. The video is playing. Cool demo. I contacted the system admin guys if they are blocking the video. They said it is not blocked. In fact, I can see the webm segments being downloaded in Chrome console but unable to see the video. The following console log may help:

        Cummulative bitrate: 189578.7 bps bandwidth.js:60

        Uncaught TypeError: Not enough arguments DASHttp.js:67
        _fetch_segment.xhr.onload DASHttp.js:67

        Bitrate measured with last segment: 287683 bps bandwidth.js:55
        Cummulative bitrate: 210352.5 bps

        I will try walking though the code. Thanks.

  4. sandeep says:

    Thanks Stefan for reply. I am using exactly same configuration as yours. I confirmed that I enabled the Media Source API as well. May be some corporate policy blocking the video. Let me check on other desktops.

    I never looked into Java code in my life :-) May be DASH-JS would be the first one for me.

  5. Senaida says:

    Woah! I’m really enjoying the template/theme of this site. It’s simple, yet effective.

    A lot of times it’s hard to get that “perfect balance” between usability and appearance. I must say that you’ve done a amazing job with this.
    In addition, the blog loads super quick for me on Internet
    explorer. Exceptional Blog!

  6. My programmer is trying to convince me to move to .
    net from PHP. I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using Movable-type on several websites for about a year and am anxious about switching to another platform.
    I have heard fantastic things about blogengine.net.
    Is there a way I can import all my wordpress content into it?

    Any kind of help would be really appreciated!

  7. Silvia says:

    First of all, I think you did a great job, this implementation looks very promising.
    Your showcases for ISO Base Media File Format based media segments work perfectly but I don’t know what is wrong with the showcases for WebM-based media segments, the videos just don’t start to play.
    I’m using chrome v24 and I have mediaSource API enabled on flags. Do I need to do anything else to be able to play them?

  8. KS says:

    Hi there,

    I am having problems to play your webm demos. All ISOBFF demos play fine but none of the WEBM demos can play. It is black screen and controls are grayed out.

    I am using Chromium 28.0.1500.71, MediaSource API enabled on Ubuntu 13.04.

    Traced the code, I could see an error on mediaSourceAPIAdaptation.js, function sourceBufferAppend(mediaSource, id, data). The readyState is “closed” when it tries to append to the buffer.

    It would be great if anyone could shoot me some lights. This is for my research project. Thx!

    • Benjamin Rainer says:


      Yes, there seems to be an error with MPDs containing WebM. We will investigate the problem and keep you pinned to updates.

      Best Regards,


  9. Putranti says:

    Dear ,

    I want to ask something about DASH video. I had an error when trying to play DASH video (.mpd) that have been created using DASHEncoder. Can you tell me, is there any tools or application that can be used to play DASH video? I’ve downloaded the dash-js, but when I open the index.html and I type my local url in there, my video still can’t be played.
    Is there something wrong with contents in the DASHEncoder.config file that I’ve created?

    I hope you can solve my problem. Thank you very much.

    Best regards,

Leave a Reply

Your email address will not be published. Required fields are marked *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>