Короткое определение

Доминирующий open-source JavaScript-плеер для HLS. Лицензия Apache 2.0, работает в любом браузере с поддержкой MSE; используется Twitch, JW Player, Video.js и тысячами других проектов.

hls.js создал Guillaume du Pontavice в 2015 году, чтобы обеспечить воспроизведение HLS в браузерах без нативной поддержки – исторически это были все десктопные браузеры, кроме Safari. Библиотека парсит m3u8-плейлисты, загружает сегменты, реализует ABR, управляет буферами источников MSE и интегрируется с EME для поддержки DRM. Она зрелая, хорошо документирована, тщательно протестирована и входит в состав многих коммерческих плееров. К 2026 году стала де-факто стандартом среди открытых HLS-плееров.

hls.js поддерживает классический HLS, LL-HLS (с версии 1.1, 2022), fMP4-сегменты (с версии 0.13, 2018), стриминг в режиме live и VOD, мультиязычный аудио и субтитры, content steering (с версии 1.4, 2023), а также DRM Widevine и PlayReady через EME. ABR работает на основе пропускной способности с ограничениями по уровню буфера; поведение ABR настраивается с помощью десятков параметров. Размер библиотеки – около 80 КБ после минификации и сжатия gzip, что является минимальным объёмом для любой видеостраницы.

Продакшен-паттерны: hls.js – по умолчанию для десктопа и Android-браузеров, нативный HLS в Safari – для iOS. Некоторые операторы используют hls.js даже в Safari ради поведенческой консистентности (нативный HLS в Safari по-другому обрабатывает некоторые действия). hls.js интегрирован в веб-плеер Twitch, является стандартным плеером Cloudflare Stream и используется во многих других сервисах. Команда разработчиков остаётся активной, релизы выходят регулярно, API стабильно.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.