[FFmpeg-devel] [PATCH] avcodec: Remove libfaac, the internal AAC encoder is better

Jan Ekstrom jeebjp at gmail.com
Sun Apr 10 22:00:23 CEST 2016


On Sun, Apr 10, 2016 at 10:13 PM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> This is not about changing a bad encoder to a good encoder, this patch
> is about removing choices.
> Before this patch users can force libfaac and have twice as long
> battery life at lower quality after the patch the users do not have
> that choice anymore
> I do not think thats a good idea nor in the interrest of our users

I have thought about this somewhat, and the things boil down to:
* Libfaac is old, unmaintained, produces relatively bad quality and
requires a "nonfree" configuration, which disables any sort of binary
distribution. Last point probably being the most problematic for
anyone who wants to use it outside of a server context. In which case
there's already fdk-aac available, which has found immense popularity
during the last few years before the internal encoder became better.
Fdk-aac still serves a purpose with HE-AAC, as well as some specific
LC-AAC use cases (latter according to some random people on #ffmpeg ),
so it yet isn't considered something worth removing.
* Both are very fast (about 30x realtime vs 60x realtime as far as
could be gathered by the numbers posted on this thread if I am reading
them correctly). Even if you are doing live recording, neither of
these is likely to be slow enough for the CPU usage to really matter.
* The faac encoder will still be there for those who really want to
still use it, albeit no longer through libavcodec. This can actually
ease usage for some people as they can now compile libavcodec without
enable-nonfree and instead handle the licensing incompatibility on
their side in one way or another (except it's supposedly licensed as
GPL while parts of its source code are suposedly GPL-incompatible,
thus pretty much making that case not really true, unlike fdk-aac
which doesn't seem to have such contradictions within its own code
* Keeping this encoder available will serve as an endorsement for it.
Do we really want to endorse this encoder?

Additionally, as a minor not-really-related anecdote, I have only seen
people on #ffmpeg having -c:a/-acodec libfaac on their command lines
when they have followed very old tutorials from up to just before
fdk-aac got published. They assume it's what they want to use due to
quality (which at this point is no longer true), and it used to be
distributed in various distributions linked to libavcodec - which is
no longer true in many distributions, such as Ubuntu.

In any case, I think my opinion on this boils to this component not
really being in any way good enough that we should keep this
alternative around, including but not limited to its license
situation. Old versions will keep having it, and if someone knowingly
wants to use it specifically through libavcodec, they can still do so.
Otherwise, they can stick it into their media workflow in other ways,
as I noted. I do try to understand the wish to keep choices available
to users, but in this case I am not sure if it brings in anything else
but confusion.

Best regards,
Jan Ekström

More information about the ffmpeg-devel mailing list