On Mon, Jul 7, 2014 at 4:27 PM, Erik Moeller <erik@wikimedia.org> wrote:
Really exciting new work by Brion to make free/libre video formats playable on, erm, not-so-free devices:


That was a fun experiment, hooking up open-source libraries to the weird world of Apple and Objective-C. :)


I've also discovered that the GStreamer media framework -- which wraps Ogg and other codecs in a consistent interface and provides download, playback, and even mixing logic -- is available as an iOS library, though it could use some improvements (for instance they don't yet include a 64-bit build).

GStreamer is a C library framework from the Linux/Unix free desktop world and can be used directly from an Objective-C application on iOS or OS X, linking in just the free codecs we need... and if we decide we need expert assistance using or maintaining it we can contract with supporting vendors like Collabora or Fluendo instead of rolling everything ourselves. This could make it much easier to implement better streaming, seeking, and adding WebM playback versus continuing to add them to my OgvKit experiment.

* http://gstreamer.freedesktop.org <- latest open-source dev version
* http://www.gstreamer.com <- commercial support site and a slightly older SDK

Note that GStreamer itself is LGPL licensed; there is some general FUD out there about LGPL possibly being incompatible with the Apple App Store, but a) there are some recommendations around that for proprietary apps, and b) we're an open source app so we provide all the source that gets linked against the library anyway, usable by people using the 'standard toolchain' for iOS.

But it does add several extra megabytes to the application size (probably more once 64-bit is added), and I don't know how hard it will be to really use it. It'll go on my weekend experiments rotation, and I'll present my findings at Wikimania. :D


Either way it'll be at least some months before we get to media playback support in the Wikipedia app. (It'll be much easier to implement on Android, since WebM is already supported natively by the OS and the web view, so media may come to Android before iOS.)

-- brion