[whatwg] Limiting the amount of downloaded but not watched video
philipj at opera.com
Wed Jan 19 08:41:12 PST 2011
On Wed, 19 Jan 2011 17:14:23 +0100, Zachary Ozer <zach at longtailvideo.com>
> Two ideas just struck me:
> == Network API calls ==
> What if, instead of trying to solve this problem, we leave it up to
> the publishers. The current behavior would be unchanged, but we could
> add explicit bandwidth management API calls, ie startBuffer() and
> stopBuffer(). This would let developers / site publishers control how
> much to buffer and when.
If we want to support this behavior, we already have the API that does
startBuffer() => preload = "auto"
stopBuffer() => preload = "metadata" (or "none", once playing the are
To be clear, my intentions with dynamically changing preload states is to
only ever go from lower to higher states, where the states are:
none < metadata < invoked < auto
(Invoked is the state after the video has begun playing.)
I've tried to imagine a use case for going back from auto to invoked, but
all I can think of is toggling it back and forth in an attempt to patch
over broken buffering heuristics in browsers. If the buffering heuristics
are broken, I'd rather fix them or provide authors with a way to give
additional relevant hints, like maybe downloadBufferTarget, some soft
min/max buffer limits, etc.
However, at the moment it's not entirely clear what the problem we're
trying to solve is. Maybe after more browsers have implemented the various
preload states and some kind of conservative buffering heuristics it'll be
clearer, or there won't be a problem at all.
> == User Behavior ==
> We might also consider leaning on users a bit to tell us what they
> want. For example, I think people are pretty used to hitting play and
> then pause to buffer until the end of the video. What if we just used
> our bandwidth heuristics while in the play state, and buffered blindly
> when a pause occurs less than X seconds into a video? I won't argue
> that this is a wonderful solution (or a habit we should encourage),
> but I figured I'd throw a random idea out there…
This is in fact exactly what Chrome does, and what I called "Cause an
invoked but paused video to behave like preload=auto".
More information about the whatwg