Re: [Hls-interest] HLS Content Steering v1.0b1 preliminary specification

Eryk Vershen <evershen@apple.com> Thu, 18 February 2021 19:04 UTC

Return-Path: <evershen@apple.com>
X-Original-To: hls-interest@ietfa.amsl.com
Delivered-To: hls-interest@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7D9A3A159A; Thu, 18 Feb 2021 11:04:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.657
X-Spam-Level:
X-Spam-Status: No, score=-2.657 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.57, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gFcct2N88LwY; Thu, 18 Feb 2021 11:04:42 -0800 (PST)
Received: from ma1-aaemail-dr-lapp03.apple.com (ma1-aaemail-dr-lapp03.apple.com [17.171.2.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4764A3A14B5; Thu, 18 Feb 2021 11:04:42 -0800 (PST)
Received: from pps.filterd (ma1-aaemail-dr-lapp03.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp03.apple.com (8.16.0.42/8.16.0.42) with SMTP id 11IJ4Pif008341; Thu, 18 Feb 2021 11:04:41 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=F6OxwW+3E5905h9ZmQ9IfgIX5tUS6NlfqGwPTmLmnKY=; b=CZP6tW3Hw8yNENItk+Qbzc+OaoKsNh0jMTceg/WmAO6fQrAOGTY5jsHzJRx1lUK2jIlV LQO26D/J0DyI6Z8hVrfYaktUxKoacYs6FFuEq1LtYMDD1oRRs4oCXWOx83MZ0nxJ5INE vhmkQ+NSBHjkhZFRa9IaHTUvsmbihI5k5sMrCSAnVcSQTrKfQN5c2PoQcT/9mbydCyow 9J4iigectGjIaf8tWoOsoU///DrN7b2USzhBraQwNNzTsGLv43kzwcZ5wv57mmYDDteR mK+N3AraJ3j/ci0J/8GTy2zZr1+rrwGriZlilzFDT8mIKEViMUBUH1IeWAPDBC9m/qfz 4A==
Received: from rn-mailsvcp-mta-lapp04.rno.apple.com (rn-mailsvcp-mta-lapp04.rno.apple.com [10.225.203.152]) by ma1-aaemail-dr-lapp03.apple.com with ESMTP id 36pen1ev2v-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 18 Feb 2021 11:04:40 -0800
Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.7.20201203 64bit (built Dec 3 2020)) with ESMTPS id <0QOQ002UDNNQHJ60@rn-mailsvcp-mta-lapp04.rno.apple.com>; Thu, 18 Feb 2021 11:04:38 -0800 (PST)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.7.20201203 64bit (built Dec 3 2020)) id <0QOQ00L00NLZF500@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Thu, 18 Feb 2021 11:04:38 -0800 (PST)
X-Va-A:
X-Va-T-CD: 3a9fdce409feccca8534ce65d4ebaeb9
X-Va-E-CD: 6c23791f899f273f12ca120dc248a5dc
X-Va-R-CD: d5edaada1cf8230882b37e08422b3d84
X-Va-CD: 0
X-Va-ID: ce03122c-09aa-4c3d-99ff-d21d3cd54581
X-V-A:
X-V-T-CD: 3a9fdce409feccca8534ce65d4ebaeb9
X-V-E-CD: 6c23791f899f273f12ca120dc248a5dc
X-V-R-CD: d5edaada1cf8230882b37e08422b3d84
X-V-CD: 0
X-V-ID: 4fb969c6-07a1-4657-a7c7-901db25bd187
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-02-18_09:2021-02-18, 2021-02-18 signatures=0
Received: from [17.234.95.182] (unknown [17.234.95.182]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.7.20201203 64bit (built Dec 3 2020)) with ESMTPSA id <0QOQ00A9DNNOTX00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Thu, 18 Feb 2021 11:04:37 -0800 (PST)
From: Eryk Vershen <evershen@apple.com>
Message-id: <FA770E4E-2F6B-4A4E-8D4C-FCB3CCB6F21C@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_B555B320-9FB9-47F5-8857-7828E20F6DF6"
MIME-version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Date: Thu, 18 Feb 2021 11:04:36 -0800
In-reply-to: <CAAqSTpn7F3LsQCYf5CYLSfh-e-ig3HjVoYP6exxSqGTodYHqdw@mail.gmail.com>
Cc: hls-interest@ietf.org, HLS HTTP Live Streaming Review <http-live-streaming-review@group.apple.com>
To: Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com>, Roger Pantos <rpantos=40apple.com@dmarc.ietf.org>
References: <1F29DDD8-27B8-45B9-918F-6A45E906F4F4@apple.com> <CAAqSTpn7F3LsQCYf5CYLSfh-e-ig3HjVoYP6exxSqGTodYHqdw@mail.gmail.com>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-02-18_09:2021-02-18, 2021-02-18 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/0R9V5fD5EYK3O2Nu860Wl_IiZLc>
X-Mailman-Approved-At: Thu, 18 Feb 2021 11:33:46 -0800
Subject: Re: [Hls-interest] HLS Content Steering v1.0b1 preliminary specification
X-BeenThere: hls-interest@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussions about HTTP Live Streaming \(HLS\)." <hls-interest.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hls-interest/>
List-Post: <mailto:hls-interest@ietf.org>
List-Help: <mailto:hls-interest-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Feb 2021 19:06:01 -0000

I see some issues with the approach you suggest.

> On Feb 17, 2021, at 1:46 PM, Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com> wrote:
> 
> Hi all
> 
> I am pretty concerned about the backwards compatibility problems when attempting to use this in combination with older devices. It will force services to either provide two playlists, one with and one without EXT-X-DEFINE with client-side detection of the maximum version supported by the client. While this will not be an issue for up to date Apple devices, this will definitely be an issue for out of date devices but also most smart TVs, Chromecasts, Airplay implementations by those other than Apple (f.e. on LG), ...
> 
> One option which could avoid this would be the following approach:
> - Leverage the STABLE-VARIANT-ID and STABLE-RENDITION-ID identifiers to modify an attribute of the Variant or Rendition.

This suggests being able to modify attributes other than the URI. We explicitly disallow that.
Allowing non-URI attributes to be modified creates the possibility for the structure of the master playlist to be changed significantly.
This creates major problems for the player.


> - Allow a Variant or Rendition to be referenced in the Steering Manifest with an updated value for the relevant attribute.

This effectively means there are two mechanisms for substituting values: the existing variable substitution (EXT-X-DEFINE) and URI substitution via steering. Two mechanisms doing similar things is confusing. In addition, we would need to work out whether (and how) the two mechanisms could be used in the same playlist.


> - Give the EXT-X-CONTENT-STEERING tag a MODIFIES attribute to list the Variants and Renditions which will be modified and VARIANT-ATTRIBUTES and RENDITION-ATTRIBUTES attributes to list the attributes which can be modified rather than the DEFINES attribute.
> 
> The language for a Pathway would be defined as:
> {
>     "ID": string, // REQUIRED
>     "VARIANTS": { // REQUIRED
>         "<STABLE-VARIANT-ID>": { // one for every variant listed to be modified
>             Key-Value pairs for every attribute which you want to redefine
>         }
>     },
>     "RENDITIONS": { // OPTIONAL 
>         "<STABLE-RENDITION-ID>": {  // one for every rendition listed as to be modified
>             Key-Value pairs for every attribute which you want to redefine
>         } 
>     } 
> }

This is likely to increase the size of the manifests. A playlist can have several dozen stable iDs. That makes the notion of using a data URI as the SERVER-URI more problematic.


> For example this could make the Master Playlist.
> #EXTM3U
> #EXT-X-VERSION:8
> 
> #EXT-X-CONTENT-STEERING:MODIFIED="VARIANT-1,VARIANT-2",VARIANT-ATTRIBUTES="URI",SERVER-URI="/steering?video=00001",PATHWAY-ID="My-Great-CDN"
>  
> #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="avc1.640028",STABLE-VARIANT-ID="VARIANT-1"
> https://cdn-a.example.com/low/main/audio-video.m3u8 <https://cdn-a.example.com/low/main/audio-video.m3u8>
> #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="avc1.640028",STABLE-VARIANT-ID="VARIANT-2"
> https://cdn-a.example.com/hi/main/audio-video.m3u8 <https://cdn-a.example.com/hi/main/audio-video.m3u8>
> 
> Which results into a Steering Manifest like the one below.
> {
>     "TTL": 300,
>     "RELOAD-URI": "https://example.com/steering?video=00001&session=123 <https://example.com/steering?video=00001&session=123>",
>     "PATHWAYS": [
>         {
>             "ID": "My-Great-CDN",
>             "VARIANTS": {
>                 "VARIANT-1": {
>                     "URI": "https://cdn-a.example.com/low/main/audio-video.m3u8 <https://cdn-a.example.com/low/main/audio-video.m3u8>"
>                 } 
>                 "VARIANT-2":{
>                     "URI": "https://cdn-a.example.com/hi/main/audio-video.m3u8 <https://cdn-a.example.com/hi/main/audio-video.m3u8>"
>                 } 
>             }
>         },
>         {
>             "ID": "My-Backup-CDN",
>             "VARIANTS": {
>                 "VARIANT-1":{
>                     "URI": "https://cdn-b.example.com/low/main/audio-video.m3u8 <https://cdn-b.example.com/low/main/audio-video.m3u8>"
>                 } 
>                 "VARIANT-2":{
>                     "URI": "https://cdn-b.example.com/hi/main/audio-video.m3u8 <https://cdn-b.example.com/hi/main/audio-video.m3u8>"
>                 } 
>             }
>         }
>     ]
> }

With this design, the steering manifest is effectively required to be "per asset" rather than shareable across many assets.

Regards,
-eryk

Eryk Vershen
Apple Inc.


> Benefits:
> - Fully backwards compatible. Older clients will simply ignore the new EXT-X-CONTENT-STEERING tag, and use the primary source.
> - No change needed to the Master Playlist other than the addition of the #EXT-X-CONTENT-STEERING tag.
> - Also compatible with the AUTH-case for EXT-X-DEFINE by allowing the Variable Substitution on attributes after retrieval from the Steering Manifest 
> - As an added bonus, for those who are modifying the master playlist anyway, the use of STABLE-VARIANT-ID and STABLE-RENDITION-ID allows clients to identify and identify the Variants and Renditions.
> 
> Drawback:
> - More closely coupled with HLS, making reuse of the Steering Manifest for other failover cases less likely.
> 
> My personal opinion is that the value of backwards compatibility would warrant the drawbacks I currently see. 
> 
> Best regards,
> Pieter-Jan
> 
> 
> Pieter-Jan Speelmans
> CTO
> 
> THEO Technologies NV
> w | www.theoplayer.com <http://www.theoplayer.com/>
> Philipssite 5, Bus 1. 3001 Leuven, Belgium
>  <https://d2oj23ymxjbl3l.cloudfront.net/>
> Leuven (Belgium) - New York (US) - Singapore (SG) - Barcelona (ES)
> BTW: BE 0847.829.290, RPR: Leuven
> 
> 
> On Wed, Feb 17, 2021 at 9:57 PM Roger Pantos <rpantos=40apple.com@dmarc.ietf.org <mailto:40apple.com@dmarc.ietf.org>> wrote:
> Hello hls-interest,
> 
> As discussed on the call today, here is the preliminary specification for the new Content Steering feature. We are converging on the final design for 1.0, so please take a look at it when you can and tell us what you think. 
> 
> You can send feedback to this list, or to http-live-streaming-review@group.apple.com <mailto:http-live-streaming-review@group.apple.com> if you want it to go directly to us.
> 
> 
> 
> 
> regards,
> 
> Roger Pantos
> Apple Inc.-- 
> Hls-interest mailing list
> Hls-interest@ietf.org <mailto:Hls-interest@ietf.org>
> https://www.ietf.org/mailman/listinfo/hls-interest <https://www.ietf.org/mailman/listinfo/hls-interest>
> 
> Legal Notice 
> You can find the latest terms and policies of THEO Technologies under www.theoplayer.com/terms <http://www.theoplayer.com/terms> including our "GENERAL TERMS AND CONDITIONS". In the absence of a signed agreement between you and THEO Technologies, by replying to this email these terms apply to the relevant transaction between us.   
> The contents of this email message and any attachments are intended solely for the addressee(s) and contain CONFIDENTIAL and/or privileged information and are legally protected from disclosure. If you are not the intended recipient of this message, please immediately alert the sender by reply email and then delete this message including any attachments and you are hereby notified that any use, dissemination, copying, or storage of this message or its attachments is strictly prohibited. 
> Full security of emails over the internet cannot be ensured. Despite our efforts it is your responsibility to provide for your protection.
> Global HQ: THEO Technologies NV, Philipssite 5 bus 1, 3001 Heverlee, Belgium - BE 0847.829.290 - CEO: Steven Tielemans