On Tue, Mar 16, 2010 at 9:18 AM, Magnus Manske
<magnusmanske(a)googlemail.com> wrote:
Checking on Ubuntu 9.10, I can confirm that the video
(tested only
one) has some issues in Firefox. It stops after 5 sec, but doesn't
kill the browser; it just doesn't proceed.
It stops in MediaPlayer after ca. 8 sec when played from the net, but
runs nicely when played from local disk. Same for VLC.
So, it's the network/streaming component, not the file.
Firefox buffering (and some other applications, no doubt) doesn't
interact well with short high bit-rate videos.
As this are both almost 5mbit/sec, this is probably the cause of the
problems here.
What happens is that it video begins downloading. Some portion is
buffered ahead. The videos starts playing, but the buffer is quickly
exhausted. The timer isn't stopped when the buffer underruns (either
by design because its less disruptive, or because everything is timed
from the audio and you didn't run out of audio) and by the time the
buffer refills the video is over.
The first way that this should be addressed is by providing lower
bitrate variants... it's not reasonable to expect users to be able to
stream a 5mbit/sec file. High rate files are good for editing, not
so good for streaming.
The second way this should be address is by making the lower bitrate
variants strictly buffering constrained: A non-constrained video will
easily have its instantaneous bitrate jump to 20x or more above the
nominal, which would necessitate very large buffers in order to
prevent underflow. The encoder can impose a constraint on these
bursts, but the negative impact on quality is pretty significant.
(In one pass rate controlled mode libtheora 1.1 imposes such a limit
by default)
For HTML5 video this can be addressed somewhat by adding the video
element in a paused (non-autoplay) state with the prebuffer
attribute.... then JS code, after a short fixed time (or after
querying the browser buffering state), play is initiated. (Or it
can be left for the user to hit play). Unfortunately, ubuntu
firefox has some stupid bug where sometimes videos refuse to play if
they've been paused until the page is reloaded.