Re: [Hls-interest] Content Steering, Multiple Service Locations and Client Behaviour

Roger Pantos <rpantos@apple.com> Mon, 09 October 2023 22:03 UTC

Return-Path: <rpantos@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 AD26AC15106E for <hls-interest@ietfa.amsl.com>; Mon, 9 Oct 2023 15:03:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.395
X-Spam-Level:
X-Spam-Status: No, score=-4.395 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hYNeLtqAHtFP for <hls-interest@ietfa.amsl.com>; Mon, 9 Oct 2023 15:03:13 -0700 (PDT)
Received: from ma-mailsvcp-mx-lapp03.apple.com (ma-mailsvcp-mx-lapp03.apple.com [17.32.222.24]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61205C15106C for <hls-interest@ietf.org>; Mon, 9 Oct 2023 15:03:13 -0700 (PDT)
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma-mailsvcp-mx-lapp03.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S2A00FXJ7WYKU00@ma-mailsvcp-mx-lapp03.apple.com> for hls-interest@ietf.org; Mon, 09 Oct 2023 15:03:12 -0700 (PDT)
X-Proofpoint-GUID: 7iLbzARiH86li7KQyAu7faZyBepNdcvE
X-Proofpoint-ORIG-GUID: 7iLbzARiH86li7KQyAu7faZyBepNdcvE
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.980 definitions=2023-10-09_20:2023-10-09, 2023-10-09 signatures=0
X-Proofpoint-Spam-Details: rule=interactive_user_notspam policy=interactive_user score=0 mlxscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2310090174
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=dFMfzYO+WIB/3Jt8d4eCwdS1BD/q/ealREEpp0gmErs=; b=ehWfS0eDzjjfnFnmeg0c4qUEPvKhlyuzBLOAH2baPUbbhwOnKou+o7D/XtAIT3/Aaspx ondwzEHV+kcj8yKcsZo9djcgmZuM1I8ZvLJ79O62Ys/3yDvAtjIDOcq7f4fIKluEBl8r pRd4Y9Uag/N66tnD+EBQX5osBS43z1ZvMtfez6OqfjL0EcEkr1oJ7jX8LyLCJzvL8ugW A+stf2e6/0yKg9Zemrs70udz9oJmA6k7kZWg8OyR8s1Rscc2m6/K40XqUoQaY2gR465a C7dseUUa+TCZd9iBC/Dz4O7gzxSOGbzAc2/pNYnM2mkfxGaud7AVuWQmoY9gzhRNYwBu 4A==
Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S2A002YK7X8E9J0@rn-mailsvcp-mta-lapp02.rno.apple.com>; Mon, 09 Oct 2023 15:03:09 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) id <0S2A00R007LJWP00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Mon, 09 Oct 2023 15:03:08 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 9ad04e895ec7908923ee91ef7f6eb476
X-Va-E-CD: badd53e3127ccb918376e1b04a44b2fe
X-Va-R-CD: 2e6e59e938d80d64a8e9172542e202c2
X-Va-ID: dd4ad8bc-cca0-4b4a-8f3e-6c7c438e345b
X-Va-CD: 0
X-V-A:
X-V-T-CD: 9ad04e895ec7908923ee91ef7f6eb476
X-V-E-CD: badd53e3127ccb918376e1b04a44b2fe
X-V-R-CD: 2e6e59e938d80d64a8e9172542e202c2
X-V-ID: d0ad5dcd-4add-4bc2-91df-7a3422a6029d
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.980 definitions=2023-10-09_20:2023-10-09, 2023-10-09 signatures=0
Received: from smtpclient.apple (unknown [17.149.235.127]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPSA id <0S2A00F057X1E900@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Mon, 09 Oct 2023 15:03:01 -0700 (PDT)
From: Roger Pantos <rpantos@apple.com>
Message-id: <4025E731-CCBD-4DE5-A422-92945A30FE9C@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_C28D3DB9-B4A2-48C2-8E9C-C285EF793344"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\))
Date: Mon, 09 Oct 2023 15:02:51 -0700
In-reply-to: <99BFD284-80B5-436E-B9F9-7AD6B878D5DB@apple.com>
Cc: hls-interest@ietf.org
To: Thomas Stockhammer <stockhammer@gmx.org>
References: <00a901d9f9f3$65be4dc0$313ae940$@gmx.org> <99BFD284-80B5-436E-B9F9-7AD6B878D5DB@apple.com>
X-Mailer: Apple Mail (2.3774.200.91.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/CDdwjXKUHK1-cgFMNMplqPJTQGk>
Subject: Re: [Hls-interest] Content Steering, Multiple Service Locations and Client Behaviour
X-BeenThere: hls-interest@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 09 Oct 2023 22:03:17 -0000

More more thing, inline:

> On Oct 9, 2023, at 2:43 PM, Roger Pantos <rpantos=40apple.com@dmarc.ietf.org> wrote:
> 
> Hello Thomas. My responses inline:
> 
>> On Oct 8, 2023, at 7:26 AM, Thomas Stockhammer <stockhammer@gmx.org> wrote:
>> 
>> Dear colleagues,
>>  
>> As DASH-IF Interop WG Chair, I was asked to provide a request to this group.
>>  
>> DASH-IF has developed a Content Steering specification (which went through two community reviews). One of the core aspects is the alignment with the solution provided for HLS. Here are some details on the spec.
>>  
>> Scope
>> Content distributors often use multiple Content Delivery Networks (CDNs) to distribute their content to the end-users. They may upload a copy of their catalogue to each CDN, or more commonly have all CDNs pull the content from a common origin. Alternate URLs are generated, one for each CDN, that point at identical content. DASH players may access alternate URLs in the event of delivery problems. Content steering describes a deterministic capability for a content distributor to switch the content source that a player uses either at start-up or midstream, by means of a remote steering service.
>> 
>> Disclaimer
>> This document is a candidate Technical Specification. DASH-IF is publishing this specification initially, but the document has been submitted to ETSI and ETSI is asked to publish this document under the Publicly Available Specifications (PAS) agreement. For details on the PAS process, please refer to ETSI PAS Process Guide: https://www.etsi.org/images/files/ETSI_PAS_Process_Guide.pdf. Note that the ETSI specification may be different, addressing editorial updates. In addition, in case of any identified issues or bugs, please file issues here: https://github.com/Dash-Industry-Forum/Content-Steering/issues.
>> 
>> Latest Version
>> ·         DASH-IF Candidate Technical Specification 001: Content Steering for DASH v1.0.0 <https://github.com/Dash-Industry-Forum/Dash-Industry-Forum.github.io/files/11722876/DASH-IF-CTS-001-1.0.0.pdf> (IPR Declarations <https://dashif.org/ipr-declarations/>)
>>  
>> We are in the final stage of publishing the document through ETSI, but in this context an issue arised, which can be tracked here: https://github.com/Dash-Industry-Forum/Content-Steering/issues/26.
>>  
>> Based on feedback from an operator (details in the issue), the following scenario is considered:
>> A manifest is offered with different service locations/pathway
>> The service locations/pathway have different content (for example one includes the HD version, the other one the SD version, or one includes the English version of the audio track and the other one the German)
>>  
>> Assuming the above, the client may operate in one of the two following ways:
>> The client selects the content based on its/the user’s preference, regardless of the information from the Content Steering Server.
>> The client is only permitted to select content from a pathway/service location that is prohibited by the Content Steering Server.
>>  
>> Currently, the specification above is towards option 1, and also our dash.js implementation is accordingly. The use case provided by the content provider is more towards the second, it intended to “enforce” switching clients towards the SD or HD content.
>>  
>> As the DASH solution is intended to closely align with HLS, we would like to seek answers to the following questions
>>  
>> Does the HLS content steering solution permit (by design or implicitly), that different content is offered on different pathways/service location?
> 
> Yes. The most conventional way to achieve this is to follow this example:
> 
> # All resolutions available on cdn-A
> #EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,PATHWAY-ID="A"
> https://cdn-A/asset-HD/2M.m3u8 <https://cdn-a/asset-HD/2M.m3u8>
> #EXT-X-STREAM-INF:BANDWIDTH=7000000,RESOLUTION= 4096×2160,PATHWAY-ID="A"
> https://cdn-A/asset-UHD/7M.m3u8 <https://cdn-a/asset-UHD/7M.m3u8>
> 
> # Only HD resolutions available on cdn-B
> #EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,PATHWAY-ID="B"
> https://cdn-B/asset-HD/2M.m3u8 <https://cdn-b/asset-HD/2M.m3u8>
> 
> Given the rules specified in https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis/#section-7 a client on pathway "A" may choose between the 4K and 720p variant stream, but a client on pathway "B" can only choose the 720p stream.
> 
> It might be reasonable to limit higher bit rates to certain pathways, as in this example, for reasons of per-CDN cost or performance. But I would consider it to be something of an abuse to use content steering to restrict the client to certain language choices (English or German). I could several cases where this could lead to playback failures or other undesirable experiences. If there's a stated use case for restricting certain languages to certain pathways, we should discuss its requirements further.

I should note that if the desire is to limit content to CDNs serving a particular geography (for example to restrict German audio renditions to a European-focused CDN) then the recommended approach is to have every Pathway include URLs to that content on that CDN. That way users in other parts of the world still get access to the content, just from a less-optimal CDN. 

To continue the example further:

#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,PATHWAY-ID="A",AUDIO="cdn-A-audio"
https://cdn-A/asset-HD/2M.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=7000000,RESOLUTION= 4096×2160,PATHWAY-ID="A",AUDIO="cdn-A-audio"
https://cdn-A/asset-UHD/7M.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,PATHWAY-ID="B",AUDIO="cdn-B-audio"
https://cdn-B/asset-HD/2M.m3u8

#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="cdn-A-audio", LANGUAGE="eng", NAME="English", AUTOSELECT=YES, DEFAULT=YES,URI="https://cdn-A/asset/audio_eng.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="cdn-A-audio", LANGUAGE="de", NAME="Deutsch", AUTOSELECT=YES, DEFAULT=YES,URI="https://cdn-A/asset/audio_de.m3u8"

#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="cdn-B-audio", LANGUAGE="eng", NAME="English", AUTOSELECT=YES, DEFAULT=YES,URI="https://cdn-B/asset/audio_eng.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="cdn-B-audio", LANGUAGE="de", NAME="Deutsch", AUTOSELECT=YES, DEFAULT=YES,URI="https://cdn-A/asset/audio_de.m3u8"

Note that the "B" Pathway gets its 'de' audio rendition from cdn-A, so even if the client is switched to "B" any client that has selected German audio will continue to work.


Roger.

> 
>> If yes to 1, 
>> is the client in HLS content steering permitted to ignore the response from the steering server and favours its content selection?
>> Is the client required to always follow the content steering response, regardless of its content selection?
> 
> The spec does not give the client an option to ignore a response from the content steering server (except in the edge case where the server specifies no pathways that the client knows about, in which case it is allowed to remain on its current pathway). So I guess the answer here is (b).
> 
>> If both are suported, 2a and 2b, can the content provider signal to the client, which operation it shall follow.
> 
> n/a
> 
>> In case the option 2b is supported, would it mean that for example a change of a pathway in the content steering server response may force a switch of content for the client? Are there any restrictions?
>>  
> 
> A forced switch to a Pathway that included no playable content for the current client selections (including audio and subtitle languages, audio channel layout, and video range) would more like result in a fatal playback error rather than a change in selection. Currently the response is not specified, but if we were to specify it I would lean in that direction (i.e. that the required client response is to fail playback).
> 
> 
> Roger.
> 
>> Thanks for you suport on this matter.
>>  
>> Thomas (on behalf of the DASH-IF IOP WG).
>>  
>>  
>> —
>> Dr. Thomas Stockhammer || stockhammer@gmx.org <mailto:stockhammer@gmx.org>  || phone: +49 172 5702667 || <image001.png> <https://wa.me/491725702667> <image002.png> <http://www.linkedin.com/in/stockhammer> <image003.png> <https://www.facebook.com/tstockhammer>  <image004.png> <https://github.com/haudiobe> <image005.png> <https://discord.com/channels/thomassto#6183><image006.png> <https://www.instagram.com/haudiobe/>
>>  
>> -- 
>> Hls-interest mailing list
>> Hls-interest@ietf.org <mailto:Hls-interest@ietf.org>
>> https://www.ietf.org/mailman/listinfo/hls-interest
> 
> -- 
> Hls-interest mailing list
> Hls-interest@ietf.org <mailto:Hls-interest@ietf.org>
> https://www.ietf.org/mailman/listinfo/hls-interest