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@wikimedia.org> wrote:

From: Brion Vibber <bvibber@wikimedia.org>
Date: Sunday, October 26, 2014 at 8:15 PM
To: Michael Dale <mdale@wikimedia.org>
Cc: Wikimedia Foundation Multimedia Team <multimedia@lists.wikimedia.org>, mobile-l <mobile-l@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.)



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