views:

1713

answers:

8

The main players seem to be x264, and xvid, and both are GPL. This means we can't integrate decoding capabilities into a playback application without licensing the whole thing as GPL, so we can't use either.

The preferred target platform is Linux. Any non-viral open license is fine, we're more than happy to provide the source of any changes we make to libraries, just not our whole application.

Is there anything? Or maybe we should use GPL for now as a test during development, and plan to replace it with commercially licensed codec before shipping?

+2  A: 

A project derived from AMD performance library, Framewave, now has a video component supporting h.264 decoding.

The license is the "Apache 2.0 license"

you can check it out at Sourceforge SVN

jcinacio
Thanks, I saw that and passed over it, assuming it was AMD-only.
Mark Renouf
+1  A: 

Ok, FFMpeg appears to handle h.264. I believe most of it is LGPL.

Would still love to hear experiences with it (good or bad), or other options, thanks.

-- Correction, the version I just tested appears to be compiled with "--enable-gpl", which leads me to beleive it's making use of GPL licensed codecs. Argh!

Mark Renouf
FFMPEG optionally links to x264, and if it does, it falls under the GPL. The license choice depends on configuration options and I believe that x264 is required for h.264 support.
greyfade
Is your app contaminated by GPL if it only invoques ffmpeg through system() or popen()?
mouviciel
A: 

I've done some work with FFmpeg, though it was limited to libavformat (the codec part is called libavcodec). I found the API to be surprisingly straight forward and easy to use. They provide a few really useful and enlightening samples in the standard source distribution.

Generally the library holds rather high quality, but some modules seems to be lacking, so I can't vouch for the h264 part. I've heard good things about the encoder, though.

Emil H
+3  A: 

IANAL, but if you're shipping anywhere software patents are enforced, not only do you have to pay the MPEG LA royalties for h.264 decoding, but the license might preclude you from using the open-source decoders anyhow. I've heard of similar annoyances applying to other codecs.

ephemient
+1  A: 

IANAL.

If you ship unmodified binaries created from unmodified GPL source and your application simply invokes them, I believe your entire app does not have to be GPL. You may have to include GPL documentation and/or the source of the bundled GPL apps, but if you are not making any modifications or linking against GPL code, your code should be unaffected.

As far as the MPEG standards, that may be another bag of worms entirely...

HUAGHAGUAH
Yes, we do that now, simply invoking mplayer. The future goal is to integrate videos together with other content into a seamless result, possibly with transparency or other effects. The current thinking is, to do this with reasonable performance it has to be integrated.
Mark Renouf
+2  A: 

PocketVideo's OpenCore is now open-sourced under Apache 2.0 license as part of Android OS: http://android.git.kernel.org/?p=platform/external/opencore.git;a=shortlog

Krzysztof Kowalczyk
+1  A: 

Take a look at the Intel IPP Libraries. They are not free, but are very cheap (a once-off payment of a hundred dollars or something). You can also get a free evaluation to test it out. The licence is very open, and as far as I know allows you unlimited distribution in your application forever once you buy it.

Lehane
+3  A: 

The ffmpeg H.264 decoder is LGPL. Only the encoders are GPL, and x264 does not provide a decoder.

It also has the advantage over Framewave and IPP of actually being usable.

alex strange