Am 17.01.2011 17:41 schrieb Jeroen Wijering:
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).
Could this be done at the user side, e.g. with some browser setting? Or
even by a "stop downloading" control in the player? An intuitive user
control would be separate stop and pause buttons, as we know them from
tape and CD players. Pause would then behave as it does now, while stop
would cancel downloading.
This would be helpful, as there are various viewing situations, that are
not under control of the web developer:
1. Start playback, pause, do something else and wait until the movie is
downloaded (the case Boris Zbarski mentioned)
2. On a page with multiple movies, such as a Myspace profile of a
musician, you start playback of a movie, pause it to see the next one,
pause it to see the third one... and soon you have several movies
downloading, instead of only the last one you really want to see at the
moment.
While in situation 1 the download buffer would be a hassle, it would be
helpful in situation 2. Separate pause and stop controls would help in
both cases.