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

Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com> Thu, 18 February 2021 19:29 UTC

Return-Path: <pieter-jan.speelmans@theoplayer.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 0D2C93A19C3 for <hls-interest@ietfa.amsl.com>; Thu, 18 Feb 2021 11:29:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=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=theoplayer-com.20150623.gappssmtp.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 Z8ePF4FxuwhB for <hls-interest@ietfa.amsl.com>; Thu, 18 Feb 2021 11:29:30 -0800 (PST)
Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 18BFF3A1835 for <hls-interest@ietf.org>; Thu, 18 Feb 2021 11:29:03 -0800 (PST)
Received: by mail-io1-xd36.google.com with SMTP id f6so3173968iop.11 for <hls-interest@ietf.org>; Thu, 18 Feb 2021 11:29:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=theoplayer-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pQ19onRM+s5BjxmF7TJVntSSv6hmT+N8u/mCTgHjrYo=; b=ZVWB4BgZiUZmGQVUu3HccfOweN+nfLfrKIHs/hqgUYJrOLfp8gjgn39PHG1i8F6q5P 75DFgOxxUv4WFgl50HgDyp2pqGeE3t5F/nW8m6Ul5b/fyCGI3fOOTszL1TyxNytInCrx q/iakqgM4WlFf9S6yFCh6NUUtBsYHxRKttklMm23yIN9xkoaiD//Y4gt8KiNWCQVgOMv YPl2nW8S6en9N8OWFb66Spym6RWQm2eDf7f0RsaBMy6HuRNYsx7pyUEgAKx66cuDBwrS lKRIkaLLSD3BwG+fBQxBWTasYLEDq5FHV3k3DCafno0kJAdj881985uF73T7jovV17+5 pHRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pQ19onRM+s5BjxmF7TJVntSSv6hmT+N8u/mCTgHjrYo=; b=thKHrGO7YzIBuqiBt/z2NkuPhkMJU1vayjD2VSacpRGoQcktvpl2dF+Qr3YfZVqZCJ PXvf/foMJh5Mww0f0crJklBLRu2pc2d6wD34+L4HooeHHAf9mAeNplC9loQfv2Fh8JGs ZrcggJn6ni5OQxYDpu4e2iX243s16Z5ECZMyq6K9nvLhXksE4aHYhxMJROJvZul0uzcC Nv9yGKRHVjJKl18LlJGSWNOmVRX5X1OYdphn2oF4fMzV09M1CazGCbZf69R96jwBraez trYRDpO2/j8Tf1Gcchb8KB2Y+Gurv8uk5x5NQJsqmDB/Y8DPwL2IPuN8Sh873eK7JVqD 8L0g==
X-Gm-Message-State: AOAM533cGvyizMkACnO0n1ogsf1rNjKkQlIyOv1D8B4F4IaDPFNkaTlu kpe0dkBOgDJTQpBvb/am967CrKSZUwcG3chvCY+lVe+iyyRoQayTrRyVndxK215vyhQLmNkjszB pXz68wF8Ti3Mt6K7NRQU/z6w=
X-Google-Smtp-Source: ABdhPJzF/YKsXN3amqFaBujkTE7PwwC1zT9zBqcGAWyVrqMcWa/gLOrqV6r8m5FXSoESF3P12N7iH33spFNMOF1ricI=
X-Received: by 2002:a02:81cd:: with SMTP id r13mr6212787jag.126.1613676542112; Thu, 18 Feb 2021 11:29:02 -0800 (PST)
MIME-Version: 1.0
References: <1F29DDD8-27B8-45B9-918F-6A45E906F4F4@apple.com> <CAAqSTpn7F3LsQCYf5CYLSfh-e-ig3HjVoYP6exxSqGTodYHqdw@mail.gmail.com> <FA770E4E-2F6B-4A4E-8D4C-FCB3CCB6F21C@apple.com>
In-Reply-To: <FA770E4E-2F6B-4A4E-8D4C-FCB3CCB6F21C@apple.com>
From: Pieter-Jan Speelmans <pieter-jan.speelmans@theoplayer.com>
Date: Thu, 18 Feb 2021 20:28:47 +0100
Message-ID: <CAAqSTpkKpPZa7U1m86+wPCu_wy9oxqSL_Gz8dtoZhMo-gr2TAQ@mail.gmail.com>
To: Eryk Vershen <evershen@apple.com>
Cc: Roger Pantos <rpantos=40apple.com@dmarc.ietf.org>, hls-interest@ietf.org, HLS HTTP Live Streaming Review <http-live-streaming-review@group.apple.com>
Content-Type: multipart/alternative; boundary="00000000000013509105bba159ae"
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/KD1pqd4h98-dNyuhSa87WDGUUm8>
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:29:40 -0000

Hi Erik

All valid arguments and great feedback. Thanks for that.

For the modification of other parameters, this is something which can be
disallowed. I don't expect too much of an issue there. If I understand
correctly, attributes such as CODECS could currently also be replaced
through EXT-X-DEFINE.
Similarly the combination of two options to replace variables can be
managed. One could have priority over the other if needed. From a player
perspective, I don't expect any issue grill the player side.

The increased size of the manifest I wouldn't expect too much of an issue
from for practical scenarios if gzip is used.

I did not consider the manifest would need to become a per asset manifest.
That's indeed a big drawback.

For me the biggest concern remains backwards compatibility. For our player,
we can handle it.
Platforms where our customers are forced to use native players, will
restrain adoption significantly.

I hope there are some ideas here which could provide a path towards a
backwards compatibility. There are some other alternatives I can think of,
but all of them have drawbacks I fear.

Best regards,
Pieter-Jan



On Thu, 18 Feb 2021, 20:04 Eryk Vershen, <evershen@apple.com> wrote:

> 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
>>
>> #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="avc1.640028",STABLE-VARIANT-ID="VARIANT-2"
>> 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",
>>     "PATHWAYS": [
>>         {
>>             "ID": "My-Great-CDN",
>>             "VARIANTS": {
>>                 "VARIANT-1": {
>>                     "URI": "
>> https://cdn-a.example.com/low/main/audio-video.m3u8"
>>                 }
>>                 "VARIANT-2":{
>>                     "URI": "
>> 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"
>>                 }
>>                 "VARIANT-2":{
>>                     "URI": "
>> 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
> 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> 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 if you want it to go directly
>> to us.
>>
>>
>>
>>
>> regards,
>>
>> Roger Pantos
>> Apple Inc.--
>> Hls-interest mailing list
>> Hls-interest@ietf.org
>> 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 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
>
>
>

-- 
*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