Output plugins
Prev | Chapter 5. Plugin reference | Next

## Output plugins

### `alsa`

The "Advanced Linux Sound Architecture" plugin uses `libasound`. It is recommended if you are using Linux.

Setting | Description
--- | ---
`device` `NAME` | Sets the device which should be used. This can be any valid ALSA device name. The default value is "default", which makes `libasound` choose a device. It is recommended to use a "hw" or "plughw" device, because otherwise, `libasound` automatically enables "dmix", which has major disadvantages (fixed sample rate, poor resampler, ...).
`use_mmap` `yes|no` | If set to `yes`, then `libasound` will try to use memory mapped I/O.
`buffer_time` `US` | Sets the device's buffer time in microseconds. Don't change unless you know what you're doing.
`period_time` `US` | Sets the device's period time in microseconds. Don't change unless you really know what you're doing.
`auto_resample` `yes|no` | If set to `no`, then `libasound` will not attempt to resample, handing the responsibility over to MPD. It is recommended to let MPD resample (with libsamplerate), because ALSA is quite poor at doing so.
`auto_channels` `yes|no` | If set to `no`, then `libasound` will not attempt to convert between different channel numbers.
`auto_format` `yes|no` | If set to `no`, then `libasound` will not attempt to convert between different sample formats (16 bit, 24 bit, floating point, ...).

### `ao`

The `ao` plugin uses the portable `libao` library.

### `fifo`

The `fifo` plugin writes raw PCM data to a FIFO (First In, First Out) file. The data can be read by another program.

### `ffado`

The `ffado` plugin connects to FireWire audio devices via `libffado`.

Warning: this plugin was not tested successfully. I just couldn't keep libffado2 from crashing. Use at your own risk.

Setting | Description
--- | ---
`device` `NAME` | Sets the device which should be used, e.g. "hw:0".

### `jack`

The `jack` plugin connects to a JACK server.

Setting | Description
--- | ---
`client_name` `NAME` | The name of the JACK client. Defaults to "Music Player Daemon".
`server_name` `NAME` | Optional name of the JACK server.
`autostart` `yes|no` | If set to `yes`, then `libjack` will automatically launch the JACK daemon. Disabled by default.
`source_ports` `A,B` | The names of the JACK source ports to be created. By default, the ports "left" and "right" are created. To use more ports, you have to tweak this option.
`destination_ports` `A,B` | The names of the JACK destination ports to connect to.
`ringbuffer_size` `NBYTES` | Sets the size of the ring buffer for each channel. Do not configure this value unless you know what you're doing.

### `mvp`

The `mvp` plugin uses the proprietary Hauppauge Media MVP interface. We do not know any user of this plugin, and we do not know if it actually works.

### `httpd`

The `httpd` plugin creates a HTTP server, similar to ShoutCast / IceCast. HTTP streaming clients like `mplayer` can connect to it.

You must configure either `quality` or `bitrate`. It is highly recommended to configure a fixed `format`, because a stream cannot switch its audio format on-the-fly when the song changes.

Setting | Description
--- | ---
`port` `P` | Binds the HTTP server to the specified port.
`bind_to_address` `ADDR` | Binds the HTTP server to the specified address (IPv4 or IPv6). Multiple addresses in parallel are not supported.
`encoder` `NAME` | Chooses an encoder plugin, e.g. `vorbis`.
`quality` `Q` | Configures the encoder quality (for VBR) in the range -1 .. 10.
`bitrate` `BR` | Sets a constant encoder bit rate, in kilobit per second.
`max_clients` `MC` | Sets a limit, number of concurrent clients. When set to 0 no limit will apply.

### `null`

The `null` plugin does nothing. It discards everything sent to it.

Setting | Description
--- | ---
`sync` `yes|no` | If set to `no`, then the timer is disabled - the device will accept PCM chunks at arbitrary rate (useful for benchmarking). The default behaviour is to play in real time.

### `oss`

The "Open Sound System" plugin is supported on most Unix platforms.

Setting | Description
--- | ---
`device` `PATH` | Sets the path of the PCM device. If not specified, then MPD will attempt to open `/dev/sound/dsp` and `/dev/dsp`.

### `openal`

The "OpenAL" plugin uses `libopenal`. It is supported on many platforms.

Setting | Description
--- | ---
`device` `NAME` | Sets the device which should be used. This can be any valid OpenAL device name. If not specified, then `libopenal` will choose a default device.

### `osx`

The "Mac OS X" plugin uses Apple's CoreAudio API.

### `pipe`

The `pipe` plugin starts a program and writes raw PCM data into its standard input.

Setting | Description
--- | ---
`command` `CMD` | This command is invoked with the shell.

### `pulse`

The `pulse` plugin connects to a PulseAudio server.

Setting | Description
--- | ---
`server` `HOSTNAME` | Sets the host name of the PulseAudio server. By default, MPD connects to the local PulseAudio server.
`sink` `NAME` | Specifies the name of the PulseAudio sink MPD should play on.

### `recorder`

The `recorder` plugin writes the audio played by MPD to a file. This may be useful for recording radio streams.

You must configure either `quality` or `bitrate`.

Setting | Description
--- | ---
`path` `P` | Write to this file.
`encoder` `NAME` | Chooses an encoder plugin, e.g. `vorbis`.
`quality` `Q` | Configures the encoder quality (for VBR) in the range -1 .. 10.
`bitrate` `BR` | Sets a constant encoder bit rate, in kilobit per second.

### `shout`

The `shout` plugin connects to a ShoutCast or IceCast server. It forwards tags to this server.

You must set a `format`.

Setting | Description
--- | ---
`host` `HOSTNAME` | Sets the host name of the Shoutcast/Icecast server.
`port` `PORTNUMBER` | Connect to this port number on the specified host.
`timeout` `SECONDS` | Set the timeout for the shout connection in seconds. Defaults to 2 seconds.
`mount` `URI` | Mounts the MPD stream in the specified URI.
`user` `USERNAME` | Sets the user name for submitting the stream to the server. Default is "source".
`password` `PWD` | Sets the password for submitting the stream to the server.
`name` `NAME` | Sets the name of the stream.
`genre` `GENRE` | Sets the genre of the stream (optional).
`description` `DESCRIPTION` | Sets a short description of the stream (optional).
`public` `yes|no` | Specifies whether the stream should be "public". Default is "no".
`encoder` `PLUGIN` | Sets the name of the encoder plugin. Default is "vorbis". "vorbis" and "lame" are valid encoder plugins (provided that you enabled them at compile time).

### `solaris`

The "Solaris" plugin runs only on SUN Solaris, and plays via `/dev/audio`.

Setting | Description
--- | ---
`device` `PATH` | Sets the path of the audio device, defaults to `/dev/audio`.

Prev | Up | Next
Decoder plugins | Home | Playlist plugins