Skip to content
Will Law edited this page Aug 9, 2013 · 15 revisions

Menu

Demo

Find the latest working version of the player here.

What

dash.js is an initiative 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 which

  • Is codec agnostic
  • Allows for multiple segment encapsulation types
  • Allows for multiple content protection schema
  • Allows for simple substitution of switching rules, loading methods and fail-over/down logic

The initial implementation will build upon this flexibility to produce a player which matches the DASH264 recommendation of the DASH-IF, namely:

  • Uses H.264 for video and HE-AAC for audio
  • Base Media File Format segments
  • urn:mpeg:dash:profile:isoff-on-demand:2011 and urn:mpeg:dash:profile:isoff-live2011 profile support
  • time-aligned, closed-GOP segments whose duration does not vary more than 25% from the mean
  • SMPTE-TT captioning
  • CENC DRM support

Why

HTTP Adaptive streaming provides for robust streaming, with random access, that adjusts to changes in throughput to avoid rebuffering. Use of HTTP:80 allows for transit across most networks, proxies and firewalls. MPEG-DASH provides an ISO standard ISO/IEC 23009-1 which combines the best features of Apple's HLS, Adobe's HDS and Microsoft Smooth Streaming in to a modern format that is flexible enough to handle mutiple addressing schemes, TS and BMFF support for segment encapsulation, multi-track video and audio, timed metadata and advertising insertion. Rather than require that each browser support DASH directly, the Media Source Extensions expose an interface to the HTML Media element to allow the ad-hoc addition of media segments. This allows client-side script to parse manifests, request segments and apply switching logic while leaving the video decoding and rendering to the browser. The combination is a flexible and powerful platform on which to build cross-platform media players.

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.

License

All code in this repository 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.

Email list

This project communicates via the 'dashjs' Google group. You may apply to join the email list by visiting https://groups.google.com/d/forum/dashjs.