video-dev/hls.js

HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 28 minutes ago
Added to GitGenius on September 3rd, 2026
Created on January 30th, 2015
Open Issues & Pull Requests: 91 (+0)
GitHub issues: Enabled
Number of forks: 2,754
Total Stargazers: 16,924 (+0)
Total Subscribers: 310 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.5 hours
Mean response time: 25.2 days
90th percentile: 26.3 days
Tracked items: 520

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 75% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "Works as expected" is answered fastest, typically in about 2 hours, while "Feature proposal" waits about 4 days. Only 4% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 59
New in 7 days: 2
Closed in 7 days: 2
Avg open age: 737 days
Stale 30+ days: 46
Stale 90+ days: 36

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Bug (199)
  • Question (134)
  • Confirmed (105)
  • Stream Issue (91)
  • answered (57)
  • Feature proposal (46)
  • Works as expected (42)
  • Browser issue (41)

Detailed Description

HLS.js is a JavaScript library that plays HTTP Live Streaming video in browsers using MediaSource Extensions.

The library solves the problem of delivering HLS streams to web browsers that lack native HLS support by implementing an HTTP Live Streaming client on top of standard HTML5 video elements. It works by transmuxing MPEG-2 Transport Stream and AAC/MP3 audio into ISO BMFF (MP4) fragments, with transmuxing performed asynchronously using Web Workers when available. The tool supports both traditional HLS and HLS with fmp4 containers, allowing it to handle a range of streaming formats.

Developers should choose this library when building web video players that need to support HLS streams across browsers without relying on native playback support. It suits projects requiring reliable cross-browser streaming where you control the player implementation and want to work directly with standard HTML5 video elements. The library is written in TypeScript and ECMAScript6, transpiled to ECMAScript5 for broader compatibility, and uses Rollup for bundling and local development.

The project maintains active development with regular updates addressing streaming edge cases and browser compatibility. The codebase shows consistent attention to performance optimization, particularly around the asynchronous transmuxing pipeline. The tool demonstrates ongoing investment in supporting evolving HLS specifications and maintaining compatibility across different browser implementations of MediaSource Extensions.