Changes between Version 59 and Version 60 of Encode/AAC


Ignore:
Timestamp:
Apr 21, 2023, 2:04:09 PM (3 years ago)
Author:
Mingye Wang
Comment:

Nevermind, _at is its own thing

Legend:

Unmodified
Added
Removed
Modified
  • Encode/AAC

    v59 v60  
    33[[http://en.wikipedia.org/wiki/Advanced_Audio_Coding|Advanced Audio Coding (AAC)]] is the successor format to MP3, and is defined in MPEG-4 part 3 (ISO/IEC 14496-3). It is often used within an MP4 container format; for music the `.m4a` extension is customarily used. The second-most common use is within MKV (Matroska) files because it has better support for embedded text-based soft subtitles than MP4. The examples in this guide will use the extensions MP4 and M4A.
    44
    5 FFmpeg supports two AAC-LC encoders (`aac` and `libfdk_aac`) and one HE-AAC (v1/2) encoder (`libfdk_aac`). The license of `libfdk_aac` is not compatible with GPL, so the GPL does not permit distribution of binaries containing incompatible code when GPL-licensed code is also included. Therefore this encoder have been designated as "non-free", and you cannot download a pre-built ffmpeg that supports it. This can be resolved by [[CompilationGuide|compiling ffmpeg]] yourself.
     5FFmpeg supports three AAC-LC encoders (`aac`, `libfdk_aac`, `aac_at`) and two HE-AAC (v1/2) encoder (`libfdk_aac`, `aac_at`). The license of `libfdk_aac` is not compatible with GPL, so the GPL does not permit distribution of binaries containing incompatible code when GPL-licensed code is also included. Therefore this encoder have been designated as "non-free", and you cannot download a pre-built ffmpeg that supports it. This can be resolved by [[CompilationGuide|compiling ffmpeg]] yourself.
    66
    77See also [[Encode/HighQualityAudio]] for general guidelines on FFmpeg audio encoding (which also includes a comparison of which AAC encoder is best quality).
     
    125125By default, the native encoder produces AAC-LC, which is a "low complexity" profile of baseline AAC. It actually supports the more powerful "main" and "long-term prediction" profiles ([[https://ffmpeg.org/ffmpeg-codecs.html#aac|documentation]]), but these are less tested.
    126126
    127 The native encoder is actually two encoders in a trench-coat. When a build is configured with --enable-audiotoolbox, the libavcodec implementation is swapped out for Apple's audioToolbox.framework, normally available only on macOS. Apple's encoder is quite good in listening tests and has HE-AAC support, so that the same `-profile:a` flags work. You may have come across this implementation on other platforms as "QAAC" or "audioToolboxWrapper", but licensing issues for these modifications is too much for FFmpeg to deal with.
    128 
    129127=== Examples ===
    130128
     
    144142Native FFmpeg AAC Encoder does not do CBR audio encoding.
    145143
    146 
     144----
     145= AudioToolbox =
     146When a build is configured with --enable-audiotoolbox, Apple's audioToolbox.framework (normally available only on macOS) will provide a series of codecs suffixed `_at`. Apple's encoder is quite good in listening tests and has HE-AAC support, so that the same `-profile:a` flags from FDK work<!-- see audiotoolboxenc.c, ffat_get_format_id -->. You may have come across this implementation on other platforms as "QAAC" or "audioToolboxWrapper", but licensing issues for these modifications is too much for FFmpeg to deal with.
     147
     148----
    147149= Metadata =
    148150