Re: [WikimediaMobile] The path to video: media playback for the iOS app

2015-06-25 Thread Monte Hurd
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


___
Mobile-l mailing list
Mobile-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mobile-l


Re: [WikimediaMobile] The path to video: media playback for the iOS app

2015-06-25 Thread Corey Floyd
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


Re: [WikimediaMobile] The path to video: media playback for the iOS app

2015-06-25 Thread Brion Vibber
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


[WikimediaMobile] The path to video: media playback for the iOS app

2015-06-24 Thread Brion Vibber
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