Interstitials
Main.Interstitials History
Hide minor edits - Show changes to output
Added lines 1-27:
* Overview of HLS Interstitials (led by Rob Walch)
* Specification: https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#appendix-D
* Primary Purpose: Inserts ads and other breaks/secondary content into primary content
* How it works:
* Points to secondary assets in date range
* This allows content to potentially vary without changing the primary content’s media playlists (aka caching considerations)
* This also sidesteps spec-complaint constraints on encoding of secondary content
* Specifies when to play content & resume
* Concern/Complication:
* Limitation - SSAI + Ad blockers (easier to detect)
* “play once” vs. “play every time” introduces unstable timeline when Interstitials are expected to occupy primary content timeline (doesn't map to HTMLMediaElement one time / stable timeline model)
* No official interop with MPEG-DASH, leading to potential fragmentation
* Possible options discussed: using xlink, using multi-period
* Related github issue: https://github.com/Dash-Industry-Forum/AdInsertion/issues/83
* Currently lacks wide support across playback environments
* AVPlayer/AVFoundation has reasonable support (see: https://developer.apple.com/documentation/avkit/working_with_interstitial_content)
* Hls.js has planned support upcoming (see: https://github.com/video-dev/hls.js/issues/5730)
* Most (all?) other players or playback environments do not have any support
* NOTE: This includes native browser playback in Safari
* Implication: Using interstitials as, e.g., an ad insertion solution won’t currently work for most folks because it’s not universal enough (yet!)
* Uncertain about level of support across common packagers, but general sentiment is that it’s minimal at best
* Related concern: even as packagers implement, there may not be consistency in the details of interstitial packaging
* How should browsers handle Interstitials support?
* Concern: Timelines/duration/etc.
* Based on the spec, an HTMLMediaElement would not be guaranteed to “know” the total duration (and e.g. corresponding seekable start/end) of primary content + interstitials at the time of e.g. loaded metadata.
* Given the complexities this introduces, any final solution should keep the primary content duration distinct from any interstitial content duration
* After discussion w/Jer Noble and informal vote, any solution will likely need the HTMLMediaElement to “own” any API that will facilitate interstitials (or at least part of it)
* Specification: https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#appendix-D
* Primary Purpose: Inserts ads and other breaks/secondary content into primary content
* How it works:
* Points to secondary assets in date range
* This allows content to potentially vary without changing the primary content’s media playlists (aka caching considerations)
* This also sidesteps spec-complaint constraints on encoding of secondary content
* Specifies when to play content & resume
* Concern/Complication:
* Limitation - SSAI + Ad blockers (easier to detect)
* “play once” vs. “play every time” introduces unstable timeline when Interstitials are expected to occupy primary content timeline (doesn't map to HTMLMediaElement one time / stable timeline model)
* No official interop with MPEG-DASH, leading to potential fragmentation
* Possible options discussed: using xlink, using multi-period
* Related github issue: https://github.com/Dash-Industry-Forum/AdInsertion/issues/83
* Currently lacks wide support across playback environments
* AVPlayer/AVFoundation has reasonable support (see: https://developer.apple.com/documentation/avkit/working_with_interstitial_content)
* Hls.js has planned support upcoming (see: https://github.com/video-dev/hls.js/issues/5730)
* Most (all?) other players or playback environments do not have any support
* NOTE: This includes native browser playback in Safari
* Implication: Using interstitials as, e.g., an ad insertion solution won’t currently work for most folks because it’s not universal enough (yet!)
* Uncertain about level of support across common packagers, but general sentiment is that it’s minimal at best
* Related concern: even as packagers implement, there may not be consistency in the details of interstitial packaging
* How should browsers handle Interstitials support?
* Concern: Timelines/duration/etc.
* Based on the spec, an HTMLMediaElement would not be guaranteed to “know” the total duration (and e.g. corresponding seekable start/end) of primary content + interstitials at the time of e.g. loaded metadata.
* Given the complexities this introduces, any final solution should keep the primary content duration distinct from any interstitial content duration
* After discussion w/Jer Noble and informal vote, any solution will likely need the HTMLMediaElement to “own” any API that will facilitate interstitials (or at least part of it)