Got seeking with index working last weekend; spent some holiday time
updating the TimedMediaHandler plugin to use it:
http://ogvjs-testing.wmflabs.org/wiki/Demo
I've also updated the compatibility detection code to use the JavaScript
player for IE 10 and 11, since the Flash version cannot do HTTP Range
requests (and thus cannot seek). These still use Flash for audio output,
but all the decoding is done in JS.
There's a funky bug where the player state gets confused if you play
through a second time after completion, still have to track that down.
Also still need to rework the MobileFrontend integration to be more stable;
Jon's suggested refactoring it to just the internals so I can piggyback
directly on the existing mobile media viewer overlay (perhaps with an
extensible hook?) without trying to extend the still-fragile overlay API.
Will also need to add seek controls on mobile. :)
-- brion
On Tue, Oct 28, 2014 at 6:41 AM, Michael Dale <mdale(a)wikimedia.org> wrote:
From: Brion Vibber <bvibber(a)wikimedia.org>
Date: Sunday, October 26, 2014 at 8:15 PM
To: Michael Dale <mdale(a)wikimedia.org>
Cc: Wikimedia Foundation Multimedia Team <multimedia(a)lists.wikimedia.org>rg>,
mobile-l <mobile-l(a)lists.wikimedia.org>
Subject: Re: [WikimediaMobile] [Multimedia] Review needed for mobile
video overlay (native and ogv.js playback)
Spent some weekend time on this and got both chunked streaming for Safari
and a bisection-based seek working[1]. Haven't merged it into the TMH
version yet as I'm not satisfied with the seek performance, but I have a
pretty good idea how to seek based on Ogg Skeleton metadata by using
liboggz on the C side and giving it custom i/o functions that manipulate
the JS XHR wrapper.
Of course, now I need to redesign the controls for the mobile overlay so
there's a way to actually invoke the seeking. ;) (On desktop it should be
able to use the existing controls in MwEmbedPlayer.)
[1]
https://github.com/brion/ogv.js/commit/cad8ef8d067a509a2a18b4ed683e2c4a17b5…
Wow, great work.
Yes using the ogg index would be the way to go, bisection seeking never
worked too well for native implementations either. All derivatives created
in WMF should include ogg skeleton / index.
—michael