I've been looking at MobileVLCKit for some time actually, including submitting build script patches to make it easier to build as a framework and getting help from the VLC devs to make a stripped-down build option without the default proprietary codecs.
There are a few key things that have led me to prefer going a separate way: * Build reproducibility is bad. I very frequently encounter breakage after a fresh checkout, as the complex build system doesn't ensure that consistent versions of all the dependencies are used -- for instance there are a lot of patches which frequently fail to apply. If the code can't be safely rebuilt and dropped in, upgrading and debugging are potential nightmares. * No Xcode-friendly packaging. The recursive autoconf-based build system doesn't match up well with CocoaPods for packaging and building in Xcode with desired options. I could make a podspec that uses a prebuilt binary with specific options[1], but: * MobileVLCKit is large, and includes lots of things we don't need. A default framework build is literally hundreds of megabytes; the actual linked executable size is smaller but it still adds like 40 megabytes to the app bundle. Even with the no-scary-codecs option there's a lot of stuff in there and you get a huge library. We could work further to strip it down, but there may be diminishing returns. OGVKit wraps mostly the same open-source codec libraries that MobileVLCKit does, but the framework and playback logic is lighter-weight and the packaging is friendlier to debugging and versioning. Ultimately the API surface between the Wikipedia app and the player widget will be quite small; it should be easy to swap player libraries should the need arise. (Or replace it altogether with standard classes if we ever allow MP4 output on the servers...!) [1] Note I am using such a binary package for libvpx, the WebM VP8/VP9 video codec. I'm prebuilding that using libvpx's build scripts, which *are* nice and clean and consistent, and the resulting multi-arch framework binary is only a few megabytes. -- brion On Thu, Jun 25, 2015 at 3:46 PM, Corey Floyd <cfl...@wikimedia.org> wrote: > Brion - have a question about existing OGG players: Currently there is an > iOS framework called VLCKit (https://wiki.videolan.org/VLCKit/) by the > VideoLan crew that appears to handle OGG/WebM and seems to be under > active development. It is also being used in several shipping apps > (including the VLC iOS app) > > I see you forked it at sometime in the past… was there a reason why you > didn't pursue modifying it or using it as is within the iOS app to play > media files? > > On Thu, Jun 25, 2015 at 1:05 PM, Monte Hurd <mh...@wikimedia.org> wrote: > >> Brion this is so exciting! :) >> >> On Wed, Jun 24, 2015 at 3:53 PM, Brion Vibber <bvib...@wikimedia.org> >> wrote: >> >>> We've been stalled for years on adding media playback to the Wikipedia >>> iOS app due to the impasse between Wikimedia's insistence on free formats >>> and Apple's insistence on only supporting patented formats. >>> >>> I'm trying to route around that impasse by getting Ogg and WebM playback >>> up and running on iOS through a native widget library, which I've been >>> cleaning up to ready it for CocoaPods packaging. >>> >>> Here's the high-level library: >>> https://github.com/brion/OGVKit >>> >>> and provisional CocoaPods specifications for the low-level open-source >>> libraries it needs: >>> https://github.com/brion/OGVKit-Specs >>> >>> Once I finish some further fixes and do an API cleanup (version 0.5 on >>> my provisional milestones <https://github.com/brion/OGVKit/milestones>) >>> I plan to publish my podspecs and write a patch to the Wikipedia app that >>> uses OGVKit to handle media playback. >>> >>> >>> Rough patch plan: >>> * add OGVKit as dependency >>> * enhance the photo carousel view to instantiate a player view for >>> audio/video files, just like on Android >>> * add content CSS to clean up those video thumbnail 'Play media' links >>> * add a JS click handler for 'Play media' links to launch the carousel >>> * add a JS click handler for <audio> and <video> elements in content >>> * add a bunch of libraries to the list on the about page >>> >>> Ideally this should be a "surgical" patch and relatively minimal, though >>> an update of the Pods dir will pull in a lot of files. :) >>> >>> -- brion >>> >>> _______________________________________________ >>> Mobile-l mailing list >>> Mobile-l@lists.wikimedia.org >>> https://lists.wikimedia.org/mailman/listinfo/mobile-l >>> >>> >> > > > -- > Corey Floyd > Software Engineer > Mobile Apps / iOS > Wikimedia Foundation >
_______________________________________________ Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l