[Libav-user] // binary distribution of ffmpeg libs compiled with fdk_aac

Alex Pokotilo support at wmspanel.com
Mon Jan 30 10:29:08 EET 2017

Our clients asked us to add fdk_aac support into our transcoder.
Our company is a licensee of Via Licensing (which collects AAC license
payments) so we can use fdk_aac as we pay license fees.
We distribute ffmpeg libs in accordance with LGPL and we don't want to
violate anything.

According to https://trac.ffmpeg.org/wiki/Encode/AAC page:

"FFmpeg can support two AAC-LC encoders (aac & libfdk_aac) and one
HE-AAC(v1/2) encoder (libfdk_aac).
The license of libfdk_aac is not compatible with the GPL, so the GPL does
not permit distribution of
binaries containing incompatible code when GPL-licensed code is also
included. Therefore this encoder
have been designated as "non-free", and you cannot download a pre-built
ffmpeg that supports it.
This can be resolved by compiling ffmpeg yourself."

But on the same page in section "libfdk_aac" the following is stated:

"The Fraunhofer FDK AAC codec library. This is currently the highest-quality
AAC encoder available with ffmpeg. Requires ffmpeg to be configured with
(and additionally --enable-nonfree if you're also using --enable-gpl)."

We don't plan to compile with --enable-gpl so we don't have to use
--enable-nonfree but it looks like first note forbids us from distribution
binary ffmpeg libs compiled with libfdk_aac in anyway.

fdk_aac build script is

git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
git checkout v0.1.5
./configure --enable-shared=no --enable-static --with-pic
make -j 4
make install
cd ..

ffmpeg configuration script will be

./configure \
  --prefix="$BUILD_DIR" \
  --extra-cflags="-I$BUILD_DIR/include" \
  --extra-ldflags="-L$BUILD_DIR/lib" \
  --bindir="$BUILD_DIR/bin" \
  --enable-libfdk-aac \
  --disable-static     \
  --enable-shared      \
  --enable-pic         \
  --disable-decoders   \

  --disable-encoders   \
  --enable-encoder=aac,png,libfdk_aac \
  --disable-muxers     \
  --disable-demuxers   \
  --enable-demuxer=mov,image2,gif,mp3 \
  --disable-parsers    \
  --disable-bsfs       \
  --disable-protocols  \
  --enable-protocol=file \
  --disable-indevs     \
  --disable-outdevs    \
  --enable-filters     \
  --disable-ffserver   \
  --disable-ffmpeg     \
  --disable-ffprobe    \
  --disable-ffplay     \
  --enable-libspeex    \
  --enable-libfreetype \

As you can see ffmpeg could be compiled with fdk_aac but without
--enable-gpl and --enable-nonfree.
fdk_aac is linked to ffmpeg statically but we can link fdk_aac and ffmpeg
dynamically. It doesn't matter. Static link here is just more convenient.

So the question is: can we distribute ffmpeg binaries built with fdk_aac?
According to "configure" params and https://www.ffmpeg.org/legal.html  it's
ok but according to https://trac.ffmpeg.org/wiki/Encode/AAC it's not, hence
the question.

Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20170130/af08d074/attachment.html>

More information about the Libav-user mailing list