This is not meant to be a comprehensive list of obvious dependencies such as glibc, a C compiler, etc...
The only requirement is you must compile with at least one audio output, and one decoder (and/or possibly encoder if icecast2 is your only output) dependency
Hard Dependencies Edit
Glib was added to remove old MPD code which had been mostly unmaintained and probably improperly factored in the first place. This dependency addition creates a more stable MPD while decreasing MPD maintenance.
Audio Output Edit
ALSA is the recommended audio output plugin for Linux users.
Note: It's highly recommended that you have at least version 1.0.16 (or higher) installed on your system. With lower versions playing audio stream (aka web radio) may lead to a deadlock (mpd no longer responding/playing) in mpd (see bug #2243). If you have version 1.0.15 or less the problem may be solved by disabling dmix.
MPD's own independent http streaming server. Can be used instead of icecast server.
- LAME - Required to serve mp3 streams. Optionally TwoLAME can be used to provide same functionality
- Ogg Vorbis - Required to serve ogg streams.
- TwoLAME - Required to serve mp3 streams. Optionally LAME can be used to provide same functionallity
- FLAC - Required to serve FLAC streams.
icecast2 - Used to stream output of MPD
- libshout - Required with icecast2 to output to a stream
JACK Audio Connection Kit - Output to a JACK server.
libao - libao is not recommended after 0.11.x for the ALSA or OSS plugin, unless you can't use the ALSA or OSS plugin. libao is a cross-platform audio library that allows output to the following:
- Null output (handy for testing without a sound device)
- WAV files
- AU files
- OSS (Open Sound System, used on many *nix distributions)
- ALSA (Advanced Linux Sound Architecture)
- PulseAudio (next generation GNOME sound server)
- ESD (ESounD or Enlighten Sound Daemon)
- NAS (Network Audio Server)
OSS - This driver is a duplicate of the libao driver, used mainly in situations where libao is not available such as embedded devices or cygwin.
OS X Edit
OS X - This driver allows playing in the OS X environment.
PulseAudio is a sound server for both POSIX and Windows systems. Formerly known as polypaudio, this streaming audio server is similar to ARTS or esound but hopefully without their awful warts. This is a native plugin, although there is also a plugin for libao.
Audio Decoding / Encoding Edit
libmad - Required to play mp3 files (or mpg123)
mpg123 - Required to play mp3 files (or libmad)
For faad prior to version 2.7: To enable the building of libmp4ff during the installation from source of faad2 you will have to do the steps described here.
Commonly used in conjunction with libvorbis, described below
libogg - Required to play ogg files
faad2 - Required to play aac
flac - Required to play flac files and display metaflac tags
Audio File Library Edit
libaudiofile - Required to play wav files
libmikmod - Required to play the following mod files:
- 669 (Composer 669, Unis 669)
- AMF (DSMI Advanced Module Format)
- AMF (ASYLUM Music Format V1.0)
- APUN (APlayer)
- DSM (DSIK internal format)
- FAR (Farandole Composer)
- GDM (General DigiMusic)
- IT (Impulse Tracker)
- IMF (Imago Orpheus)
- MOD (15 and 31 instruments)
- MED (OctaMED)
- MTM (MultiTracker Module editor)
- OKT (Amiga Oktalyzer)
- S3M (Scream Tracker 3)
- STM (Scream Tracker)
- STX (Scream Tracker Music Interface Kit)
- ULT (UltraTracker)
- UNI (MikMod)
- XM (FastTracker 2)
libid3tag - Required to display id3v1 or id3v2 tags
- zlib - A requirement of libid3tag.
Commonly used in conjunction with libogg, described above
libvorbis - Required to display vorbis tags (FLAC, ogg)