Re: Issue with "bytes" Range Unit and live streaming

Göran Eriksson AP <goran.ap.eriksson@ericsson.com> Fri, 15 April 2016 19:09 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 93EB612DAF8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Apr 2016 12:09:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.917
X-Spam-Level:
X-Spam-Status: No, score=-7.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 39Y4gqXBaMDJ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 15 Apr 2016 12:09:03 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 772D412D73B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 15 Apr 2016 12:09:03 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ar92d-0004YB-O7 for ietf-http-wg-dist@listhub.w3.org; Fri, 15 Apr 2016 19:04:31 +0000
Resent-Date: Fri, 15 Apr 2016 19:04:31 +0000
Resent-Message-Id: <E1ar92d-0004YB-O7@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <goran.ap.eriksson@ericsson.com>) id 1ar92Z-0004XL-H7 for ietf-http-wg@listhub.w3.org; Fri, 15 Apr 2016 19:04:27 +0000
Received: from sessmg23.ericsson.net ([193.180.251.45]) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <goran.ap.eriksson@ericsson.com>) id 1ar92X-0004YV-Mq for ietf-http-wg@w3.org; Fri, 15 Apr 2016 19:04:27 +0000
X-AuditID: c1b4fb2d-f79006d000006928-94-57113b1bd572
Received: from ESESSHC010.ericsson.se (Unknown_Domain [153.88.183.48]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id D4.53.26920.B1B31175; Fri, 15 Apr 2016 21:03:56 +0200 (CEST)
Received: from ESESSMB209.ericsson.se ([169.254.9.45]) by ESESSHC010.ericsson.se ([153.88.183.48]) with mapi id 14.03.0248.002; Fri, 15 Apr 2016 21:03:55 +0200
From: Göran Eriksson AP <goran.ap.eriksson@ericsson.com>
To: "STARK, BARBARA H" <bs7652@att.com>, Remy Lebeau <remy@lebeausoftware.org>, Craig Pratt <craig@ecaspia.com>, IETF HTTP BIS <ietf-http-wg@w3.org>
Thread-Topic: Issue with "bytes" Range Unit and live streaming
Thread-Index: AQHRl0mOPiSODXLlvEqDPRCmmHhjTA==
Date: Fri, 15 Apr 2016 19:03:54 +0000
Message-ID: <D3370313.258AE%goran.ap.eriksson@ericsson.com>
References: <57102718.7010900@ecaspia.com> <571041E0.5020401@lebeausoftware.org> <2D09D61DDFA73D4C884805CC7865E61142655F7B@GAALPA1MSGUSRBF.ITServices.sbc.com>
In-Reply-To: <2D09D61DDFA73D4C884805CC7865E61142655F7B@GAALPA1MSGUSRBF.ITServices.sbc.com>
Accept-Language: sv-SE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.2.160219
x-originating-ip: [153.88.183.149]
Content-Type: text/plain; charset="utf-8"
Content-ID: <276B0A4A0C039D4185D2D57737808599@ericsson.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPIsWRmVeSWpSXmKPExsUyM2K7ga6MtWC4wZtLHBaT/v5ktGievI3N 4nDLLCaLyQ0H2B1YPF72z2H02LFP0aNl/jF2j6Pz9rMGsERx2aSk5mSWpRbp2yVwZZzeWVLw Rr2i4+M0lgbGF2pdjBwcEgImErOmSXcxcgKZYhIX7q1n62Lk4hASOMIo8anjCzOEs5hR4tKl pewgVWwC3hJtLYdZQBIiAjMYJXbOvsUKMklYwFZi4yRPEFNEwE7i+RVVkHIRAT2Jzpeb2UBs FgFVic7nUxhBbF4Ba4mmnVfZIeYvYpSYs38fG0gvp0CUxJ1t6SA1jAKyEve/32MBsZkFxCVu PZnPBHGogMSSPeeZIWxRiZeP/7GC2KJAu3acg7AlBJQk1h7ezgIykllAU2L9Ln2IMdYS/89O ZoOwFSWmdD9khzhHUOLkzCcsExjFZyHZNguhexaS7llIumch6V7AyLqKUbQ4tbg4N93IWC+1 KDO5uDg/Ty8vtWQTIzAaD275rbuDcfVrx0OMAhyMSjy8Cc0C4UKsiWXFlbmHGCU4mJVEePUt BMOFeFMSK6tSi/Lji0pzUosPMUpzsCiJ8+ZE/gsTEkhPLEnNTk0tSC2CyTJxcEo1MIovt2Bd wqslyj3l5sfNmbd6HBjWbA+Lyu7Q2sB7U0696sxrF102mb0G8n03zhzxVBT9flnEhEsvM4lt unx2TcGXzAsJYs8sPjm7SrIeWpPvKezBI1Lwbc2zsEnH7yU9rGx++XXFzzmNOvvnT2n7w1u7 Y9aJTbUeTOXxjR+Y7ReUnDvw3jX7rhJLcUaioRZzUXEiAALv3U7CAgAA
Received-SPF: pass client-ip=193.180.251.45; envelope-from=goran.ap.eriksson@ericsson.com; helo=sessmg23.ericsson.net
X-W3C-Hub-Spam-Status: No, score=-8.5
X-W3C-Hub-Spam-Report: AWL=2.748, BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1ar92X-0004YV-Mq d3c2e76cf00668605bcc26930fb250c0
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Issue with "bytes" Range Unit and live streaming
Archived-At: <http://www.w3.org/mid/D3370313.258AE%25goran.ap.eriksson@ericsson.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31478
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi,

Have a similar use case in a slightly different context. I find the draft
and discussion useful.

A few questions inline.



>AFAICT, the existing ABNF for byte ranges *does* already support what you
>are looking for, without having to introduce a new unit type:
>
>    byte-range-spec = first-byte-pos "-" [ last-byte-pos ]
>
>Simply omit the * and leave the second value empty:
>    Range: bytes=1234567-
>
> 
>
>RFC 2616 Section 14.35.1 says:
>
>"If the last-byte-pos value is absent, or if the value is greater than or
>equal to the current length of the entity-body, last-byte-pos is taken to
>be equal to one less than the current length of the entity- body in
>bytes."
> 
><bhs> Yes the client can make an open-ended request. The problem is the
>server has no means of providing an open-ended response.


You mean response must contain content length?

>
>RFC 7233 Section 2.1 says:
>
>"If the last-byte-pos value is absent, or if the value is greater than or
>equal to the current length of the representation data, the byte range is
>interpreted as the remainder of the representation (i.e., the server
>replaces the value of last-byte-pos with
> a value that is one less than the current length of the selected
>representation)."
> 
><bhs> Correct. The server is required to provide an actual value for
>last-byte-pos. And that value is based on the current length. If the
>server is recording
> the content from a live stream, whatever value the server provides will
>no longer be the last byte almost as soon as the value is sent. The
>actual endpoint is constantly increasing.
>
>Since the media is being recorded while streaming, the client can
>randomly jump around within the recorded portion of the media all it
>wants. Once jumped, it would simply be receiving media from the
>recording, not the live feed.  To jump back to the live feed,
> simply omit the "Range" header.
> 
><bhs> The use case is not one of the client recording the stream. It is
>of the server recording the stream. Let me see if I can explain the use
>case better.
>The user is watching content on a client that is being streamed from a
>server. The server is recording the content from a live stream.
>The client has limited
> memory and can only buffer about 15 seconds worth of content.
>The user pauses watching the content and comes back after 1 minute to
>resume. The client sends the server a request to provide content from the
>paused byte position
> to “-“. 
>The server is required to provide a response that has an actual last byte
>value. The only last byte value the server has is the one for the precise
>moment of
> the request. After a minute, the server has a minute more of content but
>has provided the client with the content up to that responded last byte.

Isn’t the server providing the client with a new manifest with the latest
‘last byte’ every 15 seconds or so? Or are you after a solution where this
approach is not used, instead with an “open request” in the request
template?

Would be good to know what kind of media player behaviour is assumed here,
especially the manifest part of it.

>Shouldn’t the server stop sending bytes once it gets to the value of its
>responded last-byte-pos? Even though
> it has now a whole lot more bytes and we know that the user just wants
>to keep watching? Should the client be expected to make continual
>requests to keep up with the ever-increasing endpoint?
>The purpose of this proposal is to allow the server to provide an
>open-ended response, so the server can send bytes that it didn’t have at
>the time of the original
> request.
> 
>Barbara
>