On Tue, 06 Jul 2010 23:19:42 +0200, Marques Johansson
<marq...@displague.com> wrote:
On Tue, Jul 6, 2010 at 4:37 PM, Aryeh Gregor
<simetrical+...@gmail.com<simetrical%2b...@gmail.com>
wrote:
On Tue, Jul 6, 2010 at 10:24 AM, Marques Johansson
<marq...@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