Hls.js Versions Save

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

v1.5.0-beta.3

4 months ago

Summary

HLS.js v1.5.0-beta.3 includes bug fixes and improvements over the last release.

Changes Since v1.5.0-beta.2

https://github.com/video-dev/hls.js/compare/v1.5.0-beta.2...v1.5.0-beta.3

  • Fixed ID3 Decoding On Play Station 4 (#6042) @agajassi
  • Fixed (latency-controller) only sync live stream (#5604) @FredZeng
  • Store deployments in json file, and generate md and txt file from that (#6044) @tjenkinson
  • Use addEventListener for MediaKeySession events (#6030) @robwalch
  • Fix handling of the DATERANGE END-ON-NEXT attribute (#6038)
  • Ignore #EXT-X-INDEPENDENT-SEGMENTS (#6047)

Demo Page

https://04777092.hls-js-dev.pages.dev/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.5.0-beta.2

5 months ago

Summary

HLS.js v1.5.0-beta.2 includes bug fixes and improvements over the last release.

Changes Since v1.5.0-beta.1

https://github.com/video-dev/hls.js/compare/v1.5.0-beta.1...v1.5.0-beta.2

  • Fixed esds box parsing (#6019) @robwalch
  • Added polyfill for isSafeInteger (#6022)
  • ID3 TextTrack Cue fixes for PlayStation4 (#6021)
  • Updated CMCD dependency @svta/common-media-library to v0.6.0 (#6024)

Known Issues

  • EME "license-request" message missed on LG2019 after mediaKeysSession.generateRequest resolved (#6034)

Demo Page

https://898bc592.hls-js-dev.pages.dev/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.4.13

5 months ago

Summary

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

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.12...v1.4.13

  • Cherry-picked fixes (#6023) @robwalch
    • Remove use of deprecated WebKitDataCue and hand Cue instantiation and custom property setting errors (b7d9d99) (Fixes #6020 ID3 Are Not Getting Processed On PlayStation4)
    • Add polyfill for isSafeInteger (e0d2692)

Demo Page

https://16f1932e.hls-js-dev.pages.dev/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.5.0-beta.1

5 months ago

Summary

HLS.js v1.5.0-beta.1 includes playback and API enhancements targeted at supporting HLS assets containing HDR video variants and multi-channel audio renditions.

Changes Since v1.5.0-alpha.1

https://github.com/video-dev/hls.js/compare/v1.5.0-alpha.1...v1.5.0-beta.1

  • API enhancements for audio and subtitle selection (#5978) @robwalch
  • HDR/SDR VIDEO-RANGE selection and priority (#6007)
  • Expand isSupported check to allow alternative codecs (#6006)
  • Use named exports in ESM output (#5930)
  • Fixed issues parsing sei_messages (#5998) @jcekstrom
  • Fixed issues with long cea608 captions (#5953) @jcekstrom
  • Fixed regression in dev with CEA608 parser setup (#5986) @robwalch
  • Refactor CMCD controller and tests to use the common media library utilities (#5903) @littlespex
  • Use Content Steering Pathways to manage Redundant Streams (#5970) @robwalch
  • Fixed detach attach behavior dropping one of two SourceBuffers (#5974)
  • Remove the use of self from enableLogger (#5936)
  • Check ManagedMediaSource removedRanges length on "bufferedchange" event (#5915)
  • Upgrade to Rollup 4 (#5886) @tjenkinson
  • Configure typescript, eslint, and prettier caches (#5990)
  • Update karma-rollup-preprocessor to the version that works in watch mode (#5991)

Changes Since The Last Release (v1.4.12)

https://github.com/video-dev/hls.js/compare/v1.4.12...v1.5.0-beta.1

API Enhancements

  • Named exports for all classes and enums are available in ESM output (#5930)
  • Rendition selection enhancements (#5704)
    • HLS.js will no longer start on the first variant (hls.firstLevel), or any variant of a preferred codec, if its BANDWIDTH exceeds abrEwmaDefaultEstimateMax.
    • Added hls.firstAutoLevel getter, used internally to get the starting level index. hls.levels are sorted on height, frame rate, preferred codec, and video-range to infer order by quality. Height-first sorting allows cap-level-lontroller to set a max quality index at the maximum allowed resolution.
    • Added getters for all audio tracks and all subtitle tracks: hls.allAudioTracks and hls.allSubtitleTracks
  • API enhancements for audio and subtitle selection (#5978)
    • hls.setAudioOption() and config.audioPreference have been added to simplify audio selection based on user preferences and playback settings
    • hls.setSubtitleOption() and config.subtitlePreference have been added to simplify subtitle selection based on user preferences and playback settings. Only subtitle media options (hls.allSubtitleTracks) are subject to selection criteria. Captions are either assigned a TextTrack or emitted through events when native rendering is disabled.
  • config.videoPreference.preferHDR and preferHDR have been added to override the default SDR/HDR selection behavior
  • Base initial bandwidth estimate on first level bitrate #5649
    • Added setter for bandwidthEstimate that resets estimator to new starting value
  • Initial selection and level filtering based on preferred codecs and MediaCapabilities #5704
    • Added config.useMediaCapabilities (defaults to true)
    • Set config.useMediaCapabilities to false to disable the use of MediaCapabilities.decodingInfo
  • isSupported() has been expanded to test alternate baseline codecs (#6006)
    • Added isMSESupported(), a subroutine of isSupported(), checks for MediaSource API without isTypeSupported checks.
    • Added getMediaSource() which returns the preferred MSE interface or undefined when unavailable
    • Added named exports for isSupported, isMSESupported, and getMediaSource
  • Fire STEERING_MANIFEST_LOADED event when loading a Content Steering Manifest (#5417) @guillemcabrera
  • Added config flag for maximum front buffer frontBufferFlushThreshold (#5761) @iamboorrito
  • Implement event for maxAutoLevel change #5763
  • Specify custom shouldRetry predicate in retryConfig (#5658) @PavelFomin90 (completed in #5762)
  • Default estimate enhancements #5649
    • Added config.abrEwmaDefaultEstimateMax option which limits how high default value can be adjusted to. Separate peak and average bitrates of Level objects
  • Level properties
    • Level.bitrate uses variant BANDWIDTH (required peak bitrate) before falling back to optional AVERAGE-BANDWIDTH.
    • Level.averageBitrate returns parsed AVERAGE-BANDWIDTH. Falls back to runtime average Level.realBitrate (which is only set when config.abrMaxWithRealBitrate is enabled) and finally Level.bitrate (BANDWIDTH).
    • Added Level.frameRate returns parsed FRAME-RATE number or 0.
    • Added Level.codecs returns parsed CODECS or emptry string.
    • Added Level.score returns parsed SCORE number or 0.

Codec Support

  • Added codec string parsing for h264, h265, and mp4a (#4996) @uvjustin
  • MP4 Sample Description ("stsd") CODEC Parsing (#5528)
  • Added hevc decoder configuration parser (890fae30) @fogarasyroland
  • Added FLAC support (#4772) @jprjr
  • Added support for AC-3 codec in MPEG-TS (#5167) @erankor
  • Added AC3 file support and exclude AC3 parsing from hls.light builds (#5562) @robwalch
  • Added support for AC-3 audio in DVB streams (#5636) @softworkz
  • Prepare for Supporting Additional Video Codecs (#5634) @softworkz

iOS 17.1 Support

  • ManagedMediaSource Support (#5542) @robwalch

Live Streaming Bug Fixes

  • Fixed Low-Latency HLS directives skipping part 0 @jhonalino in #5714
  • Fixed support of skip directive without block reload (#5791) @robwalch
  • Fixed live frag finding after detach and re-attach past live window (#5742)
  • Handle #EXT-X-ENDLIST appended to live playlist without new segment (#5778)

Captions, Subtitles, and Metadata Bug Fixes

  • Clear CEA-608 captions on discontinuity (#5557)
  • Fixed DateRange metadata cue duration with ID3 cues that overlap (#5546)
  • Use input timescale when remuxing inband captions (#5675)

Bug Fixes (Misc)

  • Filter variants with any unsupported codecs (#5533) @robwalch
  • Fixed two AV1 parsing issues (#5774) @nyanmisaka
  • Push AUD units to fix decode errors with some TS segments (#5696) @robwalch
  • Fail MP3 probe if AC3 or EC3 detected (#5695)
  • Prevent ADTS probe false positives when bytes following ID3 are a match for MPEG audio (#5783)
  • Reset init segment when M2TS video configuration changes (#5794)
  • Fixed capLevelToPlayerSize after hiding player and maintain stable selection when aspect ratio changes (#5614)
  • Fixed handling of segments at the discontinuities that do not start with a keyframe (#5659)
  • Fixed AC3 PES parsing (#5673) @softworkz
  • Fixed issue #5632, where missing AUD units for keyframes causes them to be merged with their preceding frame (#5652) @Thulinma
  • Fixed Safari decode errors with DTS not increasing when PTS decreases (#5710) @robwalch
  • Fixed PlayReady DRM in Edge browser (#5699) @mikrohard
  • Do not jump start gaps when paused (#5502) @robwalch
  • Never back-track on first fragment to avoid loop loading (#5613)
  • Use last discontinuity bounds when aligning playlists on PDT (#5681)
  • Load last alt-audio segment even when is starts after the end of the main playlist (#5717)
  • Do not exit from stall detection when playhead is at or past end of buffer (#5779)
  • Error and switch on SourceBuffer append requests for non-existing tracks (#5485)
  • Handle mixed sourcebuffer errors (#5623)
  • Remove SourceBuffers on "updateend" when MediaSource is closed (#5731)
  • Resume fragment loading after level switch follows level error (#5537)
  • Prevent recursion in error event handlers that throw (#5549)
  • Reset loading start on worker setup error (#5620)

Minor Enhancements

  • Lazy init CEA608 parsers (#5689) @robwalch
  • Improve buffer-controller logging (#5548)
  • Do not modify fmp4 bytes when there is no offset (#5780)

Typescript Improvements

  • Correcting usage of extended generic type LoaderContext in type Loader (#5494) @lvnam96
  • Make loader context nullable and cleanup loader cleanup (#5552) @robwalch

Demo Page Enhancements

  • Added playsInline to video elements on demo pages (#5556) @tjenkinson

Documentation

  • Added additional documentation for workerPath config (#5765) @mogzol

Project and CI

  • Upgrade to Rollup 4 (#5886) @tjenkinson
  • Configure typescript, eslint and prettier caches (#5990)
  • Update karma-rollup-preprocessor to version that works in watch mode (#5991)
  • Update question.yaml template description (#5591) @robwalch
  • Added Visual Studio Exclusions to .gitignore (#5635) @softworkz

Demo Page

https://c2e375b8.hls-js-dev.pages.dev/demo/

Feedback

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

v1.5.0-alpha.1

6 months ago

Summary

HLS.js v1.5.0-alpha.1 includes bug fixes and improvements over the last release.

Changes Since v1.5.0-alpha.0

https://github.com/video-dev/hls.js/compare/v1.5.0-alpha.0...v1.5.0-alpha.1

  • Redundant Stream grouping enhancements and orphaned audio/subtitle option fixes (#5855) @robwalch
    • Fixes #5302 reported by @syedThowfeeqAhmed
  • Fix subtitle track selection when reusing media element with mismatched TextTracks (#5880) @robwalch
    • Fixes #4571 reported by @SivanA-Kaltura
  • Exit gracefully when switching to an audio group with no tracks (#5822) @robwalch
    • Fixes #4602 reported by @connected-salmouaswas
  • Skip large video start gaps using GAP flag (#5816) @robwalch
    • Fixes #4975 reported by @sailor
  • Bugfix: Reset gap-controller nudgeRetry (#5879) @robwalch
    • Fixes #5904 reported by @konogousanda
  • Fix audio codec alternate error fallback (#5848) @robwalch
    • Fixes #4958 reported by @adis0308
  • Fix for aligning live alt audio and subtitle playlists on msn without PDT (#5818) @robwalch
    • Fixes #5802 reported by @wise-kim-vr
  • Fix regression in M2TS probe introduced in #5503 (#5858) @robwalch
    • Fixes #5857 reported by @zsokami
  • MP4Demuxer probe fix for large "emsg" payloads (#5852) @robwalch (reported by @nicoweilelemental)
  • Fix DATERANGE parser handling of clientAttrs property (#5891) @robwalch
  • Support #EXT-X-BYTERANGE before #EXT-X-MAP tag (#5850) @robwalch
  • Adjust m2ts sample times to fix gaps in appended media (#5806) @robwalch (partial fix for #5631 reported by @tvinko)
  • Adjust overlapping M2TS AVC timestamps of sample that overlap with previous segment (#5805) @robwalch
    • Fixes #4470 reported by @Vladislavik and root-cause aspects of #5759 reported by @bes
  • Switch on smaller fmp4 segments that align with buffered segment boundaries (#5804) @robwalch
    • Fixes #5743 reported by @sgbai78
  • SourceBuffer controller cleanup (#5911) @robwalch

Documentation

  • API docs: add more info around backBufferLength (#5841, #5842) @cmugla
  • Add preferManagedMediaSource API.md doc entry for ManagedMediaSource usage (#5828) @robwalch

Project and CI

  • Use concurrency instead of cancel-workflow-action (#5885) @tjenkinson
  • Fix http-server path in package.json (#5574) @cellinlab

Changes Since The Last Release (v1.4.12)

https://github.com/video-dev/hls.js/compare/v1.4.12...v1.5.0-alpha.0

Codec Support

  • Add codec string parsing for h264, h265, and mp4a (#4996) @uvjustin
  • MP4 Sample Description ("stsd") CODEC Parsing by @robwalch in #5528
  • Add hevc decoder configuration parser (890fae30) @fogarasyroland
  • Add FLAC support by @jprjr in #4772
  • Add support for AC-3 codec in MPEG-TS by @erankor in #5167
  • Add AC3 file support and exclude AC3 parsing from hls.light builds by @robwalch in #5562
  • Add support for AC-3 audio in DVB streams by @softworkz in #5636
  • Prepare for Supporting Additional Video Codecs by @softworkz in #5634

Preferred Codec Selection

  • Base initial bandwidth estimate on first level bitrate by @robwalch in #5649
  • Initial selection and level filtering based on preferred codecs and MediaCapabilities by @robwalch in #5704

MSE on iPhone

  • ManagedMediaSource Support by @robwalch in #5542

API Enhancements

  • Fire STEERING_MANIFEST_LOADED event when loading a Content Steering Manifest by @guillemcabrera in #5417
  • Add config flag for maximum front buffer frontBufferFlushThreshold by @iamboorrito in #5761
  • Implement event for maxAutoLevel change by @robwalch in #5763
  • Specify custom shouldRetry predicate in retryConfig by @PavelFomin90 in #5658 (completed in #5762)
  • Default estimate enhancements #5649
    • Add config.abrEwmaDefaultEstimateMax option which limits how high default value can be adjusted to. Separate peak and average bitrates of Level objects
  • Rendition selection enhancements #5704
    • HLS.js will no longer start on the first variant (hls.firstLevel), or any variant of a preferred codec, if its BANDWIDTH exceeds abrEwmaDefaultEstimateMax.
    • Add hls.firstAutoLevel getter, used internally to get the starting level index. hls.levels are sorted on height, frame rate, preferred codec, and video-range to infer order by quality. Height-first sorting allows cap-level-lontroller to set a max quality index at the maximum allowed resolution.
    • Add getters for all audio tracks and all subtitle tracks: hls.allAudioTracks and hls.allSubtitleTracks
  • Level properties
    • Level.bitrate uses variant BANDWIDTH (required peak bitrate) before falling back to optional AVERAGE-BANDWIDTH.
    • Level.averageBitrate returns parsed AVERAGE-BANDWIDTH. Falls back to runtime average Level.realBitrate (which is only set when config.abrMaxWithRealBitrate is enabled) and finally Level.bitrate (BANDWIDTH).
    • Added Level.frameRate returns parsed FRAME-RATE number or 0.
    • Added Level.codecs returns parsed CODECS or emptry string.
    • Added Level.score returns parsed SCORE number or 0.

Live Streaming Bug Fixes

  • Fix Low-Latency HLS directives skipping part 0 @jhonalino in #5714
  • Fix support of skip directive without block reload by @robwalch in #5791
  • Fix live frag finding after detach and re-attach past live window by @robwalch in #5742
  • Handle #EXT-X-ENDLIST appended to live playlist without new segment by @robwalch in #5778

Captions, Subtitles, and Metadata Bug Fixes

  • Clear CEA-608 captions on discontinuity by @robwalch in #5557
  • Fix DateRange metadata cue duration with ID3 cues that overlap by @robwalch in #5546
  • Use input timescale when remuxing inband captions by @robwalch in #5675

Bug Fixes (Misc)

  • Filter variants with any unsupported codecs by @robwalch in #5533
  • Fix two AV1 parsing issues by @nyanmisaka in #5774
  • Push AUD units to fix decode errors with some TS segments by @robwalch in #5696
  • Fail MP3 probe if AC3 or EC3 detected by @robwalch in #5695
  • Prevent ADTS probe false positives when bytes following ID3 are a match for MPEG audio by @robwalch in #5783
  • Reset init segment when M2TS video configuration changes by @robwalch in #5794
  • Fix capLevelToPlayerSize after hiding player and maintain stable selection when aspect ratio changes by @robwalch in #5614
  • Fix handling of segments at the discontinuities that do not start with a keyframe by @robwalch in #5659
  • Fix AC3 PES parsing by @softworkz in #5673
  • Fix issue #5632, where missing AUD units for keyframes causes them to be merged with their preceding frame by @Thulinma in #5652
  • Fix Safari decode errors with DTS not increasing when PTS decreases by @robwalch in #5710
  • Fix PlayReady DRM in Edge browser by @mikrohard in #5699
  • Do not jump start gaps when paused by @robwalch in #5502
  • Never back-track on first fragment to avoid loop loading by @robwalch in #5613
  • Use last discontinuity bounds when aligning playlists on PDT by @robwalch in #5681
  • Load last alt-audio segment even when is starts after the end of the main playlist by @robwalch in #5717
  • Do not exit from stall detection when playhead is at or past end of buffer by @robwalch in #5779
  • Error and switch on SourceBuffer append requests for non-existing tracks by @robwalch in #5485
  • Handle mixed sourcebuffer errors by @robwalch in #5623
  • Remove SourceBuffers on "updateend" when MediaSource is closed by @robwalch in #5731
  • Resume fragment loading after level switch follows level error by @robwalch in #5537
  • Prevent recursion in error event handlers that throw by @robwalch in #5549
  • Reset loading start on worker setup error by @robwalch in #5620

Minor Enhancements

  • Lazy init CEA608 parsers by @robwalch in #5689
  • Improve buffer-controller logging by @robwalch in #5548
  • Do not modify fmp4 bytes when there is no offset by @robwalch in #5780

Typescript Improvements

  • Correcting usage of extended generic type LoaderContext in type Loader (#5487) by @lvnam96 in #5494
  • Make loader context nullable and cleanup loader cleanup by @robwalch in #5552

Demo Page

  • add playsInline to video elements on demo pages by @tjenkinson in #5556

Documentation

  • Add additional documentation for workerPath config by @mogzol in #5765

Project and CI

  • Update question.yaml template description by @robwalch in #5591
  • Add Visual Studio Exclusions to .gitignore by @softworkz in #5635

New Contributors

  • @guillemcabrera made their first contribution in #5417
  • @lvnam96 made their first contribution in #5494
  • @PavelFomin90 made their first contribution in #5658
  • @jhonalino made their first contribution in #5714
  • @mogzol made their first contribution in #5765
  • @nyanmisaka made their first contribution in #5774

Demo Page

https://eb50102f.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.

Feedback

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

v1.5.0-alpha.0

7 months ago

Summary

HLS.js v1.5.0-alpha.0 is an early preview of v1.5.0. It is not feature complete. Unresolved issues are tracked via the v1.5.0 milestone.

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.12...v1.5.0-alpha.0

Codec Support

  • Add codec string parsing for h264, h265, and mp4a (#4996) @uvjustin
  • MP4 Sample Description ("stsd") CODEC Parsing by @robwalch in #5528
  • Add hevc decoder configuration parser (890fae30) @fogarasyroland
  • Add FLAC support by @jprjr in #4772
  • Add support for AC-3 codec in MPEG-TS by @erankor in #5167
  • Add AC3 file support and exclude AC3 parsing from hls.light builds by @robwalch in #5562
  • Add support for AC-3 audio in DVB streams by @softworkz in #5636
  • Prepare for Supporting Additional Video Codecs by @softworkz in #5634

Preferred Codec Selection

  • Base initial bandwidth estimate on first level bitrate by @robwalch in #5649
  • Initial selection and level filtering based on preferred codecs and MediaCapabilities by @robwalch in #5704

MSE on iPhone

  • ManagedMediaSource Support by @robwalch in #5542

API Enhancements

  • Fire STEERING_MANIFEST_LOADED event when loading a Content Steering Manifest by @guillemcabrera in #5417
  • Add config flag for maximum front buffer frontBufferFlushThreshold by @iamboorrito in #5761
  • Implement event for maxAutoLevel change by @robwalch in #5763
  • Specify custom shouldRetry predicate in retryConfig by @PavelFomin90 in #5658 (completed in #5762)
  • Default estimate enhancements #5649
    • Add config.abrEwmaDefaultEstimateMax option which limits how high default value can be adjusted to. Separate peak and average bitrates of Level objects
  • Rendition selection enhancements #5704
    • HLS.js will no longer start on the first variant (hls.firstLevel), or any variant of a preferred codec, if its BANDWIDTH exceeds abrEwmaDefaultEstimateMax.
    • Add hls.firstAutoLevel getter, used internally to get the starting level index. hls.levels are sorted on height, frame rate, preferred codec, and video-range to infer order by quality. Height-first sorting allows cap-level-lontroller to set a max quality index at the maximum allowed resolution.
    • Add getters for all audio tracks and all subtitle tracks: hls.allAudioTracks and hls.allSubtitleTracks
  • Level properties
    • Level.bitrate uses variant BANDWIDTH (required peak bitrate) before falling back to optional AVERAGE-BANDWIDTH.
    • Level.averageBitrate returns parsed AVERAGE-BANDWIDTH. Falls back to runtime average Level.realBitrate (which is only set when config.abrMaxWithRealBitrate is enabled) and finally Level.bitrate (BANDWIDTH).
    • Added Level.frameRate returns parsed FRAME-RATE number or 0.
    • Added Level.codecs returns parsed CODECS or emptry string.
    • Added Level.score returns parsed SCORE number or 0.

Live Streaming Bug Fixes

  • Fix Low-Latency HLS directives skipping part 0 @jhonalino in #5714
  • Fix support of skip directive without block reload by @robwalch in #5791
  • Fix live frag finding after detach and re-attach past live window by @robwalch in #5742
  • Handle #EXT-X-ENDLIST appended to live playlist without new segment by @robwalch in #5778

Captions, Subtitles, and Metadata Bug Fixes

  • Clear CEA-608 captions on discontinuity by @robwalch in #5557
  • Fix DateRange metadata cue duration with ID3 cues that overlap by @robwalch in #5546
  • Use input timescale when remuxing inband captions by @robwalch in #5675

Bug Fixes (Misc)

  • Filter variants with any unsupported codecs by @robwalch in #5533
  • Fix two AV1 parsing issues by @nyanmisaka in #5774
  • Push AUD units to fix decode errors with some TS segments by @robwalch in #5696
  • Fail MP3 probe if AC3 or EC3 detected by @robwalch in #5695
  • Prevent ADTS probe false positives when bytes following ID3 are a match for MPEG audio by @robwalch in #5783
  • Reset init segment when M2TS video configuration changes by @robwalch in #5794
  • Fix capLevelToPlayerSize after hiding player and maintain stable selection when aspect ratio changes by @robwalch in #5614
  • Fix handling of segments at the discontinuities that do not start with a keyframe by @robwalch in #5659
  • Fix AC3 PES parsing by @softworkz in #5673
  • Fix issue #5632, where missing AUD units for keyframes causes them to be merged with their preceding frame by @Thulinma in #5652
  • Fix Safari decode errors with DTS not increasing when PTS decreases by @robwalch in #5710
  • Fix PlayReady DRM in Edge browser by @mikrohard in #5699
  • Do not jump start gaps when paused by @robwalch in #5502
  • Never back-track on first fragment to avoid loop loading by @robwalch in #5613
  • Use last discontinuity bounds when aligning playlists on PDT by @robwalch in #5681
  • Load last alt-audio segment even when is starts after the end of the main playlist by @robwalch in #5717
  • Do not exit from stall detection when playhead is at or past end of buffer by @robwalch in #5779
  • Error and switch on SourceBuffer append requests for non-existing tracks by @robwalch in #5485
  • Handle mixed sourcebuffer errors by @robwalch in #5623
  • Remove SourceBuffers on "updateend" when MediaSource is closed by @robwalch in #5731
  • Resume fragment loading after level switch follows level error by @robwalch in #5537
  • Prevent recursion in error event handlers that throw by @robwalch in #5549
  • Reset loading start on worker setup error by @robwalch in #5620

Minor Enhancements

  • Lazy init CEA608 parsers by @robwalch in #5689
  • Improve buffer-controller logging by @robwalch in #5548
  • Do not modify fmp4 bytes when there is no offset by @robwalch in #5780

Typescript Improvements

  • Correcting usage of extended generic type LoaderContext in type Loader (#5487) by @lvnam96 in #5494
  • Make loader context nullable and cleanup loader cleanup by @robwalch in #5552

Demo Page

  • add playsInline to video elements on demo pages by @tjenkinson in #5556

Documentation

  • Add additional documentation for workerPath config by @mogzol in #5765

Project and CI

  • Update question.yaml template description by @robwalch in #5591
  • Add Visual Studio Exclusions to .gitignore by @softworkz in #5635

New Contributors

  • @guillemcabrera made their first contribution in #5417
  • @lvnam96 made their first contribution in #5494
  • @PavelFomin90 made their first contribution in #5658
  • @jhonalino made their first contribution in #5714
  • @mogzol made their first contribution in #5765
  • @nyanmisaka made their first contribution in #5774

Demo Page

https://eb50102f.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.

Feedback

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

v1.4.12

8 months ago

Summary

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

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.11...v1.4.12

  • Fix support of skip directive without block reload (#5791)

Demo Page

https://6fd26b8d.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.

Feedback

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

v1.4.11

8 months ago

Summary

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

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.10...v1.4.11

  • Merge bugfix/live-append-only-endlist into patch v1.4.x branch (#5785) @semarche-kaltura (Fixes Live to VOD transition when ENDLIST is appended without a new Segment EXTINF)

Demo Page

https://324bd619.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.

Feedback

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

v1.4.10

9 months ago

Summary

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

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.9...v1.4.10

  • Allow the odd empty segment to be skipped like a gap segment (#5676) @robwalch
    • Resolves #5674 reported by @willdharris
  • Use input timescale when remuxing inband captions (#5675) @robwalch
    • Resolves #5669 reported by @pauarge

Demo Page

https://7933f840.hls-js-dev.pages.dev/

Feedback

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

v1.4.9

9 months ago

Summary

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

Changes Since The Last Release

https://github.com/video-dev/hls.js/compare/v1.4.8...v1.4.9

  • Fixed PIPELINE_ERROR_DECODE: VDA Error 4 caused by missing AUD units for keyframes in MP2TS (#5660) @Thulinma
    • Resolves #5632 reported by @iameli
  • Fixed handling of segments at the discontinuities that do not start with a keyframe (#5659) @robwalch
    • Resolves #5629 reported by @mattzucker

Demo Page

https://ca19d1f5.hls-js-dev.pages.dev/demo/

Feedback

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