A better AAC encoder: FDK-AAC

  • It would be nice if you added ability to use Apple CoreAudio AAC. I'm sure its possible to do since OBS does this too (when its installed on system).

    Any updates on this matter and if it's possible to add support for it? Sure would help to streamline things a little bit, for me at least.

  • Thank you for this info! I used to compile FFMPEG with fdk aac built in and I was considering doing this again until I saw your post here.

    Which profile are you using for 03-AAC-ffmpg_CBR_384? Low complexity?

    Is this still one of the best audio encoders you've found that works with Voukoder?

  • I just use QAAC's cvbr mode for best compression and quality possible among 99.9% of audio encoders:

    Code
    qaac64.exe --cvbr 320 -b 16 -r 44100 --threading -o "output.aac" "input.wav"

    Sometimes I have to lower the cbvr bitrate (e.g., --cvbr 256 for 256Kbps) to make the export compatible with some audio sharing platforms.

    HE-AAC does offer more compression, in QAAC it allows a maximum of 80Kbps, which butchers the audio quailty, though

  • Seems this thread gets revived every now and then so here is a question from me :?:

    Regarding a previous post:
    But there is an alternative / workaround:

    • Simply extract the libfdk-aac-2.dll file from the attached zip archive to your C:\windows\system32\ directory.

    Now everything is always about fdk-aac or Qaac.

    Many years back i have held a true double blind test focussed on music 14 X random A - B test, with me (audio engineer) and 2 other audio guys comparing the different aac encoder as wel as mp3, vorbis and OGG.

    keeping it short the FHG-AAC was the only aac that we could not distinguish from lossless (highest vbr preset)


    Is there an easy way to import or start using this encoder in voukoder? I know it can't be included licence wise and stuff, but for example in foobar i can just select this as my default aac encoder.

    The version of the encoder i have is a combination of the fhgaacenc.exe console shell and the enc_fhgaac plugin for Winamp.

    - work in CBR (8-576 kbps) and VBR (6 quality presets)
    - support for encoding with STDIN
    - supported audio: 8/16/24 bit, 22050-96000 Hz, up to 8 channels
    - support SBR and PS (HE-AACv2)

    Probably ist that simple of just copy paste files to windows or a voukoder folder regarding this? :/

  • Could we get an audio cutoff setting like in FFmpeg? That would solve the issue with the audio above 17KHz getting cut off. By default libfdk_aac applies a low pass filter but the ffmpeg command paramete "-cutoff 20000" sets the low pass filter to 20KHz (which is the max, if set higher I will error and tell you 20KHz is max.)

  • These are the options I have available:

    ffmpeg version 549430e Copyright (c) 2000-2023 the FFmpeg developers
     built with Microsoft (R) C/C++ Optimizing Compiler Version 19.36.32532 for x64
     configuration: --toolchain=msvc --extra-cflags='-MDd -I../build/include' --extra-ldflags='-LIBPATH:../build/lib' --prefix=../build --extra-libs=Ole32.lib --extra-libs=Advapi32.lib --disable-doc --pkg-config-flags=--static --disable-shared --enable-static --enable-runtime-cpudetect --enable-w32threads --enable-gpl --enable-libvpl --enable-libsvtav1 --enable-libsnappy --enable-libmp3lame --enable-libzimg --enable-libvorbis --enable-libopus --enable-libx264 --enable-libx265 --enable-libfdk-aac
     libavutil      58.  2.100 / 58.  2.100
     libavcodec     60.  3.100 / 60.  3.100
     libavformat    60.  3.100 / 60.  3.100
     libavdevice    60.  1.100 / 60.  1.100
     libavfilter     9.  3.100 /  9.  3.100
     libswscale      7.  1.100 /  7.  1.100
     libswresample   4. 10.100 /  4. 10.100
     libpostproc    57.  1.100 / 57.  1.100
    Encoder libfdk_aac [Fraunhofer FDK AAC]:
       General capabilities: dr1 delay small
       Threading capabilities: none
       Supported sample rates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000
       Supported sample formats: s16
       Supported channel layouts: mono stereo 3.0 4.0 5.0 5.1 6.1(back) 7.1(wide) 7.1 7.1(top)
    libfdk_aac AVOptions:
     -afterburner       <int>        E...A...... Afterburner (improved quality) (from 0 to 1) (default 1)
     -eld_sbr           <int>        E...A...... Enable SBR for ELD (for SBR in other configurations, use the -profile parameter) (from 0 to 1) (default 0)
     -eld_v2            <int>        E...A...... Enable ELDv2 (LD-MPS extension for ELD stereo signals) (from 0 to 1) (default 0)
     -signaling         <int>        E...A...... SBR/PS signaling style (from -1 to 2) (default default)
        default         -1           E...A...... Choose signaling implicitly (explicit hierarchical by default, implicit if global header is disabled)
        implicit        0            E...A...... Implicit backwards compatible signaling
        explicit_sbr    1            E...A...... Explicit SBR, implicit PS signaling
        explicit_hierarchical 2            E...A...... Explicit hierarchical signaling
     -latm              <int>        E...A...... Output LATM/LOAS encapsulated data (from 0 to 1) (default 0)
     -header_period     <int>        E...A...... StreamMuxConfig and PCE repetition period (in frames) (from 0 to 65535) (default 0)
     -vbr               <int>        E...A...... VBR mode (1-5) (from 0 to 5) (default 0)

  • One screenshot is running ./ffmpeg -i '.\Katy Perry - Teenage Dream - 04 - Firework.flac' -c:v copy -c:a libfdk_aac -vbr 4 KP-regular-vbr-4.m4a and the other is running ./ffmpeg -i '.\Katy Perry - Teenage Dream - 04 - Firework.flac' -c:v copy -c:a libfdk_aac -vbr 4 -cutoff 20000 KP-20k-vbr-4.m4a. In the screenshots, you can clearly see one has much lower levels above about 17KHz and that is the first command. The other has normal sound levels above 17KHz and that is with -cutoff 20000. I'll try and test these audio files with Voukoder and see if the cutoff applies or if it's a weird FFmpeg thing. I will get back to you in a second comment when I check.


    Voukoder has the same cutoff applied by default. This could be useful: https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_aac

    So it's not just FFmpeg, it's the FDK AAC encoder.


    Chapter 3.1 which is on page 23 of the FDK AAC docs explains something about the bandwidth and the API for it: https://github.com/mstorsjo/fdk-a…/aacEncoder.pdf


    On this FFmpeg documentation page it lists cutoff as an option:

    ffmpeg Documentation

  • I ask you, why use .aac if in HEVC H265 it is not a format accepted by 4K UHD (unlike .ac3)?

    Thanks

    Putting aside video, stream files are a list of channels and bandwidths. If I listen to radio on my phone, I don't have 7.1 speakers in the first place.