[Libav-user] about ffmpeg's lgpl

Alex Cohn alexcohn at netvision.net.il
Tue Dec 6 09:49:42 CET 2011

On Mon, Dec 5, 2011 at 12:30, kunkka cai <sycsdr at gmail.com> wrote:
> Hi,
> I'm developing a free (in price) software which should be able to play mp3
> files. I know ffmpeg is a great codec, so I want my application to link
> against it.
> Actually I have built some Dlls (avcodec-52.dll, avformat-52.dll,
> avutil-50.dll) without  "--enable-gpl" and without "--enable-nofree". And my
> application that linking against those dlls works well.
> Since I don't want my software to be open-source or become under LGPL/GPL.
> That means I don't want to distribute the source code of my application, but
> I can distribute the source code of the ffmpeg dlls I use.

Yes, you should provide the source code with any build scripts you use.

> Can I compress them(my application and those dlls) together into a single
> installation file and distribute it on the internet? Or what can I do?

Yes, you can distribute the binaries of ffmpeg you built, but:

 - The end user should easily find the licensing info for libav
components used in your distribution;

 - The end user should easily find the source code and build
scripts/instructions to rebuild these components if they wish.

The ultimate solution is to include these sources in your
distribution; after all, it's only around 10 MByte zipped.

If bundling the sources is not possible or not relevant in your case,
you can keep them separate, but you should provide certain guarantees
that they will be easily and reliably available to anybody who has
your product installed (IMHO this means that you cannot rely on a free
public download site for that).

 - The end user should be able to replace the av libraries in his
installation with the versions built by them.

You carry no obligation that this will work unless they reproduce
precisely your instructions and use the sources that you supplied.
(For example, if they decide to upgrade to latest version of ffmpeg,
or to perform a debug build, whatever).

This requirement may become tricky or even prohibitive in some
situations (e.g. on iOS platform), but for a typical Windows
application it's enough to write a short instruction for replacing the
ffmpeg dlls (and test it yourself !!).

Alex Cohn

Disclamer: I am not a lawyer, and the advise above is not legally
bounding. In case of miniscule doubt, consult your lawyer who
specializes in open source software.

More information about the Libav-user mailing list