The FAAC project includes the AAC encoder FAAC and decoder FAAD2.
FAAC supports several MPEG-4 object types (LC, LTP, HE AAC, Main, PS) and file formats (raw AAC, MP4, ADTS AAC), multichannel and gapless en/decoding as well as MP4 metadata tags.
The codecs are compatible with standard-compliant audio applications using one or more of these profiles.
General FAAC compiling instructions:
1. Make sure you have autoconf, automake and libtool installed. For MP4 support, you must have libmp4v2 (included in faad2) installed.
2. cd to FAAC source dir
-a X Set average bitrate to approximately X kbps per channel (i.e. using -a 64 averages at 128 kbps/stereo).
-c < bandwidth > Set the bandwidth in Hz (default value depends on sample rate)
-q < quality > Set quantizer quality (default: 100, averages at approx. 128 kbps VBR for a normal stereo input file at 16 bit and 44.1 kHz sample rate).
--tns Enable TNS coding.
--notns Disable TNS coding.
-n Disable mid/side coding.
-m X AAC MPEG version, X can be 2 or 4 (default: MPEG-2, so for the sake of interoperability with non-standard compliant players like QuickTime 6 you should set it to "4").
-o X AAC object type, X can be LC, MAIN or LTP (default: LC, for the same reason as with the MPEG version don't use Main or LTP).
-r RAW AAC output file (i.e. without ADTS headers).
-P Raw PCM input mode.
-R Raw PCM input sample rate in Hz (default: 44100 Hz).
-B Raw PCM input bit depth (default: 16 bits, also possible 8 bits).
-C Raw PCM input channels (default: 2).
- < stdin > If you simply use a hyphen/minus sign instead of an input file name, FAAC can encode directly from stdin, thus enabling piping within other applications like foobar2000 or mp4live.
Note: VBR output bitrate depends on -q AND -c, so you should only vary the default setting -q 100 -c 16000 if you know what you're doing and/or want to experiment with other cutoff frequencies at a given quality setting.
The ABR setting with -a is an approximate average bitrate that does not use a bit reservoir, i.e -a 64 and -q 100 at 44.1 kHz will result in exactly the same output file.
The following list should give some orientation for useful -q and -c settings, based on FAAC v1.17. The resulting VBR bitrates are referring to an average sounding stereo file with 16bit, 44.1 kHz, i.e. ct_reference.wav in this case. Multiplexing these AAC files to MP4 with e.g. mp4creator will result in a ~3 kbps lower bitrate because of the stripped ADTS headers:
-q 130 -c 22000 -m 4 (~218 kbps)
-q 120 -c 20000 -m 4 (~194 kbps)
-q 110 -c 18000 -m 4 (~158 kbps)
-q 100 -c 16000 -m 4 (~129 kbps)
-q 90 -c 14000 -m 4 (~103 kbps)
-q 80 -c 12000 -m 4 (~79 kbps)
-q 70 -c 10000 -m 4 (~62 kbps)
The added -m 4 switch does not change the bitrate or sound of course, but is recommended for most AAC/MP4 players that use an updated FAAD2-based plugin from this year (Winamp 2.x, foobar2000 etc.) or can't decode MPEG-2 AAC LC files like QuickTime 6. Philips Expanium users should not use this switch, because their CD portable does not know MPEG-4 AAC files.
What's New in This Release: [ read full changelog ]
· Prevent out of range scalefactors
· Updated to latest mpeg4ip mp4 file format library
· Added -s option to make the encoder output optimized mp4 layout
· Improved JPEG detection for album art
· Lot's of compilation issues solved