The FLAC project consists of:
- the stream format
- libFLAC, a library of reference encoders and decoders, and a metadata interface
- libFLAC++, an object wrapper around libFLAC
- flac, a command-line wrapper around libFLAC to encode and decode .flac files
- metaflac, a command-line metadata editor for .flac files
- input plugins for various music players (Winamp, XMMS, Foobar2000, and more in the works)
"Free" means that the specification of the stream format is in the public domain (the FLAC project reserves the right to set the FLAC specification and certify compliance), and that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any patent. It also means that the sources for libFLAC and libFLAC++ are available under Xiph.org's BSD license and the sources for flac, metaflac, and the plugins are available under the GPL.
FLAC is distinguished from general lossless algorithms such as ZIP and gzip in that it is specifically designed for the efficient packing of audio data; while ZIP may compress a CD-quality audio file 20–40%, FLAC achieves compression rates of 30–70%.
While lossy codecs can achieve ratios of 80–90+%, they do this at the expense of discarding data from the original stream. Though FLAC uses a similar technique in its encoding process, it also adds "residual" data to allow the decoder to restore the original waveform flawlessly.
FLAC has become the preferred lossless format for trading live music online. It has a smaller file size than Shorten, and unlike MP3, it's lossless, which ensures the highest fidelity to the source material, which is important to live music traders. It has recently become a favorite trading format of non-live lossless audio traders as well.
FLAC compiles on many platforms: most Unices (including Linux, *BSD, Solaris, and Mac OS X), Windows, BeOS, and OS/2. There are build systems for autoconf/automake, MSVC, Watcom C, and Project Builder.