About this project

RxPlayer is an open-source JavaScript media-player engine for browsers and browser-like environments. It implements DASH and Microsoft Smooth Streaming playback through the HTML5 Media Source Extensions and Encrypted Media Extensions APIs. HLS, MP4, and WebM can be used in directfile mode on compatible browsers, such as Safari for native HLS. The project supplies the streaming and playback core rather than a finished user interface: applications provide their own controls and visuals, while RxPlayer handles content loading, adaptive bitrate logic, track management, buffering, decryption integration, and playback events. An online React-based demo and CodeSandbox examples are provided. Documented capabilities include live and VoD DASH, low-latency DASH, Smooth Streaming, downloaded-content playback, multiple DRM keys and licenses, persistent licenses, fallback behavior for undecipherable or undecodable qualities, and configurable MediaKeySystemConfiguration options. It supports TTML, WebVTT, SAMI, and SRT subtitles. RxPlayer is designed for integration flexibility and constrained devices. Its core logic can be offloaded to a separate thread, and it exposes APIs for audio-only playback, video and audio track selection, quality filtering, segment garbage collection, peer-to-peer integration, event handling, and detailed player-state observation. Adaptive algorithms use network information for startup and buffer information for quality selection, while scheduling and decoding heuristics aim to reduce rebuffering and continue playback on struggling devices. An optional WebAssembly-based MPD parser is available for very large DASH manifests. The library is published as the npm package "rx-player" and can be installed with npm or Yarn. A full build can be imported directly, or a minimal build can be extended with only required features such as DASH and EME. The repository links to API documentation, getting-started tutorials, DRM and track-selection guides, demos, release pages, and contribution instructions.