Skip to content

Releases: video-dev/hls.js

v1.4.0-beta.2

29 Mar 01:24
4cd93e0
Compare
Choose a tag to compare
v1.4.0-beta.2 Pre-release
Pre-release

Summary

HLS.js v1.4.0-beta.2 is a preview release highlighting Content Steering and error handling improvements coming in version 1.4.

This release includes support for HLS Content Steering, EXT-X-DEFINE Variable Substitution, and preliminary support for GAP tags. An updated build process and packager provides ES module and worker script output with smaller script payloads. It also includes ABR improvements for short segments and LL-HLS Parts, async xhrSetup support, new load policy error handling config options, and other bug fixes and improvements.

Changes Since The Last Release

v1.4.0-beta.1...v1.4.0-beta.2

Known Issues

  • #5360 Gap controller may jump large gaps when player stalls with disconnected forward buffer
  • #5361 (HLS Content Steering) Pathway switching causes subtitles to be cleared and reloaded

Bug Fixes since beta 1

  • Remove fragments from FragmentTracker after transmux complete if fragment context changed (#5350) @tpaszun
  • Remove fragment from fragment tracker on BUFFER_FULL error and IDLE but tracked APPENDING (#5354) @robwalch
  • Clear subtitle-stream-controller buffered list on detach (#5355) @robwalch

New Features

Enhancements and Bug Fixes

  • Add playlist RTT and time-to-load given buffer ahead (#5329) @iamboorrito
  • Live reload level switch and error handling improvements (#5317) @robwalch
  • Support partial RENDITION-REPORT URI matches fallback (#5176)
  • Fix current quality reporting when seeking back from edge in Low-Latency streams (#5102) @robwalch
  • Treat TARGETDURATION as a decimal-integer assigned a minimum value of 1 (#5159)
  • Log error and detach if MediaSource 'sourceopen' is interrupted (#5206)
  • Fix for SourceBuffer full error handling (#5332) @robwalch
  • Fix M2TS probing when PAT packet is not found in first three packets (#5252) @robwalch
  • Fix fallback to inline worker when exception is thrown in worker (worker.onerror) (#5270)
  • Fix initPTS change between variants (timescale or basetime change) (#5235)
  • Handle invalid signed "tfdt" decode time values (#5333) @robwalch
  • Add cue id for date-range cues (#5169) @yajin2021
  • Fix subtitle track selection when TextTrack kind is captions (#5297) @dstreet26
  • Cleanup config on destroy since callbacks can have references to the player instance or other objects in their scope (#5279)
  • Switch from netlify to CloudFlare Pages (#5305) @tjenkinson
  • Add ES5 syntax check for UMD builds (#5301) @thornbill
  • Fix demo bandwidth calculation / show estimated bitrate as line in bitrate graph @silltho and @itsjamie
  • Documentation - Add interface for AbrController (#4842) @lpommers
  • Replace ESDocs generated api-docs with api-documenter markdown (#5163)
  • Fix type name error (#5295) @JackPu

Demo Page

https://dbd460d4.hls-js-dev.pages.dev/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

New API Features and Deprecations since v1.3

Note all deprecations are soft deprecations, meaning that none of the deprecated options or attributes were removed from the runtime player. They will remain available for backwards compatibility until v2.0.

  • Added config.workerPath
  • xhrSetup can optionally return a Promise
  • ERROR Event enhancements:
    • All ERROR events include an error property of type Error which references either a caught exception or an Error object instantiated at the point of failure with a friendly error message
    • Added errorAction property to ERROR events, used by error-controller to resolve errors through retries and adaptive switching
    • Added stats property to ERROR events, used to gather timing information from network errors
    • Marked ERROR event err deprecated (replaced by error)
  • Added LEVEL_PARSING_ERROR to ErrorDetails triggered the playlist parser encounters invalid HLS content (Variable Substitution)
  • Added FRAG_GAP to ErrorDetails triggered when encountering a Segment or Part with a GAP tag or attribute, instead of attempting to load the media marked as unavailable. Error handling will attempt to switch renditions or jump the gap if a suitable replacement is not found.
  • Marked lowBufferWatchdogPeriod as deprecated (implementation missing/removed)
  • Deprecated loading timeout and retry config options in favor of new LoadPolicy options
// deprecated
fragLoadingTimeOut
fragLoadingMaxRetry
fragLoadingRetryDelay
fragLoadingMaxRetryTimeout
manifestLoadingTimeOut
manifestLoadingMaxRetry
manifestLoadingRetryDelay
manifestLoadingMaxRetryTimeout
levelLoadingTimeOut
levelLoadingMaxRetry
levelLoadingRetryDelay
levelLoadingMaxRetryTimeout

The deprecated loading settings will continue to work with warnings. They are replaced by new policy settings for different asset types:

// LoadPolicy options replacing deprecated loading options
fragLoadPolicy: LoadPolicy;
keyLoadPolicy: LoadPolicy;
certLoadPolicy: LoadPolicy;
playlistLoadPolicy: LoadPolicy;
manifestLoadPolicy: LoadPolicy;
steeringManifestLoadPolicy: LoadPolicy {
  default: LoaderConfig = {
    maxTimeToFirstByteMs: number; // Max time to first byte
    maxLoadTimeMs: number; // Max time for load completion
    timeoutRetry: RetryConfig | null;
    errorRetry: RetryConfig | null{
      maxNumRetry: number; // Maximum number of retries
      retryDelayMs: number; // Retry delay = 2^retryCount * retryDelayMs (exponential) or retryCount * retryDelayMs (linear)
      maxRetryDelayMs: number; // Maximum delay between retries
      backoff?: 'exponential' | 'linear'; // used to determine retry backoff duration (see retryDelayMs)
    }
  }
}

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.4.0-beta.1

27 Mar 20:57
8e6efb1
Compare
Choose a tag to compare
v1.4.0-beta.1 Pre-release
Pre-release

Summary

HLS.js v1.4.0-beta.1 is a preview release highlighting Content Steering and error handling improvements coming in version 1.4.

This release includes support for HLS Content Steering, EXT-X-DEFINE Variable Substitution, and preliminary support for GAP tags. An updated build process and packager provides ES module and worker script output with smaller script payloads. It also includes ABR improvements for short segments and LL-HLS Parts, async xhrSetup support, new load policy error handling config options, and other bug fixes and improvements.

Complete List of Changes Since The Last Release

v1.3.5...v1.4.0-beta.1

New Features

Enhancements and Bug Fixes

  • Add playlist RTT and time-to-load given buffer ahead (#5329) @iamboorrito
  • Live reload level switch and error handling improvements (#5317) @robwalch
  • Support partial RENDITION-REPORT URI matches fallback (#5176)
  • Fix current quality reporting when seeking back from edge in Low-Latency streams (#5102) @robwalch
  • Treat TARGETDURATION as a decimal-integer assigned a minimum value of 1 (#5159)
  • Log error and detach if MediaSource 'sourceopen' is interrupted (#5206)
  • Fix for SourceBuffer full error handling (#5332) @robwalch
  • Fix M2TS probing when PAT packet is not found in first three packets (#5252) @robwalch
  • Fix fallback to inline worker when exception is thrown in worker (worker.onerror) (#5270)
  • Fix initPTS change between variants (timescale or basetime change) (#5235)
  • Handle invalid signed "tfdt" decode time values (#5333) @robwalch
  • Add cue id for date-range cues (#5169) @yajin2021
  • Fix subtitle track selection when TextTrack kind is captions (#5297) @dstreet26
  • Cleanup config on destroy since callbacks can have references to the player instance or other objects in their scope (#5279)
  • Switch from netlify to CloudFlare Pages (#5305) @tjenkinson
  • Add ES5 syntax check for UMD builds (#5301) @thornbill
  • Fix demo bandwidth calculation / show estimated bitrate as line in bitrate graph @silltho and @itsjamie
  • Documentation - Add interface for AbrController (#4842) @lpommers
  • Replace ESDocs generated api-docs with api-documenter markdown (#5163)
  • Fix type name error (#5295) @JackPu

Demo Page

https://649613de.hls-js-dev.pages.dev/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

New API Features and Deprecations

Note all deprecations are soft deprecations, meaning that none of the deprecated options or attributes were removed from the runtime player. They will remain available for backwards compatibility until v2.0.

  • Added config.workerPath
  • xhrSetup can optionally return a Promise
  • ERROR Event enhancements:
    • All ERROR events include an error property of type Error which references either a caught exception or an Error object instantiated at the point of failure with a friendly error message
    • Added errorAction property to ERROR events, used by error-controller to resolve errors through retries and adaptive switching
    • Added stats property to ERROR events, used to gather timing information from network errors
    • Marked ERROR event err deprecated (replaced by error)
  • Added LEVEL_PARSING_ERROR to ErrorDetails triggered the playlist parser encounters invalid HLS content (Variable Substitution)
  • Added FRAG_GAP to ErrorDetails triggered when encountering a Segment or Part with a GAP tag or attribute, instead of attempting to load the media marked as unavailable. Error handling will attempt to switch renditions or jump the gap if a suitable replacement is not found.
  • Marked lowBufferWatchdogPeriod as deprecated (implementation missing/removed)
  • Deprecated loading timeout and retry config options in favor of new LoadPolicy options
// deprecated
fragLoadingTimeOut
fragLoadingMaxRetry
fragLoadingRetryDelay
fragLoadingMaxRetryTimeout
manifestLoadingTimeOut
manifestLoadingMaxRetry
manifestLoadingRetryDelay
manifestLoadingMaxRetryTimeout
levelLoadingTimeOut
levelLoadingMaxRetry
levelLoadingRetryDelay
levelLoadingMaxRetryTimeout

The deprecated loading settings will continue to work with warnings. They are replaced by new policy settings for different asset types:

// LoadPolicy options replacing deprecated loading options
fragLoadPolicy: LoadPolicy;
keyLoadPolicy: LoadPolicy;
certLoadPolicy: LoadPolicy;
playlistLoadPolicy: LoadPolicy;
manifestLoadPolicy: LoadPolicy;
steeringManifestLoadPolicy: LoadPolicy {
  default: LoaderConfig = {
    maxTimeToFirstByteMs: number; // Max time to first byte
    maxLoadTimeMs: number; // Max time for load completion
    timeoutRetry: RetryConfig | null;
    errorRetry: RetryConfig | null{
      maxNumRetry: number; // Maximum number of retries
      retryDelayMs: number; // Retry delay = 2^retryCount * retryDelayMs (exponential) or retryCount * retryDelayMs (linear)
      maxRetryDelayMs: number; // Maximum delay between retries
      backoff?: 'exponential' | 'linear'; // used to determine retry backoff duration (see retryDelayMs)
    }
  }
}

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.5

17 Mar 17:47
Compare
Choose a tag to compare

Summary

HLS.js v1.3.5 includes bug fixes and improvements over the last release.

Changes Since The Last Release

  • Do not filter out TextTracks with kind of "captions" from API subtitle track selection (#5297) @dstreet26
    • Fixes #5292 (Tracks with CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog" or "public.accessibility.describes-music-and-sound" not displayed when selected via hls.subtitleTrack = trackIndex)

Full Changelog: v1.3.4...v1.3.5

Demo Page

https://hls-js-b77c99c4-23b8-4ab1-a7d4-6c3dbfaeacd9.netlify.app/demo/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.4

28 Feb 22:14
Compare
Choose a tag to compare

Summary

HLS.js v1.3.4 includes bug fixes and improvements over the last release.

Changes Since The Last Release

  • Fix AES-128 key sharing across playlists (#5255) @yajin2021
  • Fix MPEG-TS probing when PAT and PMT are not present in the first three TS packets (#5252) @robwalch

Full Changelog: v1.3.3...v1.3.4

Demo Page

https://hls-js-73965559-fca4-40e5-9cde-d90859bfc224.netlify.app/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.3

08 Feb 00:15
Compare
Choose a tag to compare

Summary

HLS.js v1.3.3 includes bug fixes and improvements over the last release.

Changes Since The Last Release

v1.3.2...v1.3.3

  • Support AES-128 Encrypted Low-Latency HLS Parts (#5214) @robwalch
  • MPEG-TS probe improvements (#5186) @robwalch
  • Log error if MediaSource 'sourceopen' is interrupted by media.src being changed (#5206) @robwalch

Demo Page

https://hls-js-70cdd25b-ca22-427f-ace4-4ebba9b11dd2.netlify.app/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.2

31 Jan 23:27
9e6e3ba
Compare
Choose a tag to compare

Summary

HLS.js v1.3.2 includes bug fixes and improvements over the last release.

Changes Since The Last Release

v1.3.1...v1.3.2

Demo Page

https://hls-js-9d74a5c2-3291-4a44-abf0-7f63f15151e7.netlify.app/demo/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.1

17 Jan 05:05
5108ae2
Compare
Choose a tag to compare

Summary

HLS.js v1.3.1 includes bug fixes and improvements over the last release.

Changes Since The Last Release

v1.3.0...v1.3.1

Demo Page

https://hls-js-a5d39a35-ea77-4679-a258-b854c8ea6f78.netlify.app/

API and Breaking Changes

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.0

12 Jan 22:05
64eddd5
Compare
Choose a tag to compare

Summary

HLS.js v1.3.0 adds support for FairPlay and PlayReady in addition to improved support for Widevine DRM. Improvements to key loading, key-system selection, key rotation, and error reporting, make HLS.js a robust choice for playing protected content.

Changes Since The Last Release

v1.2.9...v1.3.0

New Features

Bug Fixes and Improvements

  • Parallelize key and segment requests (#4861) @robwalch
  • Manage End of Stream state after flushing buffer (#5131) @robwalch
  • Eagerly match segments without tolerance offset (#5084) @robwalch
  • m3u8-parser: fill missing rendition report attrs (#5110) @erankor
  • Fix: Rendition Report switching with unnormalized relative URLs (#5124) @robwalch
  • Fix Low-Latency HLS next part selection when switching mid segment (#5122) @robwalch
  • Prevent missed software decrypt from skipping MP3 segment timestamp offset from being set (#5142) @robwalch
  • Remove SIDX playlist MAP patching (#5139) @robwalch

Documentation

  • API.md: DRM documentation and FairPlay support improvements (#5117) @robwalch
  • API.md: Clarify when LEVEL_LOADING is not called (#5144) @robwalch
  • release-process.md: Mention that you need to be an admin or maintainer to push version tag (#5137) @tjenkinson
  • README: Add kaltura player to players list (#5125) @giladna
  • README: Added another modern IPTV player example (#5123) @JaroslavHerber

Tasks

Demo Page

https://hls-js-75bc380c-9334-4db4-80bd-c8023729c6f3.netlify.app/

API Changes

See https://github.com/video-dev/hls.js/blob/v1.3.0/docs/API.md for API details and examples.

API additions

  • Added top-level hls.maxHdcpLevel getter-setter

Config changes

  • Added drmSystems for defining key-system specific license urls and certificates
    • drmSystems['com.widevine.alpha'].licenseUrl replaces widevineLicenseUrl (deprecated but still supported)
    • Use optional drmSystems['com.apple.fps'].serverCertificateUrl to specify FairPlay certificate url
    • Use optional drmSystems[KEY-SYSTEM].generateRequest to map initData or generate initData for playlist keys before
      MediaKeySession generateRequest is called
  • drmSystemOptions takes additional optional arguments used for defining MediaKeySystemConfiguration
  • licenseXhrSetup
    • includes additional keyContext and licenseChallenge arguments
    • is optionally async: takes a return value of a Uint8Array, a Promise which resolves with a Uint8Array or undefined (returning a value transforms the licenseChallenge license request body)
  • licenseResponseCallback includes an additional keyContext argument
  • Changes to the integration of EMEController and KeyLoader may impact custom config.emeController implementations
    • A new keyLoader constructor argument has been added to StreamController, AudioStreamController, and SubtitleStreamController via BaseStreamController (this allows all stream controllers to share a common KeyLoader instance)
    • KeyLoader utilizes an instance of EMEController for handling HLS Keys

New Error Event ErrorDetails constants have been added to help with identifying issues when negotiating with CDMs

  • New KEY_SYSTEM_ERROR type error details:
    • KEY_SYSTEM_NO_CONFIGURED_LICENSE Removed KEY_SYSTEM_NO_INIT_DATA from beta.1
    • KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED
    • KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED
    • KEY_SYSTEM_SESSION_UPDATE_FAILED
    • KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED
    • KEY_SYSTEM_STATUS_INTERNAL_ERROR

Event object additions

  • MANIFEST_LOADED event data includes sessionKeys
  • MANIFEST_PARSED event data includes sessionData and sessionKeys
  • KEY_LOADED event data includes keyInfo

Fragment object changes

  • The levelkey property has been replaced by an array: levelkeys
    • (levelkey has been deprecated and will not be supported)

LevelDetails object additions

  • encryptedFragments property has been added (assists in dealing with "clear-lead" streams where initial segments are not encrypted)

If you are upgrading from version v0.14.17 or lower, see the MIGRATING guide for API changes between v0.14.x and v1.0.0.

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.0-beta.2

19 Dec 01:26
9d977b7
Compare
Choose a tag to compare
v1.3.0-beta.2 Pre-release
Pre-release

Summary

HLS.js v1.3.0-beta.2 is a preview release highlighting improved DRM support coming to HLS.js version 1.3.

This release introduces support for FairPlay Streaming with modern EME, PlayReady support, and improved Widevine support.

Changes Since The Last Release

v1.3.0-beta.1...v1.3.0-beta.2

Demo Page

https://hls-js-b4e1fa26-a33d-4724-9f7b-f21b7340aa0c.netlify.app/

API Changes

See https://github.com/video-dev/hls.js/blob/v1.3.0-beta.1/docs/API.md for API details and examples.

Config changes

  • Added drmSystems for defining key-system specific license urls and certificates
    • drmSystems['com.widevine.alpha'].licenseUrl replaces widevineLicenseUrl (deprecated but still supported)
    • Use optional drmSystems['com.apple.fps'].serverCertificateUrl to specify FairPlay certificate url
    • Use optional drmSystems[KEY-SYSTEM].generateRequest to map initData or generate initData for playlist keys before
      MediaKeySession generateRequest is called
  • drmSystemOptions takes additional optional arguments used for defining MediaKeySystemConfiguration
  • licenseXhrSetup
    • includes additional keyContext and licenseChallenge arguments
    • is optionally async: takes a return value of a Uint8Array, a Promise which resolves with a Uint8Array or undefined (returning a value transforms the licenseChallenge license request body)
  • licenseResponseCallback includes an additional keyContext argument
  • Changes to the integration of EMEController and KeyLoader may impact custom config.emeController implementations
    • A new keyLoader constructor argument has been added to StreamController, AudioStreamController, and SubtitleStreamController via BaseStreamController (this allows all stream controllers to share a common KeyLoader instance)
    • KeyLoader utilizes an instance of EMEController for handling HLS Keys

New Error Event ErrorDetails constants have been added to help with identifying issues when negotiating with CDMs

  • New KEY_SYSTEM_ERROR type error details:
    • KEY_SYSTEM_NO_CONFIGURED_LICENSE Removed KEY_SYSTEM_NO_INIT_DATA from beta.1
    • KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED
    • KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED
    • KEY_SYSTEM_SESSION_UPDATE_FAILED
    • KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED
    • KEY_SYSTEM_STATUS_INTERNAL_ERROR

Event object additions

  • MANIFEST_LOADED event data includes sessionKeys
  • MANIFEST_PARSED event data includes sessionData and sessionKeys
  • KEY_LOADED event data includes keyInfo

Fragment object changes

  • The levelkey property has been replaced by an array: levelkeys
    • (levelkey has been deprecated and will not be supported)

LevelDetails object additions

  • encryptedFragments property has been added (assists in dealing with "clear-lead" streams where initial segments are not encrypted)

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.

v1.3.0-beta.1

15 Dec 22:36
800c35f
Compare
Choose a tag to compare
v1.3.0-beta.1 Pre-release
Pre-release

Summary

HLS.js v1.3.0-beta.1 is a preview release highlighting improved DRM support coming to HLS.js version 1.3.

This release introduces support for FairPlay Streaming with modern EME, PlayReady support, and improved Widevine support.

Changes Since The Last Release

v1.2.9...v1.3.0-beta.1

Demo Page

https://hls-js-b1cb1eb0-2e11-40ac-808b-56bf07ffda6a.netlify.app/demo/

API Changes

See https://github.com/video-dev/hls.js/blob/v1.3.0-beta.1/docs/API.md for API details and examples.

Config changes

  • Added drmSystems for defining key-system specific license urls and certificates
    • drmSystems['com.widevine.alpha'].licenseUrl replaces widevineLicenseUrl (deprecated but still supported)
  • drmSystemOptions takes additional optional arguments used for defining MediaKeySystemConfiguration
  • licenseXhrSetup
    • includes additional keyContext and licenseChallenge arguments
    • is optionally async: takes a return value of a Uint8Array, a Promise which resolves with a Uint8Array or undefined (returning a value transforms the licenseChallenge license request body)
  • licenseResponseCallback includes an additional keyContext argument
  • Changes to the integration of EMEController and KeyLoader may impact custom config.emeController implementations
    • A new keyLoader constructor argument has been added to StreamController, AudioStreamController, and SubtitleStreamController via BaseStreamController (this allows all stream controllers to share a common KeyLoader instance)
    • KeyLoader utilizes an instance of EMEController for handling HLS Keys

New Error Event ErrorDetails constants have been added to help with identifying issues when negotiating with CDMs

  • New KEY_SYSTEM_ERROR type error details:
    • KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED
    • KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED
    • KEY_SYSTEM_NO_INIT_DATA
    • KEY_SYSTEM_SESSION_UPDATE_FAILED
    • KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED
    • KEY_SYSTEM_STATUS_INTERNAL_ERROR

Event object additions

  • MANIFEST_LOADED event data includes sessionKeys
  • MANIFEST_PARSED event data includes sessionData and sessionKeys
  • KEY_LOADED event data includes keyInfo

Fragment object changes

  • The levelkey property has been replaced by an array: levelkeys
    • (levelkey has been deprecated and will not be supported)

LevelDetails object additions

  • encryptedFragments property has been added (assists in dealing with "clear-lead" streams where initial segments are not encrypted)

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.