Open Source Fraunhofer AAC Encoder (fdk-aac)
Open Source Fraunhofer AAC Encoder (fdk-aac)
Jul 11 2012, 17:02
Joined: 30-July 08
Member No.: 56482
Android 4.1 has included an AAC encoding library by Fraunhofer, and Libav/FFmpeg support for this library is in the works (that is, in a day or two, it will be official.)
From the release announcement:
As part of the Android Jelly Bean source code released recently, a new AAC
library was released as well, developed by Fraunhofer:
To ease using this library on platforms other than Android, I have added
an autotools based build system and done a minor portability fix, and
released this code as fdk-aac 0.1.0 today.
This project is hosted at sourceforge, under the opencore-amr project,
acting as an umbrella project for these codecs that are repackaged from
Android as standalone libraries, just as opencore-amr, vo-amrwbenc and
vo-aacenc before this one.
The release file is available at
and the code is available in git at
This library is licensed under a custom copyleft style license:
I in general intend to limit this project to minor tweaks and portability
fixes - for anything larger than that, I'd prefer if it first is
contributed upstream, to keep the difference between the upstream code and
this library as small as possible.
Edit: Obvious patent violation removed.
It can be used as such:
avconv -i <input> -c:a libfdk_aac -b:a <bitrate> -afterburner 1 <output>
aconv -i <input> -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 <output>
VBR modes 1-5 correspond to roughly:
-afterburner 1 enabkes "improved quality" mode.
Edit: This should be moved to the Tech forum.
This post has been edited by Garf: Jul 11 2012, 19:30
Aug 26 2012, 20:21
Joined: 26-August 12
Member No.: 102671
I'm a pro developer and I've worked on some audio related projects as well (using ffmpeg and aac libs). I didn't use fdk yet, but I used the one from vo. I short, the one from vo looks like a joke. They basically took the 3gpp source and dropped the sbr part. I guess the logic was to drop HE part from AAC-HE to get AAC encoder The funny thing is that the AAC part runs before sbr and the AAC part allocates buffer for the bitstream. It writes aac part in the buffer and then sbr part appends into that same buffer. They dropped the sbr part and as a result the voaac generates bitstream full of zeros. You can easily see that it's full of nullshit in a hex editor. Otherwise, it's similar to libaacplus I guess, but it has some minor cpu optimizations (pretty badly done as well). Google could have hired a good dev and that voaac could have been fixed in a couple of months (some bestest dudes from ffmpeg could have done that in a couple of weeks I guess). Overall, all pv or vo codecs that google bought from packetvideo or visual on are clear ripoffs from 3gpp code and they aren't even well done. Looks like some graduates from china worked on the 3gpp code.
About patents. Some view source code as explanation of the patent itself, that is, source code that implements patented technology infringes on it as much as the patent description. Source code might be converted to a tool that uses patented technology using a compiler. Patent description might be converted just the same way to a tool that uses patented technology using a developer with a compiler. But source code does not use patented technology. I think there were cases of successful defense that source code implementation cannot be blocked on grounds of free speech, something like: you can't prevent me to express this technology using some computer language. There is one guy who went to us court against the US and he was pretty successful representing himself without having any background in law training. I've stumbled upon this dude by reading his one of the fastest fft algorithms. I think he is also the person who wrote qmail. I don't know why I wrote the paragraph I just realized that binaries were blocked from HA, not the source code...
I'm no sound expert, but why don't you guys start pushing OPUS all over the place? Personally, from my code review and study of the codec it's not worse that AAC. It's just insane how it's impossible to get any license to all that AAC bs, plus the price is ridiculous. My personal opinion is that they invent new crap not because there is a need, but because they want to prevent from new players coming into the big game. If you look at HEVC git history: all of the commits by employees from all these well known companies (rim, qualcomm, sony etc etc). They simply put a few developers full time on codec development project and a legal team that checks daily on progress and patents every incarnation of the bubble sort with the only intention to increase number of the patents related to the "new" technology so that it would practically be impossible to prove anything before all these patents actually expire. Just the idea that all these companies suddenly collaborate on a publicly available BSD licensed library is really fishy. To me it's clear what their intentions are. It's not only my guesses, I kind of worked on similar project by similar company and biggest expense was not the developers but the legal team that was working with us along the way. Their job was to check with us if there is something new was created and explore all angles from where they could patent it as an "invention". It all looked like dirty scam from inside, and from outside it's presented as research with all bells and marketing whistles.
(usual mambo-jumbo that i'm no legal expert is omitted).
|Lo-Fi Version||Time is now: 1st February 2015 - 22:19|