Usage
dash.js covers a wide set of use cases such as low latency streaming, DRM playback, multi-audio and multi-text playback and many more.
We suggest to make yourself familiar with the basic concepts of dash.js. This includes understanding how to:
Many samples demonstrating the dash.js features can be found in our sample section.
The pages in this section explain the individual features of dash.js in detail, including code examples and links to the corresponding samples:
Playback basics
- Settings - configure the player via
updateSettings() - Player Events - subscribe to state changes and metrics
- Logging - configure log levels
- Controlbar - add a UI control bar
- Timing APIs - playback time, seeking and start times
Streaming types
- Live Streaming - live delay, player synchronization, dynamic to static transitions
- Low Latency Streaming - CMAF low latency and catchup mechanisms
- Multiperiod Streams - period transitions and events
- MPD Patching - incremental manifest updates
- Clock Synchronization - client/server clock sync for live playback
- Microsoft Smooth Streaming - MSS playback support
Adaptive streaming and buffering
- Adaptive Bitrate Streaming - ABR rules, settings and custom rules
- Buffer Management - buffer targets and pruning
Tracks and media
- Track Selection - initial and runtime track selection, capability filtering
- Subtitles & Captions - TTML, WebVTT and CEA-608/708 handling
- Thumbnails - seekbar preview thumbnails
- LCEVC - MPEG-5 Part 2 enhancement decoding
Content protection
- Digital Rights Management (DRM) - Widevine, PlayReady, FairPlay and ClearKey playback
Data and reporting
- Common Media Client Data (CMCD) - client-side metrics reporting
- Common Media Server Data (CMSD) - server-side hints
- Event handling - MPD and inband events
Advanced
- Content Steering - CDN switching
- Network Interceptor - request/response interception
- Flexible Insertion of URL Parameters - CMCD-style query injection
- Preloading - buffering before a video element is attached
