Hydrogenaudio Forums

Lossy Audio Compression => AAC => AAC - General => Topic started by: D404 on 2012-07-11 17:02:25

Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-07-11 17:02:25
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:
Quote
As part of the Android Jelly Bean source code released recently, a new AAC
library was released as well, developed by Fraunhofer:
https://android.googlesource.com/platform/external/aac (https://android.googlesource.com/platform/external/aac)

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
http://sourceforge.net/projects/opencore-amr/files/fdk-aac/ (http://sourceforge.net/projects/opencore-amr/files/fdk-aac/)
and the code is available in git at
git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/fdk-aac.

This library is licensed under a custom copyleft style license:
http://opencore-amr.git.sourceforge.net/gi...a=blob;f=NOTICE (http://opencore-amr.git.sourceforge.net/git/gitweb.cgi?p=opencore-amr/fdk-aac;a=blob;f=NOTICE)

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:

Bitrate Mode
Code: [Select]
avconv -i <input> -c:a libfdk_aac -b:a <bitrate> -afterburner 1 <output>


VBR Mode
Code: [Select]
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.

Cheers.

Edit: This should be moved to the Tech forum.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-07-11 19:02:00
Heh, interesting. It was pointed out that the previous encoder they had had very questionable licensing because it appeared to be 3GPP code with the copyright notice of another firm slapped on it: http://www.hydrogenaudio.org/forums/index....showtopic=88183 (http://www.hydrogenaudio.org/forums/index.php?showtopic=88183)

I guess Google "fixed" that.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-11 19:14:46
I wonder if it's the same or similar encoder as Winamp FhG AAC. It has the same number of VBR modes (the last version of past year).  If it's the case then it will be a first high quality open source AAC encoder. 
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: LithosZA on 2012-07-11 19:21:33
Quote
I wonder if it's the same or similar encoder as Winamp FhG AAC. It has the same number of VBR modes. If it's the case then it will be a first high quality open source AAC encoder. w00t.gif

I hope this is true
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-07-11 19:23:12
Quote
I wonder if it's the same or similar encoder as Winamp FhG AAC. It has the same number of VBR modes. If it's the case then it will be a first high quality open source AAC encoder. w00t.gif

I hope this is true


It certainly looks like the real thing to me... (I don't know if this is Winamps encoder, but it's certainly a full-featured encoder not based on any code I've seen, with full psymodel, smart bitallocation etc)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-11 19:23:55
Can anyone run this encoder in high quality mode (-afterburner 1) with VBR let's say at 96 kbps compare it to Winamp FhG  encoder VBR 3  in wave editor?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Brand on 2012-07-11 20:31:27
I wonder if it's the same or similar encoder as Winamp FhG AAC. It has the same number of VBR modes (the last version of past year).

But the bitrates are much lower than those from Winamp's FhG AAC. (Mode 4 in Winamp's encoder is ~130kbps, for example.)
Or maybe those are not the same kind of VBR modes?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-11 20:37:48
Winamp FhG encoder: VBR 4  130 kbps stereo.
This new encoder: VBR 4  64 kbps/channel, 130 kbps stereo.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: punkrockdude on 2012-07-11 20:49:32
Interesting! I look forward to try it.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Brand on 2012-07-11 20:52:04
Winamp FhG encoder: VBR 4  130 kbps stereo.
This new encoder: VBR 4  64 kbps/channel, 130 kbps stereo.

Oh, I see.

It would be nice if it's the same encoder then. To me it sounded like the best AAC encoder when I was testing them (only tested with one sample, tho..).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: 06_taro on 2012-07-11 22:33:36
libfdk-aac also has an aac decoder, which can decode AAC-LD/AAC-ELD, though limited to 16-bit integer output.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-11 22:38:45
as well as ELD/LD-AAC encoder.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: saratoga on 2012-07-12 00:04:04
libfdk-aac also has an aac decoder, which can decode AAC-LD/AAC-ELD, though limited to 16-bit integer output.


Not much in the way of ARM assembly code though, so probably no faster then existing arm decoders.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2012-07-12 09:37:24
Is this available on windows?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-07-12 16:01:56
Is this available on windows?


I had posted one but it was removed due to :patents: (even though the VisualOn binary is still allowed... I dunno why.)

Looks like you'll have to compile from source yourself, of use the magic of the Internet to find one.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-07-12 16:40:41
even though the VisualOn binary is still allowed... I dunno why.


Fixed, thanks for pointing this out.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: 2012 on 2012-07-12 17:45:24
It looks like low pass decisions are broken in CBR for bitrates >192kbps (2 channels/ 44100Hz).
It seems to never go above 17kHz even if the bitrate is set to 512kbps.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-07-12 20:22:27
It looks like low pass decisions are broken in CBR for bitrates >192kbps (2 channels/ 44100Hz).
It seems to never go above 17kHz even if the bitrate is set to 512kbps.


Seems to be settable in the API, and should be added as an option to avconv soon, I think.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: benski on 2012-07-12 20:31:58
Is this available on windows?


I had posted one but it was removed due to :patents: (even though the VisualOn binary is still allowed... I dunno why.)

Looks like you'll have to compile from source yourself, of use the magic of the Internet to find one.


I am not a lawyer, but here is the part of the license that is problematic for use of this source code in other projects
Code: [Select]
  51 3.    NO PATENT LICENSE
  52
  53 NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without limitation the patents of Fraunhofer,
  54 ARE GRANTED BY THIS SOFTWARE LICENSE. Fraunhofer provides no warranty of patent non-infringement with
  55 respect to this software.
  56
  57 You may use this FDK AAC Codec software or modifications thereto only for purposes that are authorized
  58 by appropriate patent licenses.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: saratoga on 2012-07-12 21:01:32
I am not a lawyer, but here is the part of the license that is problematic for use of this source code in other projects
Code: [Select]
  51 3.    NO PATENT LICENSE
  52
  53 NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without limitation the patents of Fraunhofer,
  54 ARE GRANTED BY THIS SOFTWARE LICENSE. Fraunhofer provides no warranty of patent non-infringement with
  55 respect to this software.
  56
  57 You may use this FDK AAC Codec software or modifications thereto only for purposes that are authorized
  58 by appropriate patent licenses.



I don't think that would be a problem for most open source licenses.  Off hand I can't think of any that force you to also provide patent licenses to go with the software license, since in practice that would be almost impossible to know which patents were covered and which were not.  IIUC, that basically leaves you in the same place as the GPL, you're allowed under copyright law but patent law is up to you and your country.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-07-12 21:48:59
The extra statements in the license are there because it's a BSD-style license, and there's some line of legal arguing (not confirmed in court. and quite arguable, but still) that says that BSD licensed software comes with an implicit patent license. FhG especially doesn't want to give you such a license because they make money from AAC patents, which is why they add that clarification.

(Note that even if FhG had given an implicit or explicit license, there are still many AAC patents they don't own. So you can't distribute AAC encoder binaries without a patent license. Please don't post illegal stuff here, which means no encoder binaries unless you have an actual licensing deal.)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2012-07-13 17:29:34
How do I fit it into foobar2000 for encoding?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: ExUser on 2012-07-13 18:42:20
How do I fit it into foobar2000 for encoding?
It needs to be compiled and released somewhere first. Whether Rarewares is an acceptable site to host such material seems to be a topic of discussion right now.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: skamp on 2012-07-13 19:55:18
I'd settle for instructions on how to compile avconv (libav) with support for fdk-aac. Or would that be illegal too?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-07-13 20:15:25
I'd settle for instructions on how to compile avconv (libav) with support for fdk-aac. Or would that be illegal too?


Nothing wrong with that. Publishing source code is OK, talking about patented technologies is OK too (we wouldn't have much to discuss if it wasn't :-)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lvqcl on 2012-07-13 20:38:51
I downloaded avconv and latest Winamp and encoded one song in VBR mode (quality = 1-6 for Winamp, 1-5 for avconv):
Winamp encoder: 37; 64; 103; 142; 215; 264 kbps
avconv encoder: (failed); 128; 141; 165; 258 kbps.

lowpass frequencies also differ significantly.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-07-13 21:27:18
I downloaded avconv and latest Winamp and encoded one song in VBR mode (quality = 1-6 for Winamp, 1-5 for avconv):
Winamp encoder: 37; 64; 103; 142; 215; 264 kbps
avconv encoder: (failed); 128; 141; 165; 258 kbps.

lowpass frequencies also differ significantly.


Mode 1 isn't valid for LC-AAC, afaik. I'll look into getting this documented.

It looks like low pass decisions are broken in CBR for bitrates >192kbps (2 channels/ 44100Hz).
It seems to never go above 17kHz even if the bitrate is set to 512kbps.


This is now settable in Libav.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: skamp on 2012-07-13 21:33:30
I'd settle for instructions on how to compile avconv (libav) with support for fdk-aac. Or would that be illegal too?


ffmpeg git compiles after applying a patch (http://ffmpeg.org/pipermail/ffmpeg-devel/2012-July/127559.html). Configure needs --enable-libfdk-aac.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: 2012 on 2012-07-13 21:46:44
I downloaded avconv and latest Winamp and encoded one song in VBR mode (quality = 1-6 for Winamp, 1-5 for avconv):
Winamp encoder: 37; 64; 103; 142; 215; 264 kbps
avconv encoder: (failed); 128; 141; 165; 258 kbps.

lowpass frequencies also differ significantly.


To expand on what D404 said,  Profiles are not auto-selected.
So you need to pass `-profile aac_he` or `-profile aac_he_v2` manually.

IIRC, in Winamp:
q=2 --> aac_he
q=1 --> aac_he_v2
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: 2012 on 2012-07-13 21:50:04
I'd settle for instructions on how to compile avconv (libav) with support for fdk-aac. Or would that be illegal too?


ffmpeg git compiles after applying a patch (http://ffmpeg.org/pipermail/ffmpeg-devel/2012-July/127559.html). Configure needs --enable-libfdk-aac.


libav (the real active upstream) does not need any patches.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lvqcl on 2012-07-13 21:59:36
Ok then.
Winamp encoder: 37; 64; 103; 142; 215; 264 kbps
avconv encoder: 37; 87; 141; 165; 258 kbps
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-13 22:09:42
lvqcl,

Can You post some frequency graphs of both encoders at similar bitrates or modes?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lvqcl on 2012-07-13 22:47:39
It turns that avconv adds 2048 null samples to the beginning of encoded files in LC-AAC mode (even more in HE-AAC).

Spectrograms for VBR modes in Winamp:

37 kbps, HE-AAC v2 -- (http://i.imgur.com/ebnt9.png)

64 kbps, HE-AAC -- (http://i.imgur.com/U0HPK.png)

103 kbps, LC -- (http://i.imgur.com/VZdpI.png)

142 kbps, LC -- (http://i.imgur.com/7WaRK.png)

215 kbps, LC -- (http://i.imgur.com/NlmVI.png)

264 kbps, LC -- (http://i.imgur.com/JkCW8.png)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lvqcl on 2012-07-13 22:48:23
Spectrograms for VBR modes in avconv:

37 kbps, HE-AAC v2 -- (http://i.imgur.com/6n899.png)

87 kbps, HE-AAC -- (http://i.imgur.com/pnD5X.png)

141 kbps, LC -- (http://i.imgur.com/wOAZN.png)

165 kbps, LC -- (http://i.imgur.com/VgvGA.png)

258 kbps, LC -- (http://i.imgur.com/TQknL.png)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kode54 on 2012-07-14 01:58:10
It turns that avconv adds 2048 null samples to the beginning of encoded files in LC-AAC mode (even more in HE-AAC).

I'm seeing this, too. It would be extremely nice for gaplessness if these null samples would be reported as extra encoder latency in the Apple and Nero chapters, which are used for the track trimming.

Actually, it should not be using null samples, but rather, employ a linear predictive coder function to reverse fill from the initial samples of the input data. libvorbis and postfish include one if you don't already have one, or at least demonstrate how to use one for this purpose. I just lifted the one from libvorbis for opusenc in the opus-tools package for track end padding, when the last block of samples is not enough to complete an entire Opus packet. Look at me, I almost sound like I know what I'm doing. Actually, someone in #opus had to tell me that LPC would be better than last-sample-hold padding, and I had to research it a bit.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Brazil2 on 2012-07-14 10:29:52
VBR Mode
Code: [Select]
aconv -i <input> -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 <output>

When using this command line:

It fails with a 96kHz source file:
Code: [Select]
Assertion failed!
File: ./libFDK/include/fixpoint_math.h, Line 459
Expression: (intValue > 0) && (intValue < 50)


It automatically downmix a 7.1 source file to 5.1.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-07-15 17:39:02
lvqcl

Thank You. So it's not extacly the same encoder as Winamp's one.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: jossilint on 2012-08-02 12:26:51
Hello, do anyone knows where to get ffmpeg.exe x64 that has this fdk codec included or some automated compilation toolchain because i do not know anything about programming.

What is quality of this fdk codec anyway, this far i have used ffmpeg internal encoder but lot say this is bad quality(192kbs for me sounded fine), is this fdk better than any other open codec this far?

Death to patents....
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: smok3 on 2012-08-07 00:32:14
playing around, testing with new ffmpeg (from git), only interested in vbr modes, this looks like it might work:

for lc:
Code: [Select]
ffmpeg -i in -c:a libfdk_aac -flags +qscale -global_quality 2 -afterburner 1 -vn out.m4a
(valid range for -global_quality seems to be >1 (1=error))

for he:
Code: [Select]
ffmpeg -i in -c:a libfdk_aac -profile:a aac_he -flags +qscale -global_quality 1 -afterburner 1 -vn out.m4a
(valid range for -global_quality seems to be 1-5)

for he_v2:
Code: [Select]
ffmpeg -i in -c:a libfdk_aac -profile:a aac_he_v2 -flags +qscale -global_quality 1 -afterburner 1 -vn out.m4a
(valid range for -global_quality seems to be 1-2)

-------------------

Real world speed test on entry level mac-pro (Lion), encoding one album from flac source:
case1: flac > fdk_aac (-flags +qscale -global_quality 2 -afterburner 1), time = 02:53 (slow), without afterburner = 02:52 (slow)
case2: flac > intermediate aif > apple aac (afconvert -v -f "m4af" -s 3), time = 01:10 (fast)
(note: this speed test is small and most likely irrelevant, could also be some mistake I did during compilation of ffmpeg with fdk)

-------------------
about ffmpeg used:
Code: [Select]
ffmpeg version N-43145-g32aeba1 Copyright © 2000-2012 the FFmpeg developers
  built on Aug  2 2012 19:14:22 with Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
  configuration: --prefix=/Volumes/tempdisk/sw --enable-gpl --enable-nonfree
  --enable-libx264 --enable-libfdk-aac --cc=clang --enable-runtime-cpudetect
  libavutil      51. 66.100 / 51. 66.100
  libavcodec    54. 47.100 / 54. 47.100
  libavformat    54. 22.100 / 54. 22.100
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter    3.  5.101 /  3.  5.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample  0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: qbast on 2012-08-08 13:52:20
It is also quite buggy: I found 4 different places where asserts are hit when encoding various files (3 of them are passing negative value to division and root square functions, one is too big value in inverse quantization). It probably "works" on Android, because asserts are enabled only for debug and for x86 builds. As smok3 noticed, it is also quite slow due to lack of any optimizations for x86 (there are asm functions for mips and arm). It has however one huge advantage: much better quality at low bitrates than faac and libaacplus.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-08-08 16:56:01
It is also quite buggy: I found 4 different places where asserts are hit when encoding various files (3 of them are passing negative value to division and root square functions, one is too big value in inverse quantization). It probably "works" on Android, because asserts are enabled only for debug and for x86 builds. As smok3 noticed, it is also quite slow due to lack of any optimizations for x86 (there are asm functions for mips and arm). It has however one huge advantage: much better quality at low bitrates than faac and libaacplus.


Could you shared samples and/or cmd lines that trigger these asserts?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: qbast on 2012-08-09 17:01:06
It is also quite buggy: I found 4 different places where asserts are hit when encoding various files (3 of them are passing negative value to division and root square functions, one is too big value in inverse quantization). It probably "works" on Android, because asserts are enabled only for debug and for x86 builds. As smok3 noticed, it is also quite slow due to lack of any optimizations for x86 (there are asm functions for mips and arm). It has however one huge advantage: much better quality at low bitrates than faac and libaacplus.


Could you shared samples and/or cmd lines that trigger these asserts?


I uploaded 3 short samples here (http://www.hydrogenaudio.org/forums/index.php?showtopic=96418) . I can't find 4th one unfortunately (the one that triggers assert on sbr envelope calculation).
Tested using newest fdk-aac and ffmpeg.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: D404 on 2012-08-10 21:09:53
I uploaded 3 short samples here (http://www.hydrogenaudio.org/forums/index.php?showtopic=96418) . I can't find 4th one unfortunately (the one that triggers assert on sbr envelope calculation).
Tested using newest fdk-aac and ffmpeg.


They should be fixed now in the git version of fdk-aac.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: smok3 on 2012-08-13 11:21:55
is there a "compile this git for dummies" txt somewhere?


Code: [Select]
ticho@ticho:~/ffmpeg/fdk-aac$ autoconf
ticho@ticho:~/ffmpeg/fdk-aac$ ./configure
configure: error: cannot find install-sh, install.sh, or shtool in . "."/.
ticho@ticho:~/ffmpeg/fdk-aac$ autoreconf
aclocal: couldn't open directory 'm4': No such file or directory
autoreconf: aclocal failed with exit status: 1

nevermind, this did the trick:
Code: [Select]
$ libtoolize --force
$ aclocal
$ autoheader
$ automake --force-missing --add-missing
$ autoconf
$ ./configure
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: 2012 on 2012-08-13 13:31:58
nevermind, this did the trick:
Code: [Select]
$ libtoolize --force
$ aclocal
$ autoheader
$ automake --force-missing --add-missing
$ autoconf
$ ./configure

autoreconf is your friend:
Code: [Select]
autoreconf -fi
./configure
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: qbast on 2012-08-13 19:11:46
I uploaded 3 short samples here (http://www.hydrogenaudio.org/forums/index.php?showtopic=96418) . I can't find 4th one unfortunately (the one that triggers assert on sbr envelope calculation).
Tested using newest fdk-aac and ffmpeg.


They should be fixed now in the git version of fdk-aac.


That's great. I also forked it on GitHub and started working on x86 optimizations. Hopefully enough people will get interested to make it a good encoder.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: pps83 on 2012-08-26 20:21:09
Hello HA,

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).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: db1989 on 2012-08-26 20:46:08
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.
Quote
from china
Does this actually have any relevance, or is it just a daft stereotype with potential to be very offensive?

Quote
I'm no sound expert, but why don't you guys start pushing OPUS all over the place?
I’m sure that plenty of people are and that even more people will be once it’s seen a stable release. You should realise, though, that AAC’s popularity is due in no small part to its adoption and consequent aggressive promotion by Apple, Nero, et al.. You’ll excuse me if I’m pessimistic and suspect that all the open initiatives in the world and all of their enthusiastic supporters at the grassroots can’t eclipse corporate power. Vorbis is an illustrative example of this for numerous reasons.

I guess that ties into your fourth paragraph, at least as far as I’m capable of decoding it.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: m45t3r on 2012-08-26 23:48:49
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.
Quote
from china
Does this actually have any relevance, or is it just a daft stereotype with potential to be very offensive?

Quote
I'm no sound expert, but why don't you guys start pushing OPUS all over the place?
I’m sure that plenty of people are and that even more people will be once it’s seen a stable release. You should realise, though, that AAC’s popularity is due in no small part to its adoption and consequent aggressive promotion by Apple, Nero, et al.. You’ll excuse me if I’m pessimistic and suspect that all the open initiatives in the world and all of their enthusiastic supporters at the grassroots can’t eclipse corporate power. Vorbis is an illustrative example of this for numerous reasons.

I guess that ties into your fourth paragraph, at least as far as I’m capable of decoding it.

Well, Opus do have some big corporations behind it (Broadcom, Skype a.k.a. Microsoft, Google...). Vorbis didn't have this momentum on release (it did have some support of Google after WebM but it only appeared on 2010 and Vorbis already was a old codec by this time), so maybe Opus will have a better chance to succeed. Anyway, even if Opus didn't succeed on general music applications it will probably survive on it's niche (it's way better than any other low-delay codec for Super-Wideband and Fullband applications, and it's very competitive on Wideband and Narrowband). Remembering that Opus is a MTI (mandatory-to-implement) codec on WebRTC, so it already have some uses.

This is really off-topic, but I don't think AAC is very succeful too. It have too many different profiles, many of them just eclipse one or another (just see this page here (http://en.wikipedia.org/wiki/MPEG-4_Part_3), that describes the entire MPEG-4 Audio; you have two codec for speech, three for general audio and three codecs for lossless). The majority of devices only supports the AAC-LC, many of them didn't support even the AAC Main Profile. The standard is so complex that some codecs never seem a working implementation (like ALS)-

AAC have it's niche too, but it didn't really eclipsed MP3 as the new standard for general music files, and I think no other lossy codec will ever have this achievement. Vorbis is very succesful on its own niche too (just look how many games use Vorbis as the codec to store music files).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: pps83 on 2012-08-27 00:18:45
Quote
from china
Does this actually have any relevance, or is it just a daft stereotype with potential to be very offensive?


Nothing against china. Not sure why I have that in mind, probably because in comments (of the code) or somewhere I saw chinese names and decided that some part of that work was done in china where it's ok to take 3gpp code and then sell the code after making some minor changes and adding different interface.

Quote
I’m sure that plenty of people are and that even more people will be once it’s seen a stable release. You should realize, though, that AAC’s popularity is due in no small part to its adoption and consequent aggressive promotion by Apple, Nero, et al.. You’ll excuse me if I’m pessimistic and suspect that all the open initiatives in the world and all of their enthusiastic supporters at the grassroots can’t eclipse corporate power. Vorbis is an illustrative example of this for numerous reasons.

I guess that ties into your fourth paragraph, at least as far as I’m capable of decoding it.


The thing with apple is pretty clear I guess: they are one of the major patent holders for aac probably (am I right?); they are major patent holder in h264 video at least. They can easily release facetime client that uses h264 video and others might be in gray zone if they try to compete with them because for this type of app entry fee for the players is ridiculous: you might be charged a dollar per download by mpeg-la or you need to cover yourself with buyout license (which is millions of dolaz). So, they are pushing it.

About opus. It's already finished bistream format. It's now standard as it has been approved by IETF on July 2, 2012. Even a year ago tests by nokia confirmed that it was one of the best codecs (http://research.nokia.com/files/public/%5B16%5D_InterSpeech2011_Voice_Quality_Characterization_of_IETF_Opus_Codec.pdf) for real time voice when compared to some state of the art codecs like amr-wb etc. There are also other tests that compare OPUS to codecs for general music. All that info on opus-codec.org.

Honestly, ppl get harassed for posting something that is considered to be illegal by HA. Instead, I think AAC should be considered illegal here instead
When working for some big guys' projects, I learned that they wanted to squeeze every drop possible for quality and performance. But they absolutely under no circumstances could even accept possibility that a non patent-incumbered codec could be used. So, I guess it's some kind of scam going on behind the scenes.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: pps83 on 2012-08-27 00:27:25
This is really off-topic, but I don't think AAC is very succeful too.



Exactly! I would probably never ever had to touch it if it wasn't for mobiles that need to support this codec because apple does.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-08-27 12:39:15
The thing with apple is pretty clear I guess: they are one of the major patent holders for aac probably (am I right?);


I don't think so. They weren't involved in AAC's development at all.

Quote
Honestly, ppl get harassed for posting something that is considered to be illegal by HA. Instead, I think AAC should be considered illegal here instead


Some companies licensed encoders and made those free to download. Winamp And Nero are two of them. You're free to discuss those as well as source implementations.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-08-27 12:43:09
This is really off-topic, but I don't think AAC is very succeful too. It have too many different profiles, many of them just eclipse one or another (just see this page here (http://en.wikipedia.org/wiki/MPEG-4_Part_3), that describes the entire MPEG-4 Audio; you have two codec for speech, three for general audio and three codecs for lossless). The majority of devices only supports the AAC-LC, many of them didn't support even the AAC Main Profile. The standard is so complex that some codecs never seem a working implementation (like ALS)-


I don't see how the fact that AAC (or H264, or any MPEG codec) has a load of cruft and extra profiles that nobody uses has any bearing on how successful it is. People used the parts that made sense and dropped the ones that just existed to satisfy some patent holders or niche applications.

Everybody now understands that when you talk about AAC you talk about LC-AAC and it's extensions (HE-AAC, SLS etc).

ALS probably never had a working implementation because it was years late to the party and didn't bring any significant advantages. That can't be said for LC-AAC and HE-AAC.

The parts that made sense were very successful. There's a hardware decoder in nearly every mobile device out there.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-08-27 12:49:35
Quote
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.


This was pointed out here a long time ago and reported to Google. I wouldn't be surprised if the sudden appearance of the Fraunhofer encoder in Android was related to it.

Quote
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.


This sentence directly contradicts itself. If a new player with a better algorithm that outperforms the MPEG ones would enter the market, the MPEG would lose out. So obviously there is a need to stay ahead of the game.

Quote
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.


I don't think it is a "secret" or "fishy" that the companies who contribute to MPEG standards do so because they expect to license their patents to any implementers of the standard. Or that the public code is crap because they want to license your their software as well. The programmers and researches who contribute expect to get paid, somehow.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: westgroveg on 2012-08-27 13:15:16
Quote
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.


This sentence directly contradicts itself. If a new player with a better algorithm that outperforms the MPEG ones would enter the market, the MPEG would lose out. So obviously there is a need to stay ahead of the game.

Think he means that the big players pushed AAC to use it as a lock in format that everyone uses and the big corps can control
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: ShotCaller on 2012-08-28 06:21:59
Can anyone provide a link to instructions for compiling avconv or ffmpeg with fdk-aac support? Thanks
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Brazil2 on 2012-08-28 11:05:18
Can anyone provide a link to instructions for compiling avconv or ffmpeg with fdk-aac support? Thanks

http://forum.doom9.org/showthread.php?p=1587426#post1587426 (http://forum.doom9.org/showthread.php?p=1587426#post1587426)
http://forum.doom9.org/showthread.php?p=1587513#post1587513 (http://forum.doom9.org/showthread.php?p=1587513#post1587513)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Tiger Uppercut on 2012-08-30 02:12:32
Can anyone provide a link to instructions for compiling avconv or ffmpeg with fdk-aac support? Thanks


See Compile FFmpeg on Ubuntu (https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide). It contains fdk-aac (from Git) compile instructions.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-08-30 07:14:01
Think he means that the big players pushed AAC to use it as a lock in format that everyone uses and the big corps can control


You should present some argumentation for this baseless and erronous claim. How can AAC even be a "lock in format"?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: darkbyte on 2012-08-31 12:16:20
I've spent a hour trying to compile this with MSYS/MingW but i gave up eventually because my installation doesn't had the directories the compile instructions mentioned  and got stuck stuck with ffmpeg. Hopefully there'll be a release on Rarewares soon.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: gottogo99 on 2012-10-09 00:57:21
So, this encoder is in the new ffmpeg 1.0.  Anyone used it?  Just curious.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: jossilint on 2012-12-15 20:35:46
I would like to know too is there someone tested for example: Nero AAC vs Apple AAC vs FDK-AAC

Weird is that FDK is only best open AAC encoder this far, i wonder why someone did not write AAC encoder long time ago like there is Lame that is best for mp3
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2012-12-15 22:08:58
I would like to know too is there someone tested for example: Nero AAC vs Apple AAC vs FDK-AAC

There are many test. Use the search.

Quote
Weird is that FDK is only best open AAC encoder this far, i wonder why someone did not write AAC encoder long time ago like there is Lame that is best for mp3

FDK-AAC is just a CLI for Fraunhofer, like qaac and qtaacenc are for Apple.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2012-12-15 22:30:35
... like there is Lame that is best for mp3

Oops (http://listening-tests.hydrogenaudio.org/sebastian/mp3-128-1/results.htm)
Oops (http://d.hatena.ne.jp/kamedo2/20101209)
Oops (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=96800&view=findpost&p=808142)

FDK-AAC is just a CLI for Fraunhofer, like qaac and qtaacenc are for Apple.

You can check the OP.

Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2012-12-15 22:38:52
FDK-AAC is just a CLI for Fraunhofer, like qaac and qtaacenc are for Apple.

You can check the OP.

My bad, I was confused with fhgaacenc (https://github.com/tmkk/fhgaacenc).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kode54 on 2012-12-16 07:42:56
Too bad ffmpeg hasn't sorted gapless encoding yet. It didn't look like avconv supported that yet, either, the last time I looked. Maybe somebody should make a stand-alone encoder.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: jossilint on 2012-12-16 14:08:05
What about quality of FDK compared to closed? is it too some middle quality aac encoder, experts opinion?

Really bad that only closed source encoders have best quality(aac, mp3)  .... burn licences burn 
So now i know that even Lame is not best quality encoder thanks for info IgorC now i move all my audio to Opus.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Garf on 2012-12-17 11:15:28
What about quality of FDK compared to closed? is it too some middle quality aac encoder, experts opinion?


Juding from the source code, it should be pretty good:
http://www.hydrogenaudio.org/forums/index....st&p=801900 (http://www.hydrogenaudio.org/forums/index.php?showtopic=95989&view=findpost&p=801900)

Of course, it should be properly tested. The code might be advanced but full of bugs. (Not likely, but not impossible)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2012-12-21 06:15:09
Out of curiosity, I tested this codec with various settings using the attached test files and script: [attachment=7254:fdkaac_vbr.zip]
Available VBR qualities for each <profile, #channels, sample rate> by this encoder are as follows:
Code: [Select]
LC-AAC	1ch	11250	1
LC-AAC 1ch 12000 1
LC-AAC 1ch 16000 1,2
LC-AAC 1ch 22500 1,2,3
LC-AAC 1ch 24000 1,2,3,4
LC-AAC 1ch 32000 1,2,3,4
LC-AAC 1ch 44100 1,2,3,4,5
LC-AAC 1ch 48000 1,2,3,4,5
LC-AAC 1ch 64000 1,2,3,4,5
LC-AAC 1ch 88200 1,2,3,4,5
LC-AAC 1ch 96000 1,2,3,4,5
LC-AAC 2ch 8000 1
LC-AAC 2ch 11250 1,2
LC-AAC 2ch 12000 1,2
LC-AAC 2ch 16000 1,2,3
LC-AAC 2ch 22500 1,2,3,4
LC-AAC 2ch 24000 1,2,3,4
LC-AAC 2ch 32000 1,2,3,4,5
LC-AAC 2ch 44100 1,2,3,4,5
LC-AAC 2ch 48000 1,2,3,4,5
LC-AAC 2ch 64000 1,2,3,4
LC-AAC 2ch 88200 1,2,3,4
LC-AAC 2ch 96000 1,2,3,4
LC-AAC 3ch 8000 1
LC-AAC 3ch 11250 1,2
LC-AAC 3ch 12000 1,2
LC-AAC 3ch 16000 1,2,3
LC-AAC 3ch 22500 1,2,3,4
LC-AAC 3ch 24000 1,2,3,4
LC-AAC 3ch 32000 1,2,3,4,5
LC-AAC 3ch 44100 1,2,3,4,5
LC-AAC 3ch 48000 1,2,3,4,5
LC-AAC 3ch 64000 1,2,3,4
LC-AAC 3ch 88200 1,2,3,4
LC-AAC 3ch 96000 1,2,3,4
LC-AAC 4ch 8000 1
LC-AAC 4ch 11250 1,2
LC-AAC 4ch 12000 1,2
LC-AAC 4ch 16000 1,2,3
LC-AAC 4ch 22500 1,2,3,4
LC-AAC 4ch 24000 1,2,3,4
LC-AAC 4ch 32000 1,2,3,4,5
LC-AAC 4ch 44100 1,2,3,4,5
LC-AAC 4ch 48000 1,2,3,4,5
LC-AAC 4ch 64000 1,2,3,4
LC-AAC 4ch 88200 1,2,3,4
LC-AAC 4ch 96000 1,2,3,4
LC-AAC 5ch 8000 1
LC-AAC 5ch 11250 1,2
LC-AAC 5ch 12000 1,2
LC-AAC 5ch 16000 1,2,3
LC-AAC 5ch 22500 1,2,3,4
LC-AAC 5ch 24000 1,2,3,4
LC-AAC 5ch 32000 1,2,3,4,5
LC-AAC 5ch 44100 1,2,3,4,5
LC-AAC 5ch 48000 1,2,3,4,5
LC-AAC 5ch 64000 1,2,3,4
LC-AAC 5ch 88200 1,2,3,4
LC-AAC 5ch 96000 1,2,3,4
LC-AAC 6ch 8000 1
LC-AAC 6ch 11250 1,2
LC-AAC 6ch 12000 1,2
LC-AAC 6ch 16000 1,2,3
LC-AAC 6ch 22500 1,2,3,4
LC-AAC 6ch 24000 1,2,3,4
LC-AAC 6ch 32000 1,2,3,4,5
LC-AAC 6ch 44100 1,2,3,4,5
LC-AAC 6ch 48000 1,2,3,4,5
LC-AAC 6ch 64000 1,2,3,4
LC-AAC 6ch 88200 1,2,3,4
LC-AAC 6ch 96000 1,2,3,4
HE-AAC 1ch 22500 1
HE-AAC 1ch 24000 1
HE-AAC 1ch 32000 1,2
HE-AAC 1ch 44100 1,2,3
HE-AAC 1ch 48000 1,2,3
HE-AAC 1ch 64000 1,2,3,4
HE-AAC 1ch 88200 1,2,3,4,5
HE-AAC 1ch 96000 1,2,3,4,5
HE-AAC 2ch 16000 1
HE-AAC 2ch 22500 1,2
HE-AAC 2ch 24000 1,2
HE-AAC 2ch 32000 1,2,3
HE-AAC 2ch 44100 1,2,3,4
HE-AAC 2ch 48000 1,2,3,4
HE-AAC 2ch 64000 1,2,3,4,5
HE-AAC 2ch 88200 1,2,3,4,5
HE-AAC 2ch 96000 1,2,3,4,5
HE-AAC 3ch 16000 1
HE-AAC 3ch 22500 1,2
HE-AAC 3ch 24000 1,2
HE-AAC 3ch 32000 1,2,3
HE-AAC 3ch 44100 1,2,3
HE-AAC 3ch 48000 1,2,3
HE-AAC 3ch 64000 1,2,3,4,5
HE-AAC 3ch 88200 1,4,5
HE-AAC 3ch 96000 4,5
HE-AAC 4ch 16000 1
HE-AAC 4ch 22500 1,2
HE-AAC 4ch 24000 1,2
HE-AAC 4ch 32000 1,2,3
HE-AAC 4ch 44100 1,2,3
HE-AAC 4ch 48000 1,2,3
HE-AAC 4ch 64000 1,2,3,4,5
HE-AAC 4ch 88200 1,3,4,5
HE-AAC 4ch 96000 3,4,5
HE-AAC 5ch 16000 1
HE-AAC 5ch 22500 1,2
HE-AAC 5ch 24000 1,2
HE-AAC 5ch 32000 1,2,3
HE-AAC 5ch 44100 1,2,3
HE-AAC 5ch 48000 1,2,3
HE-AAC 5ch 64000 1,2,3,4,5
HE-AAC 5ch 88200 1,3,4,5
HE-AAC 5ch 96000 3,4,5
HE-AAC 6ch 16000 1
HE-AAC 6ch 22500 1,2
HE-AAC 6ch 24000 1,2
HE-AAC 6ch 32000 1,2,3
HE-AAC 6ch 44100 1,2,3
HE-AAC 6ch 48000 1,2,3
HE-AAC 6ch 64000 1,2,3,4,5
HE-AAC 6ch 88200 1,4,5
HE-AAC 6ch 96000 4,5
HE-AACv2 2ch 32000 1
HE-AACv2 2ch 44100 1,2
HE-AACv2 2ch 48000 1,2
HE-AACv2 2ch 64000 1,2,3
HE-AACv2 2ch 88200 1,2,3,4
HE-AACv2 2ch 96000 1,2,3,4
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-01-05 22:18:08
https://github.com/nu774/fdkaac (https://github.com/nu774/fdkaac)

Has anyone tried this frontend yet?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bat_guano on 2013-01-07 03:58:47
Has anyone tried this frontend yet?

Yes, it compiles OK with Ubuntu Linux and cross-compiles OK with mingw.
 

Code: [Select]
./fdkaac -m 3 -p 5 -a 1 \
--title "Lucky Night" --album "Treasure Quest Soundtrack" \
--artist "Jody Marie Gnant" --genre "Soundtrack"  \
--date "1995" -o Lucky_Night.m4a Lucky_Night.wav


Quote
General
Complete name                            : Lucky_Night.m4a
Format                                  : MPEG-4
Format profile                          : Apple audio with iTunes info
Codec ID                                : M4A
File size                                : 345 KiB
Duration                                : 30s 186ms
Overall bit rate mode                    : Variable
Overall bit rate                        : 93.7 Kbps
Album                                    : Treasure Quest Soundtrack
Track name                              : Lucky Night
Performer                                : Jody Marie Gnant
Genre                                    : Soundtrack
Recorded date                            : 1995
Encoded date                            : UTC 2013-01-07 03:47:11
Tagged date                              : UTC 2013-01-07 03:47:11
Writing application                      : fdkaac 0.0.5, libfdk-aac 3.3.3, VBR mode 3

Audio
ID                                      : 1
Format                                  : AAC
Format/Info                              : Advanced Audio Codec
Format profile                          : HE-AAC / LC
Codec ID                                : 40
Duration                                : 30s 186ms
Bit rate mode                            : Variable
Bit rate                                : 92.6 Kbps
Maximum bit rate                        : 143 Kbps
Channel(s)                              : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz / 22.05 KHz
Compression mode                        : Lossy
Stream size                              : 341 KiB (99%)
Encoded date                            : UTC 2013-01-07 03:47:11
Tagged date                              : UTC 2013-01-07 03:47:11

Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-03-01 03:21:26
Thanks nu774, the compiler runs perfectly. Now I have fdkaac.exe, it works well by itself but I can't find the configuration for foobar2000. "-m 4 - %d" doesn't work, "-m 4 %s %d" doesn't work, I can't do only "-m 4 %s".

Do you know a solution?

Thanks.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-03-01 04:40:22
fdkaac requires -o before %d (same as qaac).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-03-01 05:12:15
Of course ...   

Thanks.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hellosky on 2013-03-01 10:16:33
Does anyone knows how to build the fdk acc as a shared library for Android? Thanks!
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-03-01 11:05:48
https://sites.google.com/site/qaacpage/news...scriptforfdkaac (https://sites.google.com/site/qaacpage/news/automatatedbuildscriptforfdkaac)

https://sites.google.com/site/qaacpage/cabinet (https://sites.google.com/site/qaacpage/cabinet)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kode54 on 2013-03-01 15:19:08
@nu774: Very nice! Now, if anyone finds any samples which prove to be difficult to encode gaplessly, it should be fairly easy to add some countermeasures. The simplest to add would be to add an LPC function, like the one Vorbis employs, which I later lifted for opus-tools. Then you predict maybe 1-2ms away from each end of the input file, depending on the size of the frames or the profile being encoded, and add the extra start samples to the delay, and add the rest to the padding.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: LithosZA on 2013-03-02 10:45:40
Are there any freely available decoders than can decode AAC-ELD encoded from fdkaac.exe?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: db1989 on 2013-03-02 16:51:55
Split: Copyright vs. patents, source code vs. compiled binaries, etc. (http://hydrogenaudio.org/forums/?showtopic=99736)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kareha on 2013-03-02 19:58:05
Just wondering if there's any need to use this rather than QAAC which I've been happily using since it first came out.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: [JAZ] on 2013-03-03 10:36:49
@kareha:  That rather depends if you consider "not needing to have quicktime, or its libraries in the system" as a "need".

If your question was specifically about audio quality, I am not sure if it has been tested after fixing some of the problems that arose in this thread, but the encoder in Winamp is known to be of good quality, and this one comes from the same company.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bat_guano on 2013-03-03 14:05:33
Are there any freely available decoders than can decode AAC-ELD encoded from fdkaac.exe?

I don't think so. 

The fdk-aac library has libAACdec as well as libAACenc, so maybe it needs somebody like nu774 to write a decoder frontend.
(Or to add decoder capability to fdkaac.exe) 
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-03-03 14:47:51
I don't feel like writing decoder frontend only for AAC-ELD, and I guess applications that actually need low delay codec (such as VoIP) will not be using batch style CLI frontend anyway.
Do you really need it?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: LithosZA on 2013-03-03 15:08:35
Quote
Do you really need it?

Nope
I just wanted to test out AAC-ELD against Opus
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-03-03 15:21:55
Quote
Do you really need it?

Nope
I just wanted to test out AAC-ELD against Opus

I understand that needs, and actually if I were not too lazy I might have written that only for testing purpose
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kode54 on 2013-03-14 23:51:43
I ran [a href='index.php?act=findpost&pid=716229']these samples[/a] by Case, with various encoding modes, and although I don't necessarily hear a gap, he claims to hear a loud pop on track change transition.

At the very least, taking a note from how vorbisenc works should help somewhat with cases like these. libvorbis bundles a handy linear predictive coding function. You pick a LPC order, like 32 or 64 samples, prime one filter per input channel with at least the last order count samples, then use exactly the last order samples to predict forwards for about 1 or 2 milliseconds worth of samples. Actually, since the beginning of the file comes first, you do that backwards to the beginning of the file to predict a few milliseconds of extra delay.

Once all that extra delay is predicted around the input data, the lead-in delay is added to the encoder delay, and the duration is left alone, so the lead-out delay is truncated as well.

I can look into implementing this and running test files by Case to see if his apparent decent ears can catch a gap after even that much precaution is applied.

(EDIT: For an example of how it could be applied to an input chain, see Opus Tools, where I implemented it as a post EOF padding function. I also implemented it as a pre-track padding function, but that patch was never accepted, I don't think.)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-03-15 01:44:00
I ran [a href='index.php?act=findpost&pid=716229']these samples[/a] by Case, with various encoding modes, and although I don't necessarily hear a gap, he claims to hear a loud pop on track change transition.

Thanks for suggestion. Maybe I can take padder from opus-tools. However, without someone who actually find or hear glitches, how it could be tested if it is really fixed or improved?
I tried those samples with fdkaac, but I couldn't hear the glitches.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Takla on 2013-03-18 23:48:42
https://github.com/nu774/fdkaac (https://github.com/nu774/fdkaac)

Has anyone tried this frontend yet?


I compiled it this morning and have been trying it out.  It works exactly as described as far as I can tell.  A couple of days ago I built libfdk_aac from git in order to build ffmpeg with libfdk_aac support.  For music I prefer the fdkaac binary to using ffmpeg with libfdk_aac for several reasons:

ffmpeg with libfdk_aac doesn't produce files which play back gaplessly.  fdkaac standalone does produce files which play back with perfect gapless by default.  I've tested this with some passages I know well and always notice if there is any defect, and I also checked with the files linked at  Small Pop between tracks.. (http://www.hydrogenaudio.org/forums/index.php?showtopic=81991&view=findpost&p=716229) which apparently can cause problems with lame.

fdkaac can write tags using simple, sane syntax and has a very neat feature where it can set tags from ffprobe's json output, so you run

Code: [Select]
ffprobe -v quiet -print_format json -show_format INFILE >TAGS


then encode with

Code: [Select]
fdkaac ENCODE_OPTIONS --tag-from-json TAGS?format.tags INFILE


This is great in a script and saves having to do  text manipulation gymnastics with sed, awk or grep.

I haven't done any abx testing but I have encoded various problem samples such as trumpet, eig_essence and some others.  fdkaac is fine with eig_essence at 128k CBR or any LC VBR mode, while ogg, lame and faac all fail very unambiguously at default settings.

I tried the HE modes for some speech files and it works really well.  Music with the LC VBR settings seems great, though I will have to do some more listening and some abx tests of stuff I know has made me wince in the past.

This is the first really useable free(dom) software aac encoder I've found.  FAAC would be ideal if it didn't sound like ess aich eye tee, so I resorted to using neroAacEnc for movie soundtracks but it is sometimes extremely inconvenient because it's 32-bit only and while it runs on multi-arch 64-bit Debian it has no large file support.  For music I've been using Ogg Vorbis -q 7 and for mono speech (converting audio book CDs and similar) I've been using "lame --resample 22.05 -m m --abr 64"  (lame is surprisingly good for speech at these settings).  I'm starting to think fdkaac/libfdk_aac can probably work at least as well in each distinct role (movie audio tracks, music, speech).  It encodes at about the same speed as the other lossy encoders I use and all my players support it.

A big thanks to nu774 for this implementation.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Takla on 2013-03-19 23:49:24
It can be used as such:

Bitrate Mode
Code: [Select]
avconv -i <input> -c:a libfdk_aac -b:a <bitrate> -afterburner 1 <output>


VBR Mode
Code: [Select]
aconv -i <input> -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 <output>


VBR modes 1-5 correspond to roughly:
  • about 32 kbps/channel
  • about 40 kbps/channel
  • about 48-56 kbps/channel
  • about 64 kbps/channel
  • about 80-96 kbps/channel

-afterburner 1 enabkes "improved quality" mode.


There is no need to enable afterburner in ffmpeg or in fdkaac as it is enabled by default.  To switch it off use -afterburner 0 (ffmpeg) or -a 0 (fdkaac), though it's hard to think of a circumstance where switching it off makes sense but if you can then you can.

The LC VBR modes don't really correspond with the above values.  Perhaps they did then, but they don't now (unless libav does something radically different than ffmpeg or vanilla libfdk/fdkaac).  One big difference between the modes is the lowpass filter:  vbr 1 and 2 use the same value of about 13 KHz;  vbr 3 is at slightly over 15 KHz; vbr 4 is at about 15.75 KHz and vbr 5 appears not to use any lowpass filter at all.

vbr 1 and 2 are usually so similar as to be interchangeable, or possibly for one mode to be redundant.  I tend to get stereo files encoded to between 110 and 128 kbps, though sometimes over 140.
vbr 3 gives me stereo files a little larger, maybe from 135 to over 160 k, occasionally over 180 (that was solo piano, an old analogue recording with obvious hiss).
vbr 4 might produce stereo files from 155k and even up to over 220 k.
vbr 5 bitrates can be very large, over 350 k, though 280 - 320 seems normal.

Those ranges of values are for two channels and from encoding numerous two channel audio extracted from pressed CD, some orchestral music, some rock/pop, some solo piano, some speech.  Peaks can be very high in any mode.  In broad terms the per-channel values D404 estimated can realistically be multiplied x1.5 with the current version.  In terms of bitrates and lowpass I get the same values whether using ffmpeg or fdkaac (the only difference being that ffmpeg output doesn't play gaplessly).

It seems odd to have two (relatively) lower bitrate vbr modes, 1 and 2, which use the same low lowpass filter and produce extremely similar results.  Modes 3 and 4 are well differentiated in terms of lowpass and usually bitrate, while the difference between modes 4 and 5 can be massive, though the likelihood of any human hearing a difference must be very small indeed.  It seems to me that anyone interested in LC -vbr 1 setting would do better to look at the HE CBR mode, while -VBR 5 might only be useful for killer samples.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-03-22 13:41:08
Yes i thought the vbr modes were a bit strange too, they dont seem to be very even. i use vbr 4 with a lowpass filter of 18500.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Takla on 2013-03-22 18:43:25
... with a lowpass filter of 18500.


How do you do this?  libfdk_aac (ffmpeg) or fdkaac don't have any option to configure the lowpass filter and the vbr modes are predefined.

If you're using the Winamp version then configuring the lowpass in Winamp will be a waste of time (or worse) because the encoder will still apply its own lowpass filter regardless, see http://www.hydrogenaudio.org/forums/index....st&p=824223 (http://www.hydrogenaudio.org/forums/index.php?showtopic=98454&view=findpost&p=824223)

I suspect that if you make a spectrogram of any of your files made with "vbr 4 with a lowpass filter of 18500" it will show a hard cut off at about 16k.

edit: -vbr 5 with custom lowpass might be possible.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-03-22 18:49:39
... with a lowpass filter of 18500.


How do you do this?  libfdk_aac (ffmpeg) or fdkaac don't have any option to configure the lowpass filter and the vbr modes are predefined.

If you're using the Winamp version then configuring the lowpass in Winamp will be a waste of time (or worse) because the encoder will still apply its own lowpass filter regardless, see http://www.hydrogenaudio.org/forums/index....st&p=824223 (http://www.hydrogenaudio.org/forums/index.php?showtopic=98454&view=findpost&p=824223)

I suspect that if you make a spectrogram of any of your files made with "vbr 4 with a lowpass filter of 18500" it will show a hard cut off at about 16k.

edit: -vbr 5 with custom lowpass might be possible.


I use fdkaac with fb2k, this is one of the switches -w, --bandwidth <n>    Frequency bandwidth in Hz (AAC LC only)

So in fb2k i use this parameter, -m 4 -w 19500 --ignorelength - -o %d

Check this page for switches. https://github.com/nu774/fdkaac/blob/master/src/main.c (https://github.com/nu774/fdkaac/blob/master/src/main.c)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Takla on 2013-03-22 19:09:43
Thanks for that.  It's right there in front of me when I run fdkaac without options but I hadn't even noticed....... doh.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-09-07 02:59:02
nu774, your news page has the changelog for fdkaac 0.2.0, where can I find the one for 0.3.0?

Thanks.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-09-07 03:33:51
nu774, your news page has the changelog for fdkaac 0.2.0, where can I find the one for 0.3.0?

New option --moov-before-mdat was added at 0.3.0 (it was 3month ago).
By default, fdkaac works the same as "qaac --no-optimize" regarding container layout.

Since fdkaac is source only and you have to fetch from github repo, I has been thinking that git history in the repo should be enough.
Maybe you can at least blame me for empty ChangeLog in the source, that was created merely to shut up GNU autotools...
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-10-19 22:02:11
fdkaac_autobuild.zip from https://sites.google.com/site/qaacpage/cabinet (https://sites.google.com/site/qaacpage/cabinet) now creates fdkaac.exe 0.3.1. Updated yesterday.

nu774, can you please write the changelog of fdkaac to your website news section https://sites.google.com/site/qaacpage/news (https://sites.google.com/site/qaacpage/news) ?

Thanks!
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bat_guano on 2013-10-20 01:28:21
Are there any freely available decoders than can decode AAC-ELD encoded from fdkaac.exe?

It has been added to FFmpeg about a month ago...  ---> paste (http://pastebin.com/mHq6pEnP)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: IgorC on 2013-10-25 00:30:40
Does ffmpeg support decoding of low delay SBR?

http://git.videolan.org/?p=ffmpeg.git;a=bl...ain;f=Changelog (http://git.videolan.org/?p=ffmpeg.git;a=blob_plain;f=Changelog)
Code: [Select]
- Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)


Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-10-30 22:32:57
I can't get the .exe with fdkaac_autobuild.zip, trying to get 0.4.2. 0.4.1 worked.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-10-30 22:39:25
I can't get the .exe with fdkaac_autobuild.zip, trying to get 0.4.2. 0.4.1 worked.


Same here??
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-10-31 00:47:02
Sorry for inconvenience, updated git repos of fdk_autobuild, now it should work.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2013-10-31 10:37:56
Still no go:

Making the lib:

Code: [Select]
if test -d stage; then rm -fr stage; fi
mkdir -p stage/bin
mkdir -p stage/lib
mkdir -p stage/include/fdk-aac
cp -p libfdk-aac-0.dll stage/bin
cp -p libfdk-aac.a /mingw/lib
cp: cannot create regular file `/mingw/lib': No such file or directory
make: *** [install] Error 1

Making exe:

Code: [Select]
cc -O2 -DHAVE_CONFIG_H -I.  -c -o src/aacenc.o src/aacenc.c
In file included from src/aacenc.c:14:0:
src/aacenc.h:8:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
 #include <fdk-aac/aacenc_lib.h>
                                ^
compilation terminated.
make: *** [src/aacenc.o] Error 1
The system cannot find the path specified.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-10-31 15:48:36
Sorry for inconvenience, updated git repos of fdk_autobuild, now it should work.

It works thank you.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-10-31 16:07:27
Still no go:

Check msys/1.0/etc/fstab in the fdkaac_autobuild directory. It's content is something like
Code: [Select]
C:/path/to/fdkaac_autobuild   /mingw

This file is created on msys installation, but if you have moved fdkaac_autobuild directory after mingw/msys installation, you have to edit fstab so that first field points to the current location (it's written in readme).

Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2013-10-31 18:31:35
Still no go:

Check msys/1.0/etc/fstab in the fdkaac_autobuild directory. It's content is something like
Code: [Select]
C:/path/to/fdkaac_autobuild   /mingw

This file is created on msys installation, but if you have moved fdkaac_autobuild directory after mingw/msys installation, you have to edit fstab so that first field points to the current location (it's written in readme).


I haven't moved anything. I've downloaded this morning new autobuild and run it for first time at work.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-01 01:10:19
I haven't moved anything. I've downloaded this morning new autobuild and run it for first time at work.

Hmm, strange.
Code: [Select]
cp -p libfdk-aac.a /mingw/lib
cp: cannot create regular file `/mingw/lib': No such file or directory

It looks like /mingw/lib is invisible to cp command of msys, so I suspected fstab entry.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-01 03:17:15
Can you try the following?
Open command prompt, go to msys/1.0/bin directory, execute msysmnt command.
It will show something like the following:
Code: [Select]
C:\path\to\fdkaac_autobuild\msys\1.0\bin>msysmnt
C:\Users\foo\AppData\Local\Temp on /tmp type user (binmode,noumount)
C:\path\to\fdkaac_autobuild\msys\1.0 on /usr type user (binmode,noumount)
C:\path\to\fdkaac_autobuild\msys\1.0 on / type user (binmode,noumount)
C:\path\to\fdkaac_autobuild on /mingw type user (binmode)   <---- THIS LINE IS IMPORTANT
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)
e: on /e type user (binmode,noumount)
f: on /f type user (binmode,noumount)
h: on /h type user (binmode,noumount)
q: on /q type user (binmode,noumount)
z: on /z type user (binmode,noumount)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Pulstar on 2013-11-02 04:25:39
Is fdkaac.exe with MD5 of 7edd8dbbca11c85d7c66edec8d1f4267 the latest build?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-11-02 05:39:30
Is fdkaac.exe with MD5 of 7edd8dbbca11c85d7c66edec8d1f4267 the latest build?

fdkaac.exe 0.4.2: MD5 49b0bcdbd6bd0fd97266c75813946d89
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-02 06:25:32
Is fdkaac.exe with MD5 of 7edd8dbbca11c85d7c66edec8d1f4267 the latest build?

Where did you get it? I'm not providing any "official" binary, and there are tons of ways that can make MD5 hash of executable binary different.
If you think it's safe to run it, just look at the version number it prints. The latest version is 0.4.2.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2013-11-02 07:46:35
Can you try the following?
Open command prompt, go to msys/1.0/bin directory, execute msysmnt command.

Code: [Select]
C:\Program Files (x86)\Utilities\fdkaac_autobuild\msys\1.0\bin>msysmnt.exe
C:\Program Files (x86)\Utilities\fdkaac_autobuild\msys\1.0 on /usr type user (binmode,noumount)
C:\Program Files (x86)\Utilities\fdkaac_autobuild\msys\1.0 on / type user (binmode,noumount)
C:\Users\Ivan\AppData\Local\Temp on /tmp type user (binmode,noumount)
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)
e: on /e type user (binmode,noumount)
f: on /f type user (binmode,noumount)

This is what I get, fresh unpack, no modifications done. Hm, maybe it doesn't like spaces in path?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2013-11-02 08:03:02
Well, nope. This is lib, path doesn't have spaces:

Code: [Select]
if test -d stage; then rm -fr stage; fi
mkdir -p stage/bin
mkdir -p stage/lib
mkdir -p stage/include/fdk-aac
cp -p libfdk-aac-0.dll stage/bin
cp -p libfdk-aac.a /mingw/lib
cp -p libfdk-aac.dll.a stage/lib
cp -p libAACdec/include/aacdecoder_lib.h stage/include/fdk-aac
cp -p libAACenc/include/aacenc_lib.h stage/include/fdk-aac
cp -p libSYS/include/FDK_Audio.h stage/include/fdk-aac
cp -p libSYS/include/genericStds.h stage/include/fdk-aac
cp -p libSYS/include/machine_type.h stage/include/fdk-aac
cp -pr stage/* /mingw/
cd stage && zip -r /mingw/libfdk-aac-win32-bin.zip * & cd ..
  adding: bin/ (stored 0%)
  adding: bin/libfdk-aac-0.dllfdk-aac-master\stage\bin - The directory is not empty.
fdk-aac-master\stage - The process cannot access the file because it is being used by another process.

d:\Tools\fdkaac_autobuild> (deflated 52%)
  adding: include/
zip warning: No such file or directory
        zip warning: could not open for reading: include/
  adding: include/fdk-aac/
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/
  adding: include/fdk-aac/aacdecoder_lib.h
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/aacdecoder_lib.h
  adding: include/fdk-aac/aacenc_lib.h
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/aacenc_lib.h
  adding: include/fdk-aac/FDK_Audio.h
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/FDK_Audio.h
  adding: include/fdk-aac/genericStds.h
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/genericStds.h
  adding: include/fdk-aac/machine_type.h
zip warning: No such file or directory
        zip warning: could not open for reading: include/fdk-aac/machine_type.h
  adding: lib/
zip warning: No such file or directory
        zip warning: could not open for reading: lib/
  adding: lib/libfdk-aac.dll.a
zip warning: No such file or directory
        zip warning: could not open for reading: lib/libfdk-aac.dll.a

zip warning: Not all files were readable
  files/entries read:  2 (801K bytes)  skipped:  9 (182K bytes)

And:

Code: [Select]
d:\Tools\fdkaac_autobuild>cd msys\1.0\bin

d:\Tools\fdkaac_autobuild\msys\1.0\bin>msysmnt.exe
d:\Tools\fdkaac_autobuild\msys\1.0 on /usr type user (binmode,noumount)
d:\Tools\fdkaac_autobuild\msys\1.0 on / type user (binmode,noumount)
C:\Users\Ivan\AppData\Local\Temp on /tmp type user (binmode,noumount)
d:\Tools\fdkaac_autobuild on /mingw type user (binmode)
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)
e: on /e type user (binmode,noumount)
f: on /f type user (binmode,noumount)

Well, somethin strange is going on. I will try to find older version and create file. I've tried disabling my AV software, and adding the path to exclusion, no go.
Oh, forgot to add - Windows 7 64 bit, fully patched, Avast Antivirus 2014 free, DeepScreen disabled.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2013-11-02 08:17:47
To add, sorry to spam, it seems that it managed to compile, without any additional configuration form myself - I've started making libfdkaac, it finished the job and made zip file with lib inside, and now I have a working fdkaac encoder. Strange.
Still can't figure out what went wrong.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-02 09:22:12
It seems just an issue of white space in the path.
It didn't work in your first example, where fdkaac_autobuild is located at "C:\Program Files (x86)\Utilities\fdkaac_autobuild"
It went on the second example, this time "d:\Tools\fdkaac_autobuild" was used.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Pulstar on 2013-11-03 09:16:36
Uff I posted the MD5 of 0.3.2 haha 
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: sluggy on 2013-11-03 10:04:59
[fdkaac] 0.5.0
posted 8 minutes ago by nu 774
Add support for 7.1ch input, which has become available on libfdk-aac (FDK encoder library 3.4.12).
Add --sbr-ratio to control activation of downsampled SBR, which also introduced on FDK encoder library 3.4.12).
--lowdelay-sbr for ELD+SBR now takes argument to control SBR activity on ELD.
About 7.1ch channel layout

Unlike Apple AAC encoder, libfdk-aac supports two 7.1ch layout. One is AAC standard C+Lc+Rc+L+R+Ls+Rs+LFE (7.1ch front), and another is C+L+R+Ls+Rs+Rls+Rrs+LFE (7.1ch rear). The latter is not standard and therefore described using PCE(program config element), but is more suitable for encoding from Bluray soundtrack.

fdkaac frontend automatically chooses layout from the two depending on input channel layout (if present). If input channel layout is unknown, FL+FR+C+LF+BL+BR+SL+SR is assumed, which is mapped to the latter (non-standard layout).

About new SBR options

By new option --sbr-ratio, you can choose SBR mode from dual-rate SBR or downsampled SBR. Dual-rate SBR is what is normally used for HE-AAC, where AAC is encoded at half the sample rate of SBR, hence "dual rate". On the other hand, downsampled SBR uses same sample rate for both of AAC and SBR (single rate), therefore downsampled SBR typically consumes more bitrate.

Downsampled SBR is newly introduced feature. When latest libfdk-aac is not present in system (or not built into fdkaac statically), dual-rate SBR will be used. When available, dual-rate SBR is the default for HE-AACv1 and downsampled SBR is the default for ELD+SBR. You can change this behavior by --sbr-ratio.

Note that downsampled HE-AACv1 is not as portable as dual-rate one. When downsampled HE-AACv1 is used, fdkaac is forced to choose explicit SBR signaling, which (at least) iTunes doesn't accept.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: rbrito on 2013-11-03 13:20:08
[fdkaac] 0.5.0
(...)


Great. I just sent you a pull request to ignore some files from getting committed and I will work on a skeleton of debian packaging, so that collecting the dependencies and everything else becomes self-documented.

BTW, I also noticed one or two warnings when compiling. Do you want some patches?

Furthermore, all these descriptions that you put here in the previous version should, IMVHO, be put in a manpage for the program. What about this idea? I can try draft something, even though English is not my native language.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-03 13:37:27
Great. I just sent you a pull request to ignore some files from getting committed and I will work on a skeleton of debian packaging, so that collecting the dependencies and everything else becomes self-documented.

Thanks, merged it now.

Quote
BTW, I also noticed one or two warnings when compiling. Do you want some patches?

Thanks, I can fix it on my side.

Quote
Furthermore, all these descriptions that you put here in the previous version should, IMVHO, be put in a manpage for the program. What about this idea? I can try draft something, even though English is not my native language.

Sounds nice.
I've been always reluctant to write docs (especially "official" one) since my English is VERY BAD.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: marc2003 on 2013-11-03 14:47:32
since my English is VERY BAD.


what?  your english is absolutely fine. i'm english and your use of the language is far better than what i see from the "natives" - including myself.

if you didn't mention it, i don't think anyone here would know it wasn't your first language.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-03 15:33:33
what?  your english is absolutely fine. i'm english and your use of the language is far better than what i see from the "natives" - including myself.

if you didn't mention it, i don't think anyone here would know it wasn't your first language.

Thanks, but I cannot write English without spending much time + care. Even then, I cannot be even remotely as expressive as in Japanese. Google is always my friend.
But anyway I started to confront with bloody old groff mandoc.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: rbrito on 2013-11-03 15:41:49
But anyway I started to confront with bloody old groff mandoc.


Don't do that. Type things in markdown and convert them to a manpage. See an example of this in youtube-dl's documentation.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-03 15:47:33
But anyway I started to confront with bloody old groff mandoc.


Don't do that. Type things in markdown and convert them to a manpage. See an example of this in youtube-dl's documentation.

Umm, MD is much better. But to tell the truth, I've already done 3/4 or so of OPTIONS description.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: rbrito on 2013-11-03 16:38:50

Don't do that. Type things in markdown and convert them to a manpage. See an example of this in youtube-dl's documentation.

Umm, MD is much better. But to tell the truth, I've already done 3/4 or so of OPTIONS description.


Well, unless it is for a learning exercise, I wouldn't continue on that, because a lot of the things can be automated (and we all want our computers to work for us, instead of the the opposite).

For instance, if you really, positively want something in troff format, then using help2man would be a good start, as long as the program supports both the --help and the --version command line option (which is what a user usually expects the program to support anyway).

That being said, maintaining the manpage (that is, editing for the future changes, addition of whole paragraphs or even sections) in groff/troff format requires more brainpower than doing that the automated way.

OK, those are just some hints. BTW, since you are already using github, it would be nice to integrate automatic testing whenever you push something, like what youtube-dl does and/or what a project of mine does: https://github.com/coursera-dl/coursera (https://github.com/coursera-dl/coursera)

See, in particular, the https://github.com/coursera-dl/coursera/blo...ter/.travis.yml (https://github.com/coursera-dl/coursera/blob/master/.travis.yml) file.

But this automated testing thing is just the icing on the cake at this stage.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2013-11-03 19:43:18
nu774, does Fraunhofer manage multichannel better on fdk than its premium encoder (the one that comes with Winamp/fhgaacenc)? Also, do we need to keep libfdk-aac-0.dll for anything?

Thanks for the update again.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-04 02:20:20
For instance, if you really, positively want something in troff format, then using help2man would be a good start, as long as the program supports both the --help and the --version command line option (which is what a user usually expects the program to support anyway).

Output of help2man indeed looks nice as a starting point. It's not good enough for using it without modification, though.
Maybe this because of funky indentations of fdkaac help message. fdkaac apparently requires two levels of definition list -- one for option name, another for option values.

Quote
But this automated testing thing is just the icing on the cake at this stage.

Although automated testing is a nice thing to have, creating from scratch at current stage requires laboring that I'm not willing to do.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-11-04 02:25:42
nu774, does Fraunhofer manage multichannel better on fdk than its premium encoder (the one that comes with Winamp/fhgaacenc)?

I don't know. I have no access to it's source code or something.

Quote
Also, do we need to keep libfdk-aac-0.dll for anything?

If you are using fdkaac_autobuild, no. FDK library is statically linked to the executable.
DLL is built just in case people want to use it.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Pulstar on 2013-11-06 04:39:04
I'm using FDK now for all SBR encodes.. But I wonder how it stacks against Apple's encoder in terms of LC efficiency at lower bitrates.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: halb27 on 2013-12-15 14:46:57
Thank you very much, nu774, for this great automatic fdkaac.exe creating tool.

I got a lot of warnings and -fno-exceptions when compiling. Do I have to care about it?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2013-12-15 16:01:13
Thank you very much, nu774, for this great automatic fdkaac.exe creating tool.

I got a lot of warnings and -fno-exceptions when compiling. Do I have to care about it?

Although Makefile in that automatic script is hand-written by me, libfdk-aac is not my project and it's out of my controll, and -fno-exceptions (and -fno-rtti) is specified in upstream Makefile.am anyway
(I guess that's because they want to avoid dependency to libstdc++ and also some of overheads, but I dunno).
In short, I don't care, and you don't have to ... unless something really went wrong when running the encoder, of course.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: halb27 on 2013-12-15 16:12:41
Thank you. So I feel fine.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lithopsian on 2014-02-27 22:21:02
I built this front end on Debian (after writing my own because I wanted input on stdin, not nearly as good as the one from nu774!), also the libraries.  Works very well.  The Linux build, at least for my architecture, uses shared libraries although nothing else on my system uses them.  ffmpeg might I suppose, but I don't use that.

Playing the files through Deadbeef I get a tiny jump between tracks.  Deadbeef is known not to play Nero files gapless, although it does play faac files perfectly.  The fdk-aac tracks have a much smalled gap than Nero.  Audacious plays files encoded with the fdk-aac library just about perfectly (is there the tiniest skip on some tracks?)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: raducutzu on 2014-05-04 11:23:35
It seems just an issue of white space in the path.
It didn't work in your first example, where fdkaac_autobuild is located at "C:\Program Files (x86)\Utilities\fdkaac_autobuild"
It went on the second example, this time "d:\Tools\fdkaac_autobuild" was used.


It happened to me, as well. For it to work, it has to be installed in a folder without a blank in the path, C:\Program Files (x86) does have one in between.

Thanks for this great tool.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2014-05-04 14:09:58
White-space-in-the-path issue basically comes from mingw/msys restriction, and there's nothing I can do for it.
Anyway nice to hear that you enjoyed it.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: gottogo99 on 2014-06-21 01:22:58
I've been experimenting with using this encoder for video encodes.  Is there any way to eliminate the delay, like the --no-delay option in qaac?  Thanks.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2014-06-21 01:37:49
I've been experimenting with using this encoder for video encodes.  Is there any way to eliminate the delay, like the --no-delay option in qaac?  Thanks.

No. However, you can trim out certain amount of unnecessary start padding by m4acut (https://github.com/nu774/m4acut/releases).
Code: [Select]
 fdkaac -b 128 foo.wav -o tmp.m4a && m4acut tmp.m4a -o result.m4a

In case of FDK LC-AAC encoder, the amount of delay is 2048(=whole 2 AAC frames).
m4acut will cut it down to 1024
(Since 1 frame is enough as priming for AAC decoder, m4acut will discard frames beyond that).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: gottogo99 on 2014-06-27 23:05:09
Belated thanks, I've been out of town.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bp0 on 2014-08-09 20:22:44
There is a HAK wiki page with collected information for Fraunhofer FDK AAC (http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC), and at Wikipedia Fraunhofer FDK AAC (https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: smok3 on 2014-09-15 22:45:00
@nu774,
a. Should fdkaac compile into a static binary?
(On Debian I have this:
Code: [Select]
ldd ./fdkaac 
    linux-vdso.so.1 =>  (0x00007fffa6e58000)
    libfdk-aac.so.0 => /usr/local/lib/libfdk-aac.so.0 (0x00007fc586100000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc585e7e000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc585af2000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc5863d6000)
)
b. Is it compilable on OSX (Mountain Lion)?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: lithopsian on 2014-09-15 23:46:02
When I build libfdk from source on Linux I get a static library as well as a shared library.  Look in .libs.

I haven't built libfdk on OSX, but the build files are set up for a wide range of platforms, just about everything you can imagine.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2014-09-16 01:55:52
@nu774,
a. Should fdkaac compile into a static binary?
b. Is it compilable on OSX (Mountain Lion)?

a. Both of libfdk-aac and fdkaac are GNU autotools based, so you can follow the general rule for it.
If you configure libfdk-aac with --disable-shared then static only libfdk-aac library will be generated, and it will be picked when building fdkaac. If both of static and shared libs are present, shared one will be picked by default.

b. Yes, haven't tried it myself, but some users seem to have succeeded in it.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Dynamic on 2014-09-16 11:18:45
There is a HAK wiki page with collected information for Fraunhofer FDK AAC (http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC), and at Wikipedia Fraunhofer FDK AAC (https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC).


The tables in that HA Wiki page look the wrong way round.

Firstly, 48kHz low-pass for VBR mode 5 - is plausible given 96kHz sampling rate is allowed, but seems like a big leap.

Then, higher low-pass for CBR modes in stereo than in mono ?!?

I don't have the correct figures to check this myself.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bp0 on 2014-09-26 23:22:16
There is a HAK wiki page with collected information for Fraunhofer FDK AAC (http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC), and at Wikipedia Fraunhofer FDK AAC (https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC).


The tables in that HA Wiki page look the wrong way round.

Firstly, 48kHz low-pass for VBR mode 5 - is plausible given 96kHz sampling rate is allowed, but seems like a big leap.

Then, higher low-pass for CBR modes in stereo than in mono ?!?

I don't have the correct figures to check this myself.


The sentence above the table explains it a bit:
"The default bandwidth (or low-pass filter cutoff) for each bitrate mode will be the minimum of the appropriate value in the tables below or half the sample rate. This can be overridden, but the maximum value is 20000 Hz"

In the case of mode 5, I think it is simply that there is no filter applied. 48kHz in this case is the "half the sample rate" for the maximum input sample rate of 96kHz, which means it is the maximum possible. If you were only encoding something from a CD that was 44.1kHz, then you're limited to 22kHz anyway, and maybe only 20kHz (but it seems like that 20kHz limit seems to only be applied if a specific bandwidth was requested).

The effect is that mode 5 is just the full frequency range.

My understanding of it could be completely wrong, though. Feel free to correct me. 

As to why there is a higher filter for multi-channel, I don't know. I'm just using the values in the table in bandwidth.cpp (https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/bandwidth.cpp)

Edit: I looked into it a little more, and edited the HAK wiki page to reflect the understanding that VBR mode 5 effectively has no filter applied. I'm pretty sure that is right.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bp0 on 2014-09-27 04:55:25
Edit: I looked into it a little more, and edited the HAK wiki page to reflect the understanding that VBR mode 5 effectively has no filter applied. I'm pretty sure that is right.

Posts #34 (http://www.hydrogenaud.io/forums/index.php?showtopic=95989&view=findpost&p=802129) (with pictures!) and #89 (http://www.hydrogenaud.io/forums/index.php?showtopic=95989&st=75&p=827970&#entry827970) in this thread seem to confirm it as well.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: bp0 on 2014-10-02 04:58:40
Then, higher low-pass for CBR modes in stereo than in mono ?!?

I think I have an answer for this. Since a channel that is combined stereo with another channel takes much fewer bits to encode, they allow more frequency on those channels, since they've got the extra space for it anyway in CBR.
FDK Bandwith (low-pass filter defaults) (http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bandwidth)

I've also updated the VBR bitrate mode table to show that they actually limit a "stereo" channel more than a full "mono" channel, so the VBR stream bitrate calculations are slightly more complicated than just bitrate*channels. This is again because the a stereo channel doesn't need as many bits because it shares alot with the channel it is combined with.
FDK Bitrate Modes (http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bitrate_Modes), with examples

EDIT: Additional note: It was Garf who explained this in IRC.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Makaveli7184 on 2014-12-23 08:23:12
What should I do to get this bloody thing to compile?! I am using the autobuild (on Windows Vista 32-bit), and MinGW/MSYS have installed correctly, but I keep getting errors when trying to build either libfdk or fdkaac...

Lib error:
Code: [Select]
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: ./libAACdec/src/aacdecoder_lib.o: bad reloc address 0x20 in section `.eh_frame'
collect2.exe: error: ld returned 1 exit status
make: *** [libfdk-aac-0.dll] Error 1



Exe error:
Code: [Select]
cc -O2 -DHAVE_CONFIG_H -I.  -c -o src/aacenc.o src/aacenc.c
In file included from src/aacenc.c:14:0:
src/aacenc.h:8:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
#include <fdk-aac/aacenc_lib.h>
                                ^
compilation terminated.
make: *** [src/aacenc.o] Error 1
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2014-12-23 14:42:30
Thanks for reporting.
It looks like they have added a new source file about a month ago or so, so the build is failing.

I have updated Makefile on the repo now, so please try running build_libfdk_aac.bat and build_fdkaac.bat again (These batch files will automatically download new Makefile from the repo).
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Makaveli7184 on 2014-12-24 07:55:32
Thanks nu, it's working now.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: mzso on 2015-01-29 12:36:32
Where can I find windows binaries with this mystical codec?
Ffmpeg is supposed to have, but no-one compiled a build with it...
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kurtnoise on 2015-01-29 15:51:13
the license relative to it doesn't allow to distribute it publicly...
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: mzso on 2015-01-29 18:36:18
the license relative to it doesn't allow to distribute it publicly...

So only compiler wizards have it then? (I guess the other good one, Apple's encoder is not easy to procure either?)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: darkbyte on 2015-01-29 19:09:41
Where can I find windows binaries with this mystical codec?
Ffmpeg is supposed to have, but no-one compiled a build with it...


Compile your own ffmpeg. Download VirtualBox, a Linux installer ISO (i usually going with Linux Mint MATE), install the distrib, leave enough space for compiling (~10GB, so I've setup a 30GB dynamic disk), go to terminal, clone this repository and follow the instructions: https://github.com/rdp/ffmpeg-windows-build-helpers (https://github.com/rdp/ffmpeg-windows-build-helpers)
It will download everything required and cross-compile the Win32 and Win64 ffmpeg executables, including libfdk-aac. Prepare for a long compile though, it took me almost 5 hours to compile with this script last weekend.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Hex144 on 2015-01-29 20:15:57
fdkaac can be built automatically with this utility (https://sites.google.com/site/qaacpage/cabinet/fdkaac_autobuild.zip).
It used to work a few months ago, but now I keep getting these errors when attempting to build the library:
"g++.exe / cc1plus.exe - There is no disk in the drive. Please insert a disk into drive \Device\Harddisk1\DR1".
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: mzso on 2015-01-29 20:29:15
Where can I find windows binaries with this mystical codec?
Ffmpeg is supposed to have, but no-one compiled a build with it...


Compile your own ffmpeg. Download VirtualBox, a Linux installer ISO (i usually going with Linux Mint MATE), install the distrib, leave enough space for compiling (~10GB, so I've setup a 30GB dynamic disk), go to terminal, clone this repository and follow the instructions: https://github.com/rdp/ffmpeg-windows-build-helpers (https://github.com/rdp/ffmpeg-windows-build-helpers)
It will download everything required and cross-compile the Win32 and Win64 ffmpeg executables, including libfdk-aac. Prepare for a long compile though, it took me almost 5 hours to compile with this script last weekend.

Yeah. I won't waste my time like that. Anyway I used Apple AAC instead, it was much less tedious to get working.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Hex144 on 2015-02-01 09:59:45
fdkaac can be built automatically with this utility (https://sites.google.com/site/qaacpage/cabinet/fdkaac_autobuild.zip).
It used to work a few months ago, but now I keep getting these errors when attempting to build the library:
"g++.exe / cc1plus.exe - There is no disk in the drive. Please insert a disk into drive \Device\Harddisk1\DR1".

Everything back to normal now.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2015-02-19 04:48:42
Btw, nu774's 0.6.2 is out: https://github.com/nu774/fdkaac/blob/master/version.h (https://github.com/nu774/fdkaac/blob/master/version.h)
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: hlloyge on 2015-02-19 07:59:02
Everything back to normal now.


nope, it hasn't. I keep getting requests for drive I:
What the hell is going on there?
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: mzso on 2015-02-19 12:17:30
Everything back to normal now.


nope, it hasn't. I keep getting requests for drive I:
What the hell is going on there?

It was working about two weeks ago when I tried.
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Elbart on 2015-04-03 18:07:51
I can't even get the build-tools to install:
Code: [Select]
C:\temp\fdkaac>install-mingw.bat
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/
retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/
retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip/download
retrieving http://downloads.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip?r=&ts=1428080660&use_mirror=heanet
C:\temp\fdkaac\install-mingw.js(76, 5) (null): Unspecified error


C:\temp\fdkaac>

The zip-file is downloaded and extractable, though.

Extracting it manually and rerunning the script with line 84 (    extract_zip(zip_file, rootdir)) removed works.

EDIT:
But then compilation fails in build_libfdk_aac.bat:

http://pastebin.com/LtPwhZMq (http://pastebin.com/LtPwhZMq)

All these files exist in these folders.

EDIT:
Running build_fdkaac.bat after this error successfully creates fdkaac.exe. 
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Elbart on 2015-04-06 11:15:27
Here's a follow-up:

The reason for the script not being able to extract the file was because I disabled the "compressed folder"-feature of Windows:
http://www.sevenforums.com/tutorials/13619...lorer-view.html (http://www.sevenforums.com/tutorials/13619-zip-folders-enable-disable-windows-explorer-view.html)
Reverting that change solved the extraction-issue.

And for the error after compiling libfdk-aac, nu774 already checked in a commit for that:
https://github.com/nu774/fdkaac_autobuild/c...4d009311e45f030 (https://github.com/nu774/fdkaac_autobuild/commit/b1f7311adfe9391a09a7f8ba84d009311e45f030)

Everything's working now. 
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: ghot567 on 2015-07-18 12:26:51
what's the changes for FDK 0.6.2
Title: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Tr4shCr4fT on 2015-09-06 18:41:34
think i found quite a killer sample for fdk-aac Q3 setting...
drum shot at about 02:15 in the track "Overture" from Tron² OST by Daft Punkt

it gets a clearly noticeable loss in sharpness on q3 setting (102kbit final bitrate) of fdkaac 6.2
however, i could not hear a difference when encoded with qaac on V=45 setting, yielding 96k
even with lame v7 it was harder to detect and i only got max 7-8 of 10 when abx'ing the spot

i suspect its due to the cutoff at 14500



settings:
lame 3.99r - V5, V7
fdkaac 0.6.2 - m4, m3
qaac 2.49 - tvbr 45
opustools 0.1.9 - vbr 96, 128

samples: http://www44.zippyshare.com/v/jDlVn0k4/file.html (http://www44.zippyshare.com/v/jDlVn0k4/file.html)
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2016-09-13 18:05:39
FDK AAC 0.6.3 released 18 days ago by nu774:

Version: https://github.com/nu774/fdkaac/blob/master/version.h

Changelog: https://github.com/nu774/fdkaac/blob/master/ChangeLog

Download: https://sites.google.com/site/qaacpage/cabinet/fdkaac_autobuild.zip?attredirects=0&d=1
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: ghostman6842 on 2016-09-21 01:18:07
This installer refuses to work on my Win10 64 Bit system. Is anybody else having problems? I've tried 3 times, and all I get is a bunch of error messages saying certain things can't be downloaded, or a config file in MinGW is missing. WTF?

BTW: I created the previous verison of FDK AAC that I have now using the same installer. No problems at all.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2016-09-23 07:25:10
nu774 can you check this please? Thanks.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2016-09-23 09:56:40
Well, have you guys tried with the latest fdkaac_autobuild from https://github.com/nu774/fdkaac_autobuild ?
Due to incompatibility brought by recent updates on MinGW side, old scripts shouldn't work.

Actually, I'm not quite happy with maintaining fdkaac_autobuild project.
fdkaac is an opensource project based on standard GNU autoconf/automake build system. Therefore, building fdkaac is no more difficult compared to other opensource projects.
Now that Windows 10 comes with WSL(Windows Subsystem for Linux), building is even easier than ever.

I don't distribute compiled binaries of fdkaac because I want to avoid any troubles regarding AAC patents, but situation is no different compared to other patented codecs such as H264 or something.
Why do we need automated build scripts then?
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: ghostman6842 on 2016-09-23 18:34:43
Well, have you guys tried with the latest fdkaac_autobuild from https://github.com/nu774/fdkaac_autobuild ?
Due to incompatibility brought by recent updates on MinGW side, old scripts shouldn't work.

Thanks. That version worked & created a workable version of FDK AAC 0.6.3. The one that's here...

https://sites.google.com/site/qaacpage/cabinet/fdkaac_autobuild.zip?attredirects=0&d=1

...refused to even create anything at all.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kode54 on 2016-10-07 07:01:06
Maintaining a way to build Windows native binaries is probably still an admirable calling, since I don't think the Linux subsystem can be used to pipe data with Windows processes (like foobar2000) even using bash.exe somehow.

Then again, if you're going to use foobar2000 or another Windows command line frontend converter, you may as well use qaac or the FhG frontend. You even get the benefit of the encoder being somewhat licensed, if only for use with the respective products they were bundled with.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2016-10-07 14:03:09
Maintaining a way to build Windows native binaries is probably still an admirable calling, since I don't think the Linux subsystem can be used to pipe data with Windows processes (like foobar2000) even using bash.exe somehow.
Well I was thinking of mingw-w64 cross compilation on WSL.
Having said that, piping from win32 to WSL process is possible through wslbridge (https://github.com/rprichard/wslbridge) like this:
Code: [Select]
C:\foo\bar\> flac -dc  foo.flac | wslbridge -- fdkaac -b 128 - -o o.m4a
With this command line, fdkaac is invoked under /mnt/c/foo/bar as current working directory on WSL, and is piped from win32 side flac.exe.
I think this method also works for fb2k as long as the file is under a drive that is automatically mounted on WSL side (network paths won't work).
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: dev on 2016-11-14 17:36:24
Code: [Select]
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>d:

D:\>fdkaa
'fdkaa' is not recognized as an internal or external command,
operable program or batch file.

D:\>cd fdkaa

D:\fdkaa>install-mingw.bat
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/
retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw
-get-0.6.2-beta-20131004-1/
retrieving http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw
-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip/downl
oad
retrieving http://downloads.sourceforge.net/project/mingw/Installer/mingw-get/mi
ngw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip?r=
&ts=1479144373&use_mirror=heanet
D:\fdkaa\install-mingw.js(97, 9) (null): The system cannot find the file specifi
ed.

The system cannot find the path specified.
The system cannot find the file specified.
The system cannot find the file specified.

D:\fdkaa>install-mingw.bat mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

D:\fdkaa\install-mingw.js(97, 9) (null): The system cannot find the file specifi
ed.

The system cannot find the path specified.
The system cannot find the file specified.
The system cannot find the file specified.

D:\fdkaa>build_libfdk_aac.bat
'wget' is not recognized as an internal or external command,
operable program or batch file.
'wget' is not recognized as an internal or external command,
operable program or batch file.
'unzip' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the path specified.
        0 file(s) copied.
The system cannot find the path specified.
        0 file(s) copied.
The system cannot find the path specified.
'make' is not recognized as an internal or external command,
operable program or batch file.

D:\fdkaa>


OMG OMG OMG OMG!!!

Can't a simple mortal just download compiled exe?
Can someone please help me and share the latest version of fdk aac?
Please help my head not to explode!
WinXP 32bit

Thx
dev
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: andrew.46 on 2016-11-21 07:38:08
I feel your pain:

OMG OMG OMG OMG!!!
Can't a simple mortal just download compiled exe?
Can someone please help me and share the latest version of fdk aac?

I am not sure if there needs to be any licensing information included with this binary but here is fdkaac 1.6.3 static build for 32bit Windows:

http://www.andrews-corner.org/downloads/fdkaac-1.6.3-win32-ads.zip

Compiled using MXE and tested in 32bit Windows where it runs nicely, should be ok with 64bit as well...

Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: NetRanger on 2016-11-21 12:32:19
Well, have you guys tried with the latest fdkaac_autobuild from https://github.com/nu774/fdkaac_autobuild ?
Due to incompatibility brought by recent updates on MinGW side, old scripts shouldn't work.

Actually, I'm not quite happy with maintaining fdkaac_autobuild project.
fdkaac is an opensource project based on standard GNU autoconf/automake build system. Therefore, building fdkaac is no more difficult compared to other opensource projects.
Now that Windows 10 comes with WSL(Windows Subsystem for Linux), building is even easier than ever.

I don't distribute compiled binaries of fdkaac because I want to avoid any troubles regarding AAC patents, but situation is no different compared to other patented codecs such as H264 or something.
Why do we need automated build scripts then?

There is a lot of persons out there that don't have the 'tech knowledge' to setup compiling environments, doing compling etc. I've personally tried to get me the needed knowledge to do this but i failed in the end. It was really frustrating but then i got my hands on media-autobuild_suite and it solved everything, I've also used your 'fdkaac_autobuild' before my needs for more windows codedc binaries grew. So thanks a lot for the work you do on your automated build script,

So automated build scripts is a great help for a lot of people out there.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: andrew.46 on 2016-11-21 20:45:18
So I don't mind keeping a small bank of unofficial Windows binaries on my web site if there is any interest. For fdkaac that would simply be a static 32bit Windows build and a static Windows 64bit build with a brief explanatory document in each archive. As I mentioned a few threads above a sample of the 32bit build for the latest fdkaac is here... (http://www.andrews-corner.org/downloads/fdkaac-1.6.3-win32-ads.zip)

Importantly I don't want to tread on anyone's toes here, particularly the developer of fdkaac :). It is a simpl build: compiling the fdkaac source against the MXE libraries using the MXE cross compiler
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: andrew.46 on 2016-11-26 00:20:38
I have done a little more work on the Windows binaries of fdkaac 0.6.3 and I have created and tested both 32bit and 64bit binaries. These are available on my personal website:


If you are not sure which version of Windows you are running simply download the 32bit package, this will run on both versions of Windows.

Being a Slackware user I am a little uneasy with pre-compiled packages so perhaps you could consider building your own with the cross compiler MXE (http://mxe.cc/) under Linux. Once this has been setup correctly run the following from within MXE:

Code: [Select]
make fdk-aac libiconv MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static'

and then run the following single command to build both 32bit and 64bit versions:

Code: [Select]
cd $HOME/Desktop && \
wget --content-disposition https://github.com/nu774/fdkaac/archive/v0.6.3.tar.gz && \
tar xvf fdkaac-0.6.3.tar.gz && cd fdkaac-0.6.3 && \
autoreconf -fiv && \
./configure --host=i686-w64-mingw32.static \
            --with-libiconv-prefix=$HOME/mxe/usr/i686-w64-mingw32.static \
            --prefix=$HOME/Desktop/fdkaac_i686-w64 && \
make && make install && \
cd $HOME/Desktop && rm -rf fdkaac-0.6.3 && tar xvf fdkaac-0.6.3.tar.gz && cd fdkaac-0.6.3 && \
autoreconf -fiv && \
./configure --host=x86_64-w64-mingw32.static \
            --with-libiconv-prefix=$HOME/mxe/usr/x86_64-w64-mingw32.static \
            --prefix=$HOME/Desktop/fdkaac_x86_64 && \
make && make install && \
cd $HOME/Desktop && rm -rf fdkaac-0.6.3

These are the simple steps I took to create the Windows binaries of fdkaac 0.6.3 which have been very popular on my site :).

edit: 1.6.3 -> 0.6.3
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2017-02-11 03:36:16
EZ CD Audio Converter just updated its FDK encoder (https://www.poikosoft.com/help/history):

- Codec Updates
- - FhG FDK AAC encoder 3.4.22p
- - - Improved audio quality
- - - Performance improvements for x64

Sorry nu774 for always calling you on updates, any news on this? Thanks man.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2017-02-11 08:36:49
- - FhG FDK AAC encoder 3.4.22p
FDK-AAC encoder 3.4.22 came out about 6 months ago, and necessary fixes are already applied to fdkaac 0.6.3.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kokuyo on 2017-02-11 09:54:36
EZ CD Audio Converter just updated its FDK encoder (https://www.poikosoft.com/help/history):

- Codec Updates
- - FhG FDK AAC encoder 3.4.22p
- - - Improved audio quality
- - - Performance improvements for x64

Sorry nu774 for always calling you on updates, any news on this? Thanks man.

FhG FDK AAC encoder library 3.4.22p
https://www.iis.fraunhofer.de
"p" version stands for modified by Poikosoft audio laboratories.
Modifications to the original encoder are the following:
· Widened bandwidth for better audio quality
· Uses the highest quality options available in the original codec for better audio quality
· Double-precision algorithms for better audio quality
· Uses high precision math functions rather than limited precalculated tables for better audio quality
· Modified VBR tables for more VBR encoding modes
· Improved x64 performance by using faster math functions
· Uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, and AVX2 multimedia instructions whenever there is a performance benefit

https://www.poikosoft.com/help/encoder-versions

Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: nu774 on 2017-02-11 14:09:49
"p" version stands for modified by Poikosoft audio laboratories.
Modifications to the original encoder are the following:
· Widened bandwidth for better audio quality
· Uses the highest quality options available in the original codec for better audio quality
· Double-precision algorithms for better audio quality
· Uses high precision math functions rather than limited precalculated tables for better audio quality
· Modified VBR tables for more VBR encoding modes
· Improved x64 performance by using faster math functions
· Uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, and AVX2 multimedia instructions whenever there is a performance benefit

https://www.poikosoft.com/help/encoder-versions

Ah, thanks to let me know. So, they are using modified version of the encoder. Are they publishing the sources?
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: doom-drone on 2017-02-11 19:33:11
I just installed a demo of that program & after messing about with the FDK encoder at what is 160k. So far i would it rank with the other higher quality AAC encoders. I'm really surprised by this.  

Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: eahm on 2017-02-11 21:52:46
So far i would it rank with the other higher quality AAC encoders. I'm really surprised by this.

Based on what? Did you ABX?
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: doom-drone on 2017-02-12 12:15:07
So far i would it rank with the other higher quality AAC encoders. I'm really surprised by this.

Based on what? Did you ABX?
I did some more tests, some ambient stuff had bit rates of 240 - 300k & one harsh noise track had a bit rate of 70k with a artifact. While another harsh noise album just breaks it with ugly artifacts even at 275k.

It's almost like they mostly ignored anything electronic music since there bit rates are all over the place at 160k VBR.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: kokuyo on 2017-02-17 14:16:43
FhG FDK AAC encoder library 3.4.22p3
https://www.iis.fraunhofer.de
"p" version stands for modified by Poikosoft audio laboratories.
Modifications to the original encoder are the following:
· Tuned bandwidths for better audio quality
· Uses the highest quality options available in the original codec for better audio quality
· Double-precision algorithms for better audio quality
· Uses high precision math functions rather than precalculated tables for better audio quality
· Modified VBR tables for more VBR encoding modes
· Improved x64 performance by using faster math functions
· Uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, and AVX2 multimedia instructions whenever there is a performance benefit

https://www.poikosoft.com/help/encoder-versions
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: Enig123 on 2017-02-17 18:02:17
First impression, better audio quality is not  guaranteed just by those changes.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: LithosZA on 2017-02-18 17:09:07
We would only know by doing a listening test to determine if the changes hurt audio quality or give better audio quality.
Title: Re: Open Source Fraunhofer AAC Encoder (fdk-aac)
Post by: MRDA 1981 on 2017-10-21 18:43:15
FhG FDK AAC encoder library 3.4.22p3
https://www.iis.fraunhofer.de
"p" version stands for modified by Poikosoft audio laboratories.
Modifications to the original encoder are the following:
· Tuned bandwidths for better audio quality
· Uses the highest quality options available in the original codec for better audio quality
· Double-precision algorithms for better audio quality
· Uses high precision math functions rather than precalculated tables for better audio quality
· Modified VBR tables for more VBR encoding modes
· Improved x64 performance by using faster math functions
· Uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, and AVX2 multimedia instructions whenever there is a performance benefit

https://www.poikosoft.com/help/encoder-versions

Speaking as someone who uses this software, I'm really impressed with the results I get with Poikosoft's FHG encoder; encoding from FLAC to VBR AAC @ Q3 (120-190kb) gives me some great, transparent results.
SimplePortal 1.0.0 RC1 © 2008-2018