downloadBufferTarget in seconds is not that good. Think about a movie that takes more to load than to see. Depending on the settings the developer done, you might have to pause the video at some point to load the rest of the movie.

On Mon, 17 Jan 2011 17:41:13 +0100, Jeroen Wijering wrote:
Hello all,

We are getting some questions from JW Player users that HTML5 video
is quite wasteful on bandwidth for longer videos (think 10min+). This
because browsers download the entire movie once playback starts,
regardless of whether a user pauses the player. If throttling is used, it seems very conservative, which means a lot of unwatched video is in
the buffer when a user unloads a video.

I did a simple test with a 10 minute video: playing it; pausing after
30 seconds and checking download progress after another 30 seconds.
With all browsers (Firefox 4, Safari 5, Chrome 8, Opera 11, iOS 4.2),
the video would indeed be fully downloaded after 60 seconds. Some
throttling seems to be applied by Safari / iOS, but this could also be bandwidth fluctuations on my side. Either way, all browsers downloaded
the 10min video while only 30 seconds were being watched.

The HTML5 spec is a bit generic on this topic, allowing mechanisms
such as stalling and throttling but not requiring them, or prescribing
a scripting interface:


http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#concept-media-load-resource

Are there people working on ways to trim down the amount of
not-watched data for video playback? Any ideas on this, anything in
the pipeline?

---

A suggestion would be to implement / expose a property called
"downloadBufferTarget". It would be the amount of video in seconds the
browser tries to keep in the download buffer.

When a user starts (or seeks in) a video, the browser would try to
download "downloadBufferTarget" amount in seconds of video. When
"downloaded > currentTime + downloadBufferTarget", downloading would
get stalled, until a certain lower treshold is reached (e.g. 50%) and
the browser would start downloading additional data.

A good default value for "downloadBufferTarget" would be 60 seconds.
Webdevelopers who have short clips / do not care about downloads can
set "downloadBufferTarget" to a higher value (e.g. 300). Webdevelopers
who have long videos (15min+) / want to keep their bandwidth bill low
can set "downloadBufferTarget" to a lower value (e.g. 15).
Webdevelopers might even change the value of "downloadBufferTarget"
per visitor; visitors with little bandwidth get a sizeable buffer (to
prevent stuttering) and visitors with a big pipe get a small download
buffer (they don't need it).

The "buffered" timeranges could be used to compare the actual
download buffer to the buffer target, should a user-interface want to
display this feedback.

Note that the download buffer is not the same as the playback buffer.
A download buffer underrun should not result in pausing the video. The
download buffer does also not apply to live streaming.

Kind regards,

Jeroen Wijering
Longtail Video

----

PS: Having the "preload=none" property available in all browsers will
also help in keeping the amount of downloaded but not watched data
low. In our tests, only Firefox (4 b9) seems to honor this property at
present.

Reply via email to