github video-dev/hls.js v1.0.0-alpha.2

latest releases: v1.5.8, v1.5.7, v1.5.6...
pre-release3 years ago

Welcome to another alpha release of v1.0.0. This is an early preview release of version 1.0. It includes a refactor of the buffering pipeline and support for Apple Low-Latency HLS. Features related to maintaining a latency target near the edge of a live stream are still in progress.

This release was cut from the feature/v1.0.0 branch for which there is an open PR #3072. Please provide feedback there.

New Features

  • Apple Low-Latency manifest and playlist handling
    • Low-latency HLS Manifest parsing
    • Low-latency Part Loading
    • Playlist Request Query Parameters (Blocking Reload with Delivery Directives)
    • Playlist Delta Updates
    • CDN Tune-in
  • Latency controller with video.playbackRate adjustment to maintain latency target
  • Basic IMSC1 support (experimental)

Bug Fixes

  • Buffer fmp4 parts and segments without waiting for next starting moof when not in progressive buffering mode
  • All changes and fixes in master up to 2020/11/16 (v0.15.0-canary b3ed002...ee70fd8)

Demo Page

  • LL-HLS Parts are displayed in the timeline
  • LL-HLS dark mode matches system settings

API Changes

  • lowLatencyMode is set to true by default enabling LL-HLS playlist part refresh and loading
  • Event order and content has changed with the refactor. See Breaking Changes below and please report any issues with breaking changes that impact your integrations.

Breaking Changes

  • The stats object has changed
    • trequest, tfirst, tload have been replaced by loading: HlsProgressivePerformanceTiming
    • tparsed has been replaced by parsing: HlsProgressivePerformanceTiming
  • BUFFER_CODECS data has changed from { tracks: { video?, audio? } } to simply { video?, audio? }
  • BUFFER_APPENDING data has changed from { type, data, parent, content } to { type, data, frag, chunkMeta }
  • BUFFER_APPENDED data has changed
  • FRAG_ events are fired for part loading, parsing and buffering with part and frag object properties
  • Event binding should remain unchanged using the public API, but refer to #2395 if experiencing issue with changes to event constants.
  • On the Fragment object:
    • hasElementaryStream function has been removed
    • setElementaryStream and _elementaryStreams have been renamed (these are only for internal use)
  • Promise support is now required. Please bring your own polyfill

Known Issues

  • Playback rate adjustment is performed by default for all live streams. This can be disabled by changing the current default minLiveSyncPlaybackRate of 0.5 and maxLiveSyncPlaybackRate of 1.5 both to 1. The next release will include additional low latency mode options and should not change the rate on standard-latency or "DVR" event live streams by default.
  • Part loading and playback rate adjustment is still performed even when playback is positioned far back from the part list.
  • EXT-X-PRELOAD-HINT is not supported and won't be until after v1.0.0.

Summary
v1.0.0-alpha.1...v1.0.0-alpha.2

To provide feedback see #3072

Don't miss a new hls.js release

NewReleases is sending notifications on new releases.