Subject: Re: [Hls-interest] Streaming Video Alliance Comments on HLS Content Steering Proposals

From: "Goldstein, Glenn" <[email-masked]>
Date: Mon, 12 Apr 2021 15:17:06 +0000

As a reminder the Redundant Stream Steering Proposal (RSS) can be found here, and is summarized below:
https://docs.google.com/document/d/1f4_9hU_4DXPiKusF1QMUX3OY2DRbYnEWimGcj7T1-ZE/edit?usp=sharing

REDUNDANT STREAM STEERING PROPOSAL

To overcome this deficiency and to create a steering solution which is compatible with token authentication, an alternative solution has been proposed which is an extension to the existing redundancy behavior built in to HLS. We term this new approach “Redundant Stream Steering (RSS)”.

BENEFITS OF RSS:
- It supports token formats in production today across multiple CDNs
- It retains backwards compatibility with older HLS clients.
- No path or token format consistency is required between pathways.

ISSUES THAT RSS DOES NOT RESOLVE:
- Precludes the addition of pathways after the master manifest has been delivered (potential issue for very long streams.)
- Can be challenging for static packaging workflows that do not perform dynamic manifest manipulation.
- As with the original HLS Content Steering Proposal, doesn't really solve the case for some SSAI and other manifest manipulation cases where all manifests(main and media) are served from a domain and service separate of the CDNs that only serve media.

The sections below describe the differences with the existing draft Steering proposal v1.0b1. All other workflow around steering is presumed to remain the same.

Main playlist format

The main playlist maintains the existing EXT-X-CONTENT-STEERING defined by v1.0b1 but removes the EXT-X-STEERING-TEMPLATE tag as it is no longer needed. Alternate pathways are specified using redundant EXT-X-STREAM-INF entries. Each entry is decorated with a new PATHWAY-ID attribute.

#EXTM3U
#EXT-X-CONTENT-STEERING:SERVER-URI="/steering?sessionToken=111”,PATHWAY-ID="A"
#EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="avc1.640028",PATHWAY-ID="A"
https://cdna.com/somestuff/videos/low/video.m3u8?tokenforA=222222
#EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="avc1.640028",PATHWAY-ID="A"
https://cdna.com/somestuff/videos/hi/video.m3u8?tokenforA=3333333
#EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="avc1.640028",PATHWAY-ID="B"
https://cdnb.com/someotherpath/token-55555/folder/small/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="avc1.640028",PATHWAY-ID="B"
https://cdnb.com/someotherpath/token-66666/folder/big/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="avc1.640028",PATHWAY-ID="C"
https://cdnc.com/jkh6kjhk3j4h5k3j4h5kh24hgj2h3gj52h3g4.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="avc1.640028",PATHWAY-ID="C"
https://cdnc.com/12bv12b3vnbv42323bvnbvn1b2v3n1b2v312b.m3u8

Note in this example that the token formats and playlist paths differ between the alternate sources. No commonality in token format or path consistency is required between the three.
At start-up, the player uses the assigned default pathway ID to select the media playlists with which to begin playback. After a steering server reload, it makes the same decision,  following the priority defined by the steering server. Legacy clients will ignore the PATHWAY-ID attribute and treat each EXT-X-STREAM-INF duplicate as a conventional redundant (but unsteered) content source.

Steering server response

The steering server response is greatly simplified. Besides defining the reload TTL and URI, it now just lists the pathway IDs in their preferred order.

{
 "VERSION": 1,
 "TTL": 300,
 "RELOAD-URI": "/steering?sessionToken=111",
 "PATHWAYS": [
  "B",
  "A",
  "C",
 ]
}

This communication is the property of Lumen Technologies and may contain confidential or privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments.