Interstitials

  • 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
    • Currently lacks wide support across playback environments
    • 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)