### 2.3.2. Audio Ausgabe-Geräte

MPlayers Audio-Interface wird libao2 genannt. Es enthält zur Zeit diese Treiber:

Allgemein:
| oss |  | OSS (ioctl) Treiber (unterstützt Hardware AC3-Durchgabe)
| sdl |  | SDL Treiber (unterstützt Up-/Downsampling, ESD, ARTS usw.)
| nas |  | NAS (Network Audio System) Treiber
| alsa5 |  | ALSA 0.5 Treiber
| alsa9 |  | ALSA 0.9 Treiber (unterstützt Hardware AC3-Durchgabe)
| sun |  | SUN Audio-Treiber (`/dev/audio`) für BSD und Solaris8 Anwender
| arts |  | ARTS Treiber (hauptsächlich für KDE Benutzer)

Fakt ist, dass Linux-Soundkartentreiber Kompatibilitätsprobleme haben. Es kann vielleicht eine Weile dauern, bis du die optimale Einstellung hat.

- Wenn du einen OSS-Treiber hast, versuche als erstes `-ao oss` (dies ist Standard). Wenn du keine Fehler, Verzögerungen oder irgendetwas anderes ungewöhliches hörst, versuche mal `-ao sdl` (HINWEIS: die neue SDL Library und das dazugehörigen Devel-Paket müssen installiert sein). Der SDL-Audiotreiber hilft in vielen Fällen (er unterstützt auch ESD, ARTS und Up-/Downsampling. (ESD ist der Sounddaemon von GNOME, arts der von KDE).
- Wenn du ALSA Version 0.5 verwendest, musst du fast immer `-ao alsa5` nehmen, weil ALSA 0.5 einen fehlerhaften OSS Emulationscode hat. MPlayer wird mit etwa so einer Meldung abstürzen:
  `DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!`
- Wenn du ALSA Version 0.9 hast, kannst du zwischen `-ao oss` und `-ao sdl` wählen. Du kannst auch `-ao alsa9` verwenden, aber es könnten noch einige Probleme, wie Synchronisation oder ein plötzliches Verschwinden des Tons.

Verwende auf Solaris/FreeBSD Systemen den SUN Audio-Treiber mit der `-ao sun` Option, ansonsten wirst du weder Video noch Ton haben.

#### 2.3.2.1. Soundkarten Erfahrungen, Empfehlungen

VIA Onboard-Chipset (via82cxxx) nur 48Khz
| Treiber: | siehe sourceforge.net
Aureal Vortex 2
| OSS/Free: | kein Treiber
| OSS: | OK
| ALSA: | kein Treiber
| Max kHz: | 48
| Treiber: | aureal.sourceforge.net
| Treiber2: | von Pontschos Seite (Buffergröße erhöht auf 32k)
GUS PnP
| OSS: | kein Treiber
| OSS/Pro: | OK
| ALSA: | OK
| Max kHz: | 48
SB Live!
| OSS: | Analog OK, SP/DIF funktioniert nicht
| ALSA: | Beide OK
| Max kHz: | 192
SB AWE 64
| OSS: | max 44kHz
| ALSA: | 48kHz schlechte Soundqualität
| Max kHz: | 48
Gravis UltraSound ACE
| OSS: | nicht 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 Karten (welche?)
| OSS: | nicht OK (zischen) (?)
| ALSA: | OK (?)
| Max kHz: | ?
Yamaha Karten (*ymf*)
| OSS: | nicht OK (?) (vielleicht `-ao sdl`)
| ALSA: | OK, nur mit ALSA 0.5 mit OSS-Emulation UND `-ao sdl`! (?)
| Max kHz: | ?
Karten mit envy24 Chips (wie Terratec EWS88MT)
| OSS: | ?
| OSS/Pro: | OK
| ALSA: | ?
| Max kHz: | ?
PC Speaker oder DAC
| OSS: | OK (verwende den SDL-Treiber: `-ao sdl`)
| ALSA: | kein Treiber
| Max kHz: | der Treiber emuliert 44.1, möglicherweise mehr
| Treiber: | ftp://ftp.infradead.org/pub/pcsp

- Unter Linux wird ein 2.4.x Kernel sehr empfohlen, Kernel 2.2 wird nicht getestet.
- Wenn der sound während der Wiedergabe von CD-ROM "klickende" Geräusche verursacht, schalte die Interupt-Unmaskierung ein, zum Beispiel `hdparm -u1 /dev/cdrom` (`man hdparm`). Dies ist allgemein besser und wird in der CD-ROM Sektion genauer beschrieben.
- Von einer Verwendung der Soundkarte mit anderen Anwendungen wie XMMS wird stark abgeraten! Wenn die andere Anwendung ESD verwendet, starte MPlayer mit der Option `-vo sdl:esd` um beide Soundausgaben zu kombinieren. Die Option `-vo sdl:esd` könnte auch verwendet werden, wenn nur Mplayer alleine etwas wiedergibt.
- Rückmeldungen zu diesem Dokument sind willkommen. Bitte sag uns, wie MPlayer und deine Soundkarte(n) zusammen funktionieren.

#### 2.3.2.2. Audio Plugins

MPlayer hat Unterstützung für Audio Plugins. Audio Plugins können benutzt werden, um die Einstellungen der Audio-Daten zu ändern bevor der Ton die Soundkarte erreicht. Sie werden aktiviert durch den `-aop` Schalter, welcher `list=plugin1,plugin2,...` als Argument hat. Das `list` ist benötigt, um festzustellen welche Plugins in welcher Reihenfolge benutzt werden sollen. Beispiel:

`mplayer media.avi -aop list=resample,format`

würde den Ton durch das Resampling-Plugin laufen lassen, gefolgt von dem Format des Plugins.

Die Plugins können auch Schalter haben, welche ihr Verhalten ändern. Diese Schalter sind im unteren Abschnitt im Detail beschrieben. Ein Plugin wird mit den Standardeinstellungen gestartet, wenn dessen Optionen nicht mitgegeben werden. Hier ist ein Beispiel, wie man Plugins in Kombination mit Plugin spezifischen Schaltern verwendet:

`mplayer media.avi -aop list=resample,format:fout=44100:format=0x8`

würde die Ausgabefrequenz des Resample-Plugins auf 44100Hz and das Ausgabeformat des Format-Plugins auf AFMT_U8 stellen.

Momentan können Audio-Plugins nicht im MEncoder verwendet werden.

##### 2.3.2.2.1. Up/Downsampling

MPlayer unterstützt vollständiges up/downsampling von Audiostreams. Dieses Plugin kann verwendet werden, wenn man eine Soundkarte mit fester Frequenz besitzt oder wenn man eine alte Soundkarte am Hals hat, welche nur max 44.1kHz verarbeitet. Beschränkungen in der Hardware werden nicht automatisch erkannt, also muss man die Sample-Frequenz explizit angeben. Dieses Plugin hat einen Schalter: `fout`, welcher benutzt wird um die gewünschte Ausgabefrequenz zu setzen. Der Standard ist 48kHz, und wird in <Hz> angegeben.

Verwendung:
`mplayer medium.avi -aop list=resample:fout=<erforderliche Frequenz in Hz, z.B. 44100>`

Hinweis: Die Ausgabefrequenz sollte nicht vom Standard-Wert hochscaliert werden. Die Skalierung führt dazu, dass der Audio- und Video-Stream in Zeitlupe wiedergegeben werden, zusätzlich zu den Audioverzerrungen.

##### 2.3.2.2.2. Surround Sound Decodierung

MPlayer hat ein Audio-Plugin das matrix codierten Surround Sound decodieren kann. Dolby Surround ist ein Beispiel eines matrix codierten Formats. Viele Dateien mit 2 Audiokanälen enthalten tatsächlich matrix Surround Sound. Um dieses Feature zu benutzen, brauchst du eine Soundkarte mit mindestens 4 Kanälen.

Verwendung:
`mplayer medium.avi -aop list=surround`

##### 2.3.2.2.3. Sample Format Konvertierer

Wenn deine Soundkarte keinen signed 16bit `int` Datentyp unterstützt, kann dieses Plugin benutzt werden um das Format in eines zu ändern, das deine Soundkarte versteht. Es hat nur einen Schalter `format`, welcher auf eine Nummer gestellt werden kann, die man der Datei `libao2/afmt.h` findet. Dieses Plugin wird praktisch nie gebraucht und ist für erfahrene Anwender gedacht. Bedenke, dass dieses Plugin nur das Sample Format und nicht die Samplefrequenz oder die Anzahl Kanäle ändert.

Verwendung:
`mplayer medium.avi -aop list=format:format=<required output format>`

##### 2.3.2.2.4. Verzögerung

Dieses Plugin verzögert den Ton und ist als Beispiel gedacht, wie man neue Plugins schreibt. Es kann für nichts sinnvolles aus der Anwenderperspektive verwendet werden und ist hier nur aus Gründen der Vollständigkeit erwähnt. Verwende dieses Plugin nicht, wenn du kein Entwickler bist.

##### 2.3.2.2.5. Software Lautstärkeregelung

Dieses Plugin ist ein Software-Ersatz für die Lautstärkereglung und kann in Maschinen mit kaputtem Mixer-Device verwendet werden. Es kann auch verwendet werden, wenn man die Ausgabelautstärke von MPlayer zu ändern ohne die Einstellung der PCM-Lautstärke im Mixer zu ändern. Es gibt einen Schalter `volume`, welcher verwendet wird um den anfänglichen Schallpegel festzulegen. Der anfängliche Schallpegel kann auf Werte zwischen 0 und 255 festgelegt werden (normal auf 101, was 0db Verstärkung entspricht). Benutze dieses Plugin mit Vorsicht, da es das Signal auf das Geräuschverhältnis des Tons reduzieren kann. In den meisten Fällen ist es das beste, die Stufe für den PCM-Ton auf das Maximum zu stellen, dieses Plugin nicht zu verwenden und die Lautstärke zu deinen Boxen mit der Master-Lautstärkeregelung zu kontrollieren. Wenn ein externer Verstärker mit dem Computer verbunden ist (was fast immer der Fall ist), kann der Geräuschepegel durch die Anpassung des Master-Stufe und der Lautstärkeknöpfe des Verstärkers minimiert werden, bis das Hintergrundrauschen verschwindet.

Verwendung:
`mplayer media.avi -aop list=volume:volume=<0-255>`

Dieses Plugin besitzt auch einen Kompressor oder "soft-clipping" Fähigkeiten. Die Kompression kann benutzt werden, wenn der dynamische Bereich des Tons sehr hoch ist oder wenn der dynamische Bereich der Lautsprecher sehr niedrig ist. Sei dir bewusst, dass dieses Feature Verzerrungen verursacht, es sollte erst als letzte Möglichkeit in Betracht gezogen werden.

Verwendung:
`mplayer media.avi -aop list=volume:softclip`

##### 2.3.2.2.6. Extrastereo

Dieses Plugin erhäht (linear) die Differenz zwischen dem linken und rechten Kanal (wie das XMMS Extrastereo-Plugin), was zum Teil zu "live"-Effekten bei der Wiedergabe führt.

Verwendung:
`mplayer media.avi -aop list=extrastereo`
`mplayer media.avi -aop list=extrastereo:mul=3.45`

Der normale Koeffizient (`mul`) ist eine Fliesskommazahl welche standardmässig auf 2.5 gestellt ist. Wenn man den Wert auf 0.0 setzt, erhält man einen Mono-Ton (Durchschnitt beider Kanäle). Wenn man den Wert auf 1.0 setzt, bleibt der Ton gleich. wenn man den Wert auf -1.0 setzt, wird der linke und rechte Kanal vertauscht.

##### 2.3.2.2.7. Lautstärke Normalisierer

Dieses Plugin maximiert die Lautstärke ohne den Ton zu verzerren.

Verwendung:
`mplayer media.avi -aop list=volnorm`

##### 2.3.2.2.8. Surround

Jemand sollte dies mal dokumentieren, irgendwann.