This is a preview release of version 1.0. It is feature complete and intended for testing purposes.
Changes Since Last Release
- Only resync playback with live streams if the buffer is starved or playback is behind
liveMaxLatencyDuration
orliveMaxLatencyDurationCount
- #3603 - Fix
currentLevel
andgetAppendedFrag
with alt-audio streams - #3621 closes #3602 - Cleanup
hls.destroy()
and calleddetroy()
on loaders before freeing - #3628 resolves #2104, relates to #3605 and #3606 - Fix non-fatal error handling of invalid
startLevel
index - #3641 fixes #3618 - Update
nextLoadPosition
right before loading a fragment or part - #3646 - Add CONTRIBUTING and MIGRATING files #3645
- CICD Updates - #3613, #3622
New Features
- Apple Low-Latency HLS support
- Improved support for redundant variants with tracks
- Improved audio and subtitle track selection with multiple media and stream variants containing different GROUP-ID values
- Progressive streaming option (experimental)
API Changes
-
New config options:
backBufferLength
config applies to Live and VOD content.liveBackBufferLength
is still supported but marked as deprecated.lowLatencyMode
- set tofalse
to disable Low-latency part loading and target latency playback rate adjustmentprogressive
- (experimental) set totrue
to stream and append loaded audio and video data before each segment load completion. It is not recommended for production or small segments with only a single GoP or less.
-
Event order and content have changed in some places. See Breaking Changes below, and please report any issues with breaking changes that impact your integrations
-
hls.audioTracks
andhls.subtitleTracks
as well asAUDIO_TRACKS_UPDATED
andSUBTITLE_TRACKS_UPDATED
events only list tracks in the active level's audio/sub GROUP-ID afterLEVEL_LOADING
- #3293 -
Added
groupId
to audio and subtitle track loading and loaded events -
Added additional error details to help identify the source of certain network error events:
SUBTITLE_LOAD_ERROR
SUBTITLE_TRACK_LOAD_TIMEOUT
UNKNOWN
-
The
FRAG_DECRYPT_ERROR
event is no longer emitted and is instead surfaced as aFRAG_PARSING_ERROR
Breaking Changes
See the new MIGRATING guide for API changes between v1.0 and v0.14.
Known Issues
- TTFB is factored into overall bandwidth and can impact quality selection when streaming smaller segments or LL-HLS parts #3563
Summary
Demo Page
https://hls-js-79fb5bf4-02e6-4474-8d1f-ec2bfc3527ff.netlify.app/demo/
Feedback
To provide feedback please a bug report or feature request via the issue tracker.
If you do file an issue, please include a test stream, and consider contributing to #3065.