I'm landing a big update to the ogv.js Ogg player shim for Safari/IE/Edge; ogv.js 1.1.3 fixes some seek bugs with the future video.js frontend code, and has a bunch of performance & correctness updates.
On slower machines (like older iPhones, or old Windows machines running IE) ogv.js now makes better use of dual-core CPUs to overlap decoding one frame with drawing another, etc. It's also much more aggressive about keeping audio and video synchronized, making short delays instead of letting it get wildly out of sync followed by a weird catchup period.
With the seek & sync bugs mostly cleaned up, I'm also turning some of my A/V attention to iOS, making updates to my OGVKit Objective-C library which uses native builds of the Ogg and VPX libraries, able to handle higher resolutions on slower phones than ogv.js can. I'll track down the current iOS mobile app folks and see what the best way to work with them on this is. :)
Back to TimedMediaHandler -- Derk-Jan has been doing some more updates on the Video.JS-based new frontend code, which I'm reviewing through this week and hope to have merged and cleaned up for further testing. In addition to looking more modern and being more actively maintained, video.js is more mobile-friendly -- deploying the new frontend when it's ready will get us more consistent media playback on Android, and ogv.js-based playback on iPhone and iPads in the mobile view.
I've also got a number of back-end fixes to finish up such as a new maintenance script for re-running video transcodes. It currently needs just one more option, which is a 'throttle' so we can background-run it unattended without worrying it'll fill up the job queues.
In the closer future, 720p and 1080p Ogg transcodes should start rolling out in the next few weeks for manual switching, and we'll see how it all goes. :)
Farther out in the future -- I did testing last month on transcoding, and some preliminary planning for how to do adaptive streaming (seamless resolution switching as necessary). I've got a pretty good handle on how it will work for native WebM playback, and a good theoretical model for how it should be possible with ogv.js and Ogg playback by creating an analogue of the native Media Source Extensions APIs, and encoding / dividing up the packetized files _just so_.
Note that creating adaptive-switchable Ogg transcodes will require customizing ffmpeg2theora and/or creating a separate similar tool specific to our needs. Shouldn't require any new daemons/services though.
-- brion
multimedia@lists.wikimedia.org