2.3.2. Audio output devices

MPlayer's audio interface is called libao2. It currently contains these drivers :

General:

  oss  OSS (ioctl) driver
sdlSDL driver (supports up/downsampling, ESD, ARTS etc)
nasNAS (Network Audio System) driver
alsa5native ALSA 0.5 driver
alsa9native ALSA 0.9 driver (works, but has problems -> use OSS)
sunSUN audio driver (/dev/audio) for BSD and Solaris8 users

The fact is, Linux soundcard drivers are usually shit, and always as incompatible as they can be. It MAY take a while to find your optimal settings.

On Solaris/FreeBSD systems, use the SUN audio driver with the -ao sun option, otherwise you'll have no video, nor audio playing.

2.3.2.1. Soundcard experiences, recommendations

VIA onboard chipset (via82cxxx) 48Khz only
Driver: from here
Aureal Vortex 2
    OSS:no driver
OSS/Pro:OK
ALSA:no driver
Max kHz:48
Driver:aureal.sourceforge.net
Driver2: from here
(buffer size increased to 32k)
GUS PnP
OSS:no driver
OSS/Pro:OK
ALSA:OK
Max kHz:48
SB Live!
OSS:OK
ALSA:(?)
Max kHz:48
SB AWE 64
OSS:max 44kHz
ALSA:48kHz sounds shit
Max kHz:48
Gravis UltraSound ACE
OSS:max 44Khz. not OK
ALSA:OK
Max kHz:48
Gravis UltraSound MAX
OSS:OK
ALSA:OK (?)
Max kHz:48
ESS 688
OSS:OK
ALSA:OK (?)
Max kHz:48
C-Media cards (which ones?)
OSS:not OK (hissing) (?)
ALSA:OK (?)
Max kHz:?
Yamaha cards (*ymf*)
OSS:not OK (?) (maybe -ao sdl)
ALSA:OK only with ALSA 0.5 with OSS emulation AND -ao sdl (!) (?)
Max kHz:?
Cards with envy24 chips (like Terratec EWS88MT)
OSS:?
OSS/Pro:OK
ALSA:?
Max kHz:?
PC Speaker or DAC
OSS:OK (use the SDL driver : -ao sdl)
ALSA:no driver
Max kHz:the driver emulates 44.1 maybe more
Driver:ftp://ftp.infradead.org/pub/pcsp

2.3.2.2. Audio plugins

2.3.2.2.1. Up/Downsampling

MPlayer fully supports up/downsampling of audio stream. It is not autodetected, so you have to specify it explicitly even when for example you have a max 44.1Khz capable soundcard, and the audio is 48Khz. Also, this functionality is currently unimplemented in MEncoder.

Usage :
  mplayer media.avi -aop list=resample:fout=<required frequency in Hz, like 44100>