FAAC
Encoder and decoder of AAC audio codec
| FAAD2 | |
|---|---|
| Original authors | Menno Bakker, Nero AG and others |
| Release | 2000 (FAAD1) |
| Stable release | 2.10.0 / October 20, 2020 (2020-10-20) |
| Written in | C |
| Operating system | Cross-platform |
| Available in | English |
| Type | Decoder |
| License | GNU General Public License version 2 or later |
| Website | sourceforge.net/projects/faac/ faac.sourceforge.net |
| Repository | github.com/knik0/faad2 |
FAAC (Freeware Advanced Audio Coder) is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types (LC and SBR for encoding, and SBR, PS, ER, LD for decoding), file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. FAAC and FAAD2, being distributed in C source code form, can be compiled on various platforms and are distributed free of charge. FAAD2 is free software. As of version 2.0, FAAC was completely rewritten to remove legacy reference code and is distributed as free software under the GNU Lesser General Public License (LGPL v2.1 or later). Older versions contained code distributed under a proprietary license and supported Digital Radio Mondiale.
FAAC was originally written by Menno Bakker.
01FAAC encoder
FAAC stands for Freeware Advanced Audio Coder. The FAAC encoder is an audio compression computer program that creates AAC (MPEG-2 AAC/MPEG-4 AAC) sound files from other formats (usually, CD-DA audio files). It contains a library (libfaac) that can be used by other programs. AAC files are commonly used in computer programs and portable music players, being Apple Inc.'s recommended format for the company's iPod music player.
Some of the features that FAAC has are: cross-platform support, "reasonably" fast encoding, support for more than one "object type" of the AAC format, and multi-channel streams like 5.1. FAAC focuses primarily on the Low Complexity (LC) and HE-AAC v1 (Spectral Band Replication / SBR) profiles. The MPEG-2 AAC profile supported by FAAC is LC. Support for HE-AAC v1 encoding was added in version 2.0.0, while legacy object types (Main, LTP, SSR) were removed. Support for Digital Radio Mondiale streams was removed in version 1.4. The object type "Low Complexity" is the default and also happens to be used in videos meant to be playable for portable players (like Apple's iPod) and used by video-hosting sites (like YouTube).
Earlier 1.x versions of FAAC have historically been evaluated as a somewhat "lower quality" option than other AAC encoders.
Alternatives for AAC encoding in Unix-like operating systems
FAAC is one of six alternatives that Linux/Unix users have for creating AAC files. The others are:
- The Fraunhofer-developed "FDK AAC" encoder library included as part of Android. The FDK AAC source code is licensed under a custom-copyleft license, and has been ported to other platforms as libfdk-aac. The library is built around fixed-point math and supports only 16-bit PCM input.
- The Nero AG-developed "Nero AAC Codec", which has a proprietary license, and is not available for the entire range of hardware architectures that these operating systems are able to run. Nero no longer develops this encoder, but the package is still available, and it remains a high-quality option for AAC encoding.
- The libavcodec native AAC encoder (separate versions maintained by FFmpeg and Libav) was experimental but considered "better than vo-aacenc" in at least some tests. It was written by Konstantin Shishkov, and released under version 2.1 of the LGPL. The AAC encoder used in FFmpeg's version of libavcodec was significantly improved for version 3.0 of FFmpeg and is no longer considered experimental. Libav has not merged this work.
- libvo_aacenc, the Android VisualOn AAC encoder. This encoder was replaced in Android by the FDK AAC encoder mentioned above, and is considered a poor-quality option.
- The (nonfree) libaacplus which implements the High-Efficiency Advanced Audio Coding.
- Mac OS X users can utilize Apple's AAC encoder with the command-line afconvert tool.
02FAAD2 decoder
FAAD2 is Freeware Advanced Audio (AAC) Decoder including SBR decoding. It is MPEG-2 and MPEG-4 AAC decoder and supports MPEG-4 audio object types LC, Main, LTP, LD, ER, SBR and PS, which can be combined also to HE-AAC and HE-AACv2 Profile (AAC LC+SBR+PS). It contains a library (libfaad) that can be used by other programs.
FAAD and FAAD2 were originally written by Menno Bakker from Nero AG. FAAD2 is the successor to FAAD1, which was deprecated.
FAAD is Freeware Advanced Audio Decoder. It was first released in 2000 and it did not support SBR and PS audio object types. The last version of FAAD1 was 2002-01-04. All development later focused in FAAD2. The SBR decoding support (HE-AAC) was added in the version release on 25 July 2003. FAAD2 version 2.0 was released on 6 February 2004.
03Licensing
FAAC versions 2.0 and later are fully licensed under the GNU Lesser General Public License. Older versions contain code based on the ISO MPEG-4 reference code, whose license is not compatible with the LGPL. Only the FAAC changes to this ISO MPEG-4 reference code are licensed under the LGPL license. The ISO MPEG-4 reference software was published as ISO/IEC 14496-5 (MPEG-4 Part 5: Reference software) and it is freely available for download from ISO website. ISO/IEC gives users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-2 NBC/MPEG-4 Audio standards. Those intending to use this software module in hardware or software products are advised that this use may infringe existing patents.
FAAD2 is licensed under the GPL v2 (and later GPL versions). Code from FAAD2 is copyright of Nero AG (the "appropriate copyright message" mentioned in section 2c of the GPLv2). The source code contains a note that the use of this software may require the payment of patent royalties. Commercial non-GPL licensing of this software is also possible.
FAAD (FAAD1) modifications to the ISO MPEG-4 AAC reference code were distributed under the GPL.
04Other software
FAAC and FAAD2 are used in the following software products and libraries:
- Avidemux video editing software.
- CDex uses FAAC encoder.
- FFmpeg supports AAC encoding through external library libfaac, and using its experimental native encoder.
- fre:ac uses FAAC and FAAD2 for AAC support.
- GStreamer multimedia framework uses FAAC and FAAD.
- MPlayer uses FAAD2.
- VLC media player uses the FAAC (encoder) and FAAD (decoder) to provide support for AAC audio.
- Music Player Daemon uses FAAD2
- Music on Console uses FAAD2
There is also other software that uses FAAC libraries.
Sources and credits
This article is adapted from the Wikipedia article “FAAC”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.