- From: Philip Jägenstedt <philipj@opera.com>
- Date: Wed, 07 Jul 2010 10:36:21 +0200
On Tue, 06 Jul 2010 23:19:42 +0200, Marques Johansson <marques at displague.com> wrote: > On Tue, Jul 6, 2010 at 4:37 PM, Aryeh Gregor > <Simetrical+w3c at gmail.com<Simetrical%2Bw3c at gmail.com> >> wrote: > >> On Tue, Jul 6, 2010 at 10:24 AM, Marques Johansson >> <marques at displague.com> wrote: >> > The benefit to the user is that they could have less open network >> > connections while streaming video from server controlled sites and >> those >> > sites will have the ability to meter their usage more accurately. >> > Inserting an extra clip at the end is more of a playlist or scripting >> > answer. Or perhaps a a live re-encoding answer. I'm looking for a >> way >> to >> > give the user the raw video file in a metered way. >> >> It sounds like your use-case is very special, and best handled by >> script. I suggested server-side script -- you could do that today. >> Just cut off the HTTP connection when the user has used up their >> allotted time. Alternatively, it might be reasonable to have >> client-side scripting for video that's flexible enough to do what you >> want. But a dedicated declarative feature is just not reasonable for >> such a specific purpose. > > > I tested cutting off the HTTP connection and browsers didn't handle > this. I > realize I may need to test a deeper sever than a php exit() can > provide. I > have essentially tested this (but not this exactly - filehandles, > sessions, > additional code, etc): > <?php > header("HTTP/1.1 206 partial"); > header("Accept-Ranges: bytes"); > header("Content-Range: bytes 0-999999/1000000"); > header("Content-Length: 1000000"); // report 1000k > echo str_repeat(" ", 1000); // return 1k > exit(); > > and found that browsers do not attempt to refetch the data or continue > with > a 206 for the next block. > > Shouldn't something like this be be worked into the protocol or the > language One thing that you mustn't lie about is Content-Length, so I assume that the real size of this resource if 1000k. If you're trying to return a too short range, you should say so in the Content-Range header. In other words, in the above you should have used header("Content-Range: bytes 0-999/1000000"); I'm not sure it will work anyway, though. -- Philip J?genstedt Core Developer Opera Software
Received on Wednesday, 7 July 2010 01:36:21 UTC