-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HLS Interstitials Support #5730
Comments
I noticed the video element requires the When the |
Hi Matthias, Thanks for noticing that. HLS.js should maintain playback state between Interstitial controller/asset-player attach/detach - added to the "Known Issues" in #6591. Feel free to comment directly on PR wrt to the current implementation. Update: resolved with e1e515a |
Is your feature request related to a problem? Please describe.
The HLS Spec defines interstitial content scheduling via EXT-X-DATERANGE Schema for Interstitials:
https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#appendix-D
Describe the solution you'd like
HLS.js should support scheduling and playback of Interstitial content by the best means available.
Since HLS.js is designed to handle a single HLS asset via an HTMLMediaElement with a single static timeline, it stands to reason that Interstitial playback will require multiple Hls(js) player instances, and one or more HTMLMediaElements.
Additional context
In addition to the EXT-X-DATERANGE Schema for Interstitials, EXT-X-DATERANGE also defines an optional CUE attribute (formerly X-CUE). This attribute specifies whether a DateRange is to be triggered as pre-roll, post-roll, or on START-DATE (mid-roll). It also can indicate that the action should only be triggered once.
TextTrack cues created by HLS.js are always placed according to the start date and duration of DateRanges. CUE and X-SNAP attributes may be considered as modifiers for this behavior.
Interstitial events and scheduling APIs should have cue and snap rules applied to their timing, while still providing access to the original DateRange objects and their attributes. If the program is expected to play using a single media element, without resetting between primary and interstitial items, the timeline of that element will dictate how Interstitial durations and resume offsets impact the timing of primary content segments, metadata on that timeline, and the timing of subsequent Interstitials.
Functional Requirements
config.InterstitialController = null
)ErrorDetails
enums for Interstitial related network and parsing errors:Development Plan (Overview)
The text was updated successfully, but these errors were encountered: