
Shaka Player
Shaka Player is an open-source JavaScript library for adaptive media. It plays adaptive media formats (such as DASH and HLS) in a browser, without using plugins or Flash. Instead, Shaka Player uses the open web standards MediaSource Extensions and Encrypted Media Extensions. Shaka Player also supports offline storage and playback of media using IndexedDB. Content can be stored on any browser. Storage of licenses depends on browser support. Our main goal is to make it as easy as possible to stream adaptive bitrate video and audio using modern browser technologies. We try to keep the library light, simple, and free from third-party dependencies. Everything you need to build and deploy is in the sources.
DASH features
DASH features supported: VOD, Live, and In-Progress Recordings (dynamic VOD content) MPD@timeShiftBufferDepth for seeking backward in Live streams Multi-period content (static and dynamic) Xlink elements (actuate=onLoad only, resolve-to-zero, fallback content) All forms of segment index info: SegmentBase@indexRange, SegmentTimeline, SegmentTemplate@duration, SegmentTemplate@index, SegmentList Multi-codec/multi-container manifests (we will negotiate support with the browser and choose the best ones) Encrypted content (including custom ContentProtection schemas, PSSH in the manifest) Key rotation Trick mode tracks
HLS features
HLS features supported: VOD, Live, and Event types Encrypted content with Widevine ISO-BMFF / MP4 / CMAF support MPEG-2 TS support (transmuxing provided by mux.js v4.4+, must be separately included) WebVTT and TTML CEA-608/708 captions