Sound - MPlayer - The Movie Player for Linux

### 2.3.2 Audio-Ausgabe-Geräte

#### 2.3.2.1 Audio-/VideoSynchronisation

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

oss
  OSS (ioctl)-Treiber (unterstützt das Durchreichen von AC3)
sdl
  SDL-Treiber (untertstützt Sound-Dämonen wie ESD und ARTS)
nas
  NAS (Network Audio System)-Treiber
alsa5
  ALSA 0.5-Treiber
alsa9
  ALSA 0.9-Treiber (unterstützt das Durchreichen von AC3)
sun
  SUN Audiotreiber (`/dev/audio`) für BSD und Solaris8
arts
  ARTS-Treiber (hauptsächlich für KDE-Benutzer)
esd
  ESD-Treiber (hauptsächlich für GNOME-Benutzer)

Linux-Soundkartentreiber haben Probleme mit der Kompatibilität. MPlayer benutzt einen in vernünftig implementierten Treibern eingebauten Mechanismus, um die Audio-/Video-Synchronisation korrekt beizubehalten. Leider sind einige Treiberautoren nicht sonderlich gründlich bei der Implementation dieses Mechanismusses, da er nicht benötigt wird, um MP3s abzuspielen oder Soundeffekte zu erzeugen.

Andere Medienplayer wie z.B. aviplay oder xine funktionieren bei dir wahrscheinlich so, wie sie sind, weil sie eine "simplere" Methode wie internes Timing für die Audio-/Video-Synchronisation verwenden. Verschiedene Tests haben gezeigt, dass ihre Methoden nicht ganz so effizient wie MPlayers Methoden sind.

Wenn du MPlayer zusammen mit einem korrekt geschriebenen Soundkartentreiber verwendest, dann wirst du niemals A/V-Desyncs aufgrund des Audiotreibers erleben (höchstens mit sehr schlecht erstellten Dateien. Schau in einem solchen Fall in die Dokumentation, wie du das beheben kannst).

Wenn du einen solchen nicht gut implementierten Audiotreiber verwendest, dann probier die Option `-autosync` aus, die deine Probleme lösen sollte. Schau in der man-Page nach; dort findest du mehr Informationen dazu.

Einige Anmerkungen:

- Wenn du einen OSS-Treiber hast, versuche als erstes `-ao oss` (dies ist die Standardeinstellung). Wenn du kleine Fehler, Verzögerungen oder irgendetwas anderes ungewöhliches hörst, versuche mal `-ao sdl` (HINWEIS: die SDL-Bibliotheken und das dazugehörige Devel-Paket müssen installiert sein). Der SDL- Audiotreiber hilft in vielen Fällen und unterstützt auch ESD (GNOME) und ARTS (KDE).
- Wenn du ALSA Version 0.5 verwendest, musst du fast immer `-ao alsa5` verwenden, 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!`
- Unter Solaris solltest du den SUN-Audiotreiber mittels `-ao sun` benutzen, da ansonsten weder Video noch Audio funktionierne.
- Wenn beim Ton Klickgeräusche beim Abspielen vom CD-ROM-Laufwerk zu hörne sind, dann schalte "IRQ unmasking" an, z.B. mit `hdparm -u1 /dev/cdrom` (`man hdparm`). Das ist auch generell von Vorteil, wie du in der CD-ROM-Sektion nachleesn kannst.

#### 2.3.2.2 Soundkarten-Erfahrungen, -Empfehlungen

Unter Linux wird ein 2.4.x Kernel sehr empfohlen. Kernel 2.2 wird nicht getestet.

Linux-Soundtreiber werden hauptsächlich von der freien Version von OSS bereitgestellt. Diese Treiber werden inzwischen von denen des ALSA-Projektes abgelöst (Advanced Linux Sound Architecture), die bereits im Entwicklerbaum des Kernels (2.5) zu finden sind. Wenn deine Distribution nicht bereits ALSA verwendet und du Probleme mit dem Sound hast, dann solltest du die ALSA-Treiber mal ausprobieren. Die ALSA-Treiber sind den OSS-Treibern meistens in Sachen Kompatibilität, Performance und Featuren überlegen. Ledier werden einige Soundkarten dagegen nur von OSS-Treibern von 4Front Technologies unterstützt. Sie unterstützen ebenfalls einige Nicht-Linux-Systeme.

SOUNDKARTE | TREIBER | Max kHz | Max Anz. Kanäle | Max Anz. gleichzeitiger Zugriffe[1]
--- | --- | --- | --- | ---
OSS/Free | ALSA | OSS/Pro | andere
VIA onboard (686/A/B, 8233, 8235) | via82cxxx_audio | snd-via82xx |  |  | 4-48 kHz oderr nur 48 kHz, abhängig vom Chipsatz |  |
Aureal Vortex 2 | keine | keine | OK | Linux Aureal-Treiber buffer size increased to 32k | 48 | 4.1 | 5+
SB Live! | Analog OK, SP/DIF funktioniert nicht | beide OK | beide OK | Creatives OSS-Treiber (mit SP/DIF-Unterstützung) | 192 | 4.0/5.1 | 32
SB 128 PCI (es1371) | OK | ? |  |  | 48 | stereo | 2
SB AWE 64 | max 44kHz | 48kHz klingt schlecht |  |  | 48 |  |
GUS PnP | keine | OK | OK |  | 48 |  |
Gravis UltraSound ACE | nicht OK | OK |  |  | 44 |  |
Gravis UltraSound MAX | OK | OK (?) |  |  | 48 |  |
ESS 688 | OK | OK (?) |  |  | 48 |  |
C-Media-Karten (welche genau?) | nicht OK (zischt) (?) | OK |  |  | ? |  |
Yamaha-Karten (*ymf*) | nicht OK (?) (vielleicht mit `-ao sdl`) | nur mit der OSS-Emulation von ALSA 0.5 OK UND `-ao sdl` (!) (?) |  |  | ? |  |
Karten mit envy24-Chips (wie z.B. Terratec EWS88MT) | ? | ? | OK |  | ? |  |
PC-Lautsprecher oder DAC | OK | none |  | OSS-Treiber für den PC-Lautsprecher | Der Treiber emuliert 44.1, vielleicht auch mehr. | mono | 1

[1]: Die Anzahl der Anwendungen, die zur gleichen Zeit auf das Gerät zugreifen können.

Rückmeldungen zu diesem Dokument sind willkommen. Bitte sag uns, wie MPlayer und deine Soundkarte(n) zusammen funktionieren.

#### 2.3.2.3 Audiofilter

Die alten Audioplugins wurden von einer neuen Filterschicht abgelöst. Audiofilter werden benutzt, um die Parameter der Daten zu ändern, bevor sie die Soundkarte erreichen. Die Aktivierung der Filter geschieht normalerweise automatisch, kann aber auch erzwungen oder verhindert werden. Die Filter werden aktiviert, wenn die Parameter der Daten von denen der Soundkarte abweichen und deaktiviert, wenn sie gleich sind. Die Option `-af filter1,filter2,...` wird benutzt, um Filter einzufügen, die nicht automatisch eingefügt werden. Diese Filter werden in der Reihenfolge abgearbeitet, wie sie angegeben wurden.

Beispiele:
`mplayer -af resample,pan movie.avi`

Schickt die Audiodaten durch das Resample-Filter und danach durch den Pan-Filter. Die Liste darf keine Leerzeichen enthalten, sonst klappt's nicht.

Viele Filter kennen Parameter, mit denen ihr Verhalten geändert werden kann. Diese Parameter werden unten detailliert beschrieben. Wenn keine Parameter angegeben werden, dann verwendet der Filter seine Standardwerte. Hier ist ein Beispiel, wie Filter mit Parametern verwendet werden können:

`mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1 -srate 11025 media.avi`

Das setzt die Ausgabefrequenz des Resampleplugins auf 11025Hz und downmixt das Audio auf einen Kanal mit dem Pan-Filter.

Die allgemeine Kontrolle der Filterschicht geschieht über `-af-adv`. Diese Option kennt zwei Parameter:

`force`
  ist ein Bitfeld, das angibt, wie die Filter einzufügen sind und welche Geschwindigkeits-/Genauigkeitsoptimierungen sie verwenden:
  `0`
    Benutzt automatisches Einfügen und optimiert in Abhängigkeit der CPU-Geschwindigkeit.
  `1`
    Benutzt automatisches Einfügen und optimiert für die höchstmögliche Geschwindigkeit.
    Warnung: Einige Features der Audiofilter werden kommentarlos deaktiviert, und die Soundqualität könnte niedriger sein als erwartet.
  `2`
    Benutzt automatisches Einfügen der Filter und optimiert für Qualität.
  `3`
    Füt nicht automatisch Filter ein.
    Warnung: Hiermit kann MPlayer eventuell zum Absturz gebracht werden.
  `4`
    Fügt automatisch Filter so wie bei 0 hinzu, benutzt aber Fließkommaarithmetik, wo dies möglich ist.
  `5`
    Fügt automatisch Filter so wie bei 1 hinzu, benutzt aber Fließkommaarithmetik, wo dies möglich ist.
  `6`
    Fügt automatisch Filter so wie bei 2 hinzu, benutzt aber Fließkommaarithmetik, wo dies möglich ist.
  `7`
    Fügt keine Filter automatisch hinzu, benutzt aber Fließkommaarithmetik, wo dies möglich ist.
`list`
  Dies ist ein Synonym für `-af`.

Die Filterschicht wird auch von den folgenden allgemeinen Optionen beeinflusst:

`-v`
  Gibt ausführlichere Meldungen aus. Die meisten Filter geben hiermit auch mehr Statusinformationen aus.
`-channels`
  Diese Option setzt die Anzahl der Ausgabekanäle, die du von deiner Soundkarte ausgegeben haben möchtest. Sie beeinflusst auch die Anzahl der Kanäle, die vom Quellstream decodiert werden. Wenn der Stream weniger als die hiermit geforderte Anzahl Kanäle enthält, so werden automatisch Filter eingefügt (siehe unten). Das Routing ist das Standardrouting des channels-Filters.
`-srate`
  Diese Option gibt die Samplerate an, die die Soundkarte benutzen soll, sofern sie diese Rate unterstützt. Wenn die Samplefrequenz deiner Soundkarte anders ist als die des aktuellen Quellstreams, so wird der resample-Filter (siehe unten) automatisch eingefügt, um diese Differenz auszugleichen.
`-format`
  Diese Option setzt das Sampleformt zwischen Audiofilterschicht und der Soundkarte. Wenn das angeforderte Format der Soundkarte nicht das gleiche wie das des Quellstreams ist, dann wird der format-Filter (siehe unten) automatisch eingefügt, um das Format zu konvertieren.

#### 2.3.2.3.1 Up/Down-sampling

MPlayer unterstützt vollständig Up-/Downsampling mit dem resample-Filter. Dieser Filter kann benutzt werden, wenn du eine Soundkarte hast, die nur eine feste Frequenz unterstützt, oder die nur maximal 44.1kHz unterstützt. Dieser Filter wird automatisch aktiviert, wenn er benötigt wird. Er kann aber auch explizit auf der Kommandozeile aktiviert werden. Er kennt drei Optionen:

`srate <8000-192000>`
  wird benutzt, um die Ausgabesmaplefrequenz in Hz anzugeben. Der gültige Bereich liegt zwischen 8kHz und 192kHz. Wenn Eingangs- und Ausgabefrequenz gleich sind, oder wenn dieser Parameter nicht angegeben wurde, so wird der Filter wieder entladen. Hohe Samplefrequenzen verbessern normalerweise die Audioqualität, vor allem, wenn auch andere Filter benutzt werden.
`sloppy`
  Mit dieser Option wird zugelassen, dass die Ausgabefrequenz leicht von der geforderten Frequenz (`srate`) abweicht. Diese Option kann benutzt werden, wenn das Playback nur sehr langsam startet. Diese Option ist standardmäßig aktiviert.
`type <0-2>`
  ist ein optional anzugebender Integer zwischen `0` und `2`, der den zu benutzenden Resamplealgorithmus auswählt. Hier wählt `0` lineare Interpolation und `1` mehrphasige Filterbänke mit Ganzahlarithmetik. `2` wählt mehrphasige Filterbänke mit Fließkommaarithmetik. Lineare Interpolation ist sehr schnell, liefert dafür aber auch schlechte Qualität, vor allem, wenn sie benutzt wird, um die Samplerate zu erhöhen. Die beste Qualität liefert `2`. Dafür benötigt sie aber auch die meiste CPU-Zeit.

Beispiele:
`mplayer -af resample=44100:0:0`

Dies setzt die Ausgabefrequenz des Resample-Filters auf exakt 44100Hz mit linearer Interpolation.

#### 2.3.2.3.2 Ändern der Anzahl der Kanäle

Der `channels`-Filter kann benutzt werden, um Kanäle hinzuzufügen oder zu entfernen. Er kann auch benutzt werden, um Kanäle umzuleiten oder sie zu kopieren. Er wird automatisch aktiviert, falls die Anzahl der Kanäle bei Eingang und Ausgang der Audiofilterschicht unterschiedlich ist, oder wenn ein anderer Filter diesen Filter benötigt. Wenn er nicht gebraucht wird, so entlädt sich dieser Filter automatisch. Die Anzahl der Parameter ist dynamisch:

`nch <1-6>`
  ist eine ganze Zahl zwischen `1` und `6`, die die Anzahl der Ausgabekanäle festlegt. Dieser Parameter wird benötigt. Wenn er weggelassen wird, dann erhält man einen Laufzeitfehler.
`nr <1-6>`
  ist eine ganze Zahl zwischen `1` und `6`, die die Anzahl der Umleitungen festlegt. Dieser Parameter ist optional. Wenn er weggelassen wird, dann werden keine Umleitungen vorgenommen.
`von1:nach1:von2:nach2:von3:nach3...`
  sind paare von Nummern zwischen `0` und `5`, die festlegen, wohin jeder Kanal umgeleitet werden soll.

Wenn nur `nch` angegeben wird, dann werden die Standardumleitungen benutzt, die so aussehen: Wenn mehr Ausgabekanäle gefordert sind als Eingangskanäle existieren, so werden leere Kanäle erzeugt (bis auf's Mixen von Mono auf Stereo: hier wird der Monokanal auf beide Kanäle kopiert). Ist die Anzahl dagegen kleiner, so werden die überschüssigen Kanäle entfernt.

Beispiel 1:
`mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi`

Ändert die Anzahl der Kanäle auf 4 und legt vier Routen fest, die die Kanäle 0 und 1 vertauschen und die Kanäle 2 und 3 intakt lassen. Wenn die Quelldatei nur zwei Kanäle hat, so sind die Kanäle 2 und 3 leise, aber 0 und 1 werden trotzdem vertauscht.

Beispiel 2:
`mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi`

Ändert die Anzahl der Kanäle auf 6 und gibt 4 Routen an, die Kanal 0 auf Kanal 0 und 3 kopieren. Die Kanäle 4 und 5 bleiben stumm.

#### 2.3.2.3.3 Formatkonvertierung

Der `format`-Filter konvertiert zwischen verschiedenen Sampleformaten. Er wird automatisch aktiviert, wenn er von der Soundkarte oder einem anderen Filter benötigt wird.

`bps <Nummer>`
  kann `1`, `2` oder `4` sein und gibt die Anzahl der Bytes pro Sample an. Dieser Parameter wird benötigt und führt zu einem Laufzeitfehler, wenn er weggelassen wird.
`f <format>`
  ist ein Textstring, der das Sampleformat beschreibt. Der String besteht aus einem Mix der folgenden Schlüsselwörter: `alaw`, `mulaw` oder `imaadpcm`, `float` oder `int`, `unsigned` oder `signed`, `le` oder `be` (little oder big endian). Dieser Parameter wird benötigt und führt zu einem Laufzeitfehler, wenn er weggelassen wird.

Beispiel:
`mplayer -af format=4:float media.avi`

setzt das Ausgabeformat auf 4 Bytes pro Sample Fließkommadaten.

#### 2.3.2.3.4 Verzögerung

Der `delay`-Filter verzögert den Sound auf dem Weg zum Lautsprecher, damit die verschiedenen Kanäle zur gleichen Zeit bei der Sitzposition ankommen. Dieser Filter ist nur dann nützlich, wenn du mehr als zwei Lautsprecher hast. Dieser Filter erhält eine variable Anzahl Parameter:

`d1:d2:d3...`
  sind Fließkommazahlen, die die Verzögerung in ms für den jeweiligen Kanal angeben. Minimum ist 0ms, das Maximum 1000ms.

Um die benötigte Verzögerung für die verschiedenen Kanäle zu berechnen, tu folgendes:

1. Miss die Entfernung zwischen den Lautsprechern und deiner Sitzposition in Metern. Dies gibt dir die Distanzen s1 bis s5 (bei einem 5.1-System). Es lohnt sich nicht, auch für den Subwoofer zu kompensieren, weil man den Unterschied eh nicht hört.
2. Subtrahiere die Distanzen s1 bis s5 von der maximalen Distanz, z.B.
   s[i] = max(s) - s[i]; i = 1...5
3. Berechne die benötigte Verzögerung wie folgt:
   d[i] = 1000*s[i]/342; i = 1...5

Beispiel:
`mplayer -af delay=10.5:10.5:0:0:7:0 media.avi`

verzögert die Kanäle vorne links und vorne rechts um 10.5ms, die beiden hinteren Kanäle um 0ms und den zentrierten Kanal um 7ms.

#### 2.3.2.3.5 Lautstärkekontrolle mit Software

Lautstärkeregelung in Software wird mit dem `volume`-Filter realisiert. Sei bei der Benutzung dieses Filters vorsichtig, da er den Signal-zu-Rausch-Abstand verringern kann. In den meisten Fällen ist es besser, beim Mixer deiner Soundkarte den PCM-Regler auf's Maximum zu setzen und diesen Filter wegzulassen. Ändere dann die Lautstärke mit dem Hauptregler des Mixers. Wenn deine Soundkarte einen digitalen PCM-Mixer anstelle eines analogen besitzt und du Verzerrungen hörst, dann benutze statt dessen den MASTER-Mixer. Wenn der Computer an einen externen Verstärker angeschlossen ist (was meistens der Fall ist), dann kann der Rauschpegel minimiert werden, indem der Hauptregler und der Lautstärkeregler des Verstärkers angepasst werden, bis das Hintergrundzischen verschwunden ist. Der Filter selber kennt zwei Parameter:

`v <-200 - +60>`
  ist eine Fließkommazahl zwischen `-200` und `+60` und gibt die Lautstärke in dB an. Der Standardlevel ist 0dB.
`c`
  ist ein Binärwert, der soft clipping an- oder ausschaltet. Soft clipping kann den Sound glätten, wenn sehr laute Passagen auftreten. Aktivier diese Option, wenn die Dynamikbandbreite deiner Lautsprecher gering ist. Sei gewanrt, dass dieses Feature Verzerrungen hervorruft. Es sollte nur als letzte Möglichkeit benutzt werden.

Beispiel:
`mplayer -af volume=10.1:0 media.avi`

verstärkt den Sound um 10.1dB und schneidet hart ab, wenn die Lautstärke zu hoch wird.

Dieser Filter besitzt noch ein zweites Feature: Er misst die maximale Lautstärke und gibt sie aus, wenn MPlayer beendet wird. Dieser Wert kann benutzt werden, um die Verstärkung in MEncoder so zu setzen, dass die Dynamikbandbreite vollständig ausgenutzt wird.

#### 2.3.2.3.6 Equalizer

Der `equalizer`-Filter ist ein 10-Band Graphicequalizer, der durch 10 IIR-Bandpassfilter (infinite impulse response, rekursive Filter) realisiert wird. Das bedeutet, dass er unabhängig vom wiederzugebenden Audiotyp funktioniert. Die Mittenfrequenzen der zehn Bändern sind:

Band Nr. | Mittenfrequenz
0 | 31.25 Hz
1 | 62.50 Hz
2 | 125.0 Hz
3 | 250.0 Hz
4 | 500.0 Hz
5 | 1.000 kHz
6 | 2.000 kHz
7 | 4.000 kHz
8 | 8.000 kHz
9 | 16.00 kHz

Wenn die Samplefrequenz des Sounds niedriger als die Mittenfrequenz eines Bandes ist, so wird dieses Band deaktiviert. Ein bekannter Fehler dieses Filters liegt darin, dass die Charakteristiken des höchsten Bandes nicht ganz symmetrisch sind, wenn die Samplefrequenz nahe der Mittenfrequenz des Bandes liegt. Das kann umgangen werden, wenn vorher ein Upsampling mit dem resample-Filter vorgenommen wird.

Dieser Filter bekommt zehn Parameter:

`g1:g2:g3...g10`
  sind Fließkommazahlen zwischen `-12` und `+12`, die die Verstärkung in dB des jeweiligen Bandes angeben.

Beispiel:
`mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi`

verstärkt den Sound in den oberen und unteren Frequenzbereichen und löscht ihn um 1kHz beinahe komplett aus.

#### 2.3.2.3.7 Panning-Filter

Der `pan`-Filter kann benutzt werden, um Kanäle beliebig zu mischen. Er ist grundlegend nur eine Kombination des Lautstärkefilters und des channels-Filters. Es gibt zwei Haupteinsatzgebiete für diesen Filter:

1. Heruntermischen vieler Kanäle auf wenige, z.B. Stereo zu Mono.
2. Verändern der "Breite" des zentrierten Kanals bei Sourround-Sound-Systemem.

Dieser Filter ist nicht ganz leicht zu bedienen und benötigt viel Ausprobieren, bevor die gewünschten Ergebnisse erzielt werden. Die Anzahl der Parameter hängt von der Anzahl der Ausgabekanäle ab:

`nch <1-6>`
  ist eine ganze Zahl zwischen `1` und `6` und wird benutzt, um die Anzahl der Ausgabekanäle zu setzen. Dieser Parameter wird benötigt. Wenn er weggelassen wird, erhält man einen Laufzeitfehler.
`l00:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...`
  sind Fließkommazhalen zwischen `0` und `1`. `l[i][j]` gibt an, wieviel vom Einganskanal `j` in den Ausgabekanal `i` zu mischen ist.

Beispiel 1:
`mplayer -af pan=1:0.5:0.5 -channels 1 media.avi`

mischt stereo auf mono.

Beispiel 2:
`mplayer -af pan=3:1:0:1:0.5:0.5 -channels 3 media.avi`

gibt drei Kanäle aus, lässt dabei Kanäle 0 und 1 intakt und mischt die Quellkanäle 0 und 1 in den Ausgabekanal 2 (welcher z.B. an einen Sub-woofer geschickt werden kann).

#### 2.3.2.3.8 Sub-woofer

Der `sub`-Filter fügt dem Audiostream einen Sub-woofer-Kanal hinzu. Die dazu verwendeten Audiodaten sind der Durchschnitt der Kanäle 0 und 1. Der resultierende Sound wird dann mit einem Butterworth-Filter vierten Grades tiefpassgefiltert. Der Filter schneidet bei 60Hz ab. Warnung: deaktivier diesen Filter, wenn du DVDs mit Dolby Digital 5.1-Sound abspielst, weil dieser Filter ansonsten den bereits vorhandenen Sub-woofer-Kanal stört. Dieser Filter bekommt zwei Parameter:

`fc <20-300>`
  ist eine optionale Fließkommazahl, die die Frequenz in Hz angibt, bei der Tiefpass abschneidet. Gültig sind Werte ziwschen `20` und `300`. Das beste Ergebnis erhälst du, wenn du die Frequenz so niedrig wie möglich setzt. Das wird das Stereo- und Surround-Sound-Erlebnis verbessern. Der Standardwert für die Frequenzgrenze liegt bei 60Hz.
`ch <0-5>`
  ist eine optionale ganze Zahl zwischen `0` und `5`, die angibt, auf welchem Kanal der Sub-woofer-Kanal auszugeben ist. Der Standardkanal ist `5`. Die gesamte Anzahl an Kanälen wird auf `ch` erhöht, falls dies notwendig sein sollte.

Beispiel:
`mplayer -af sub=100:4 -channels 5 media.avi`

fügt einen Sub-woofer-Kanal mit Grenzfrequenz von 100Hz hinzu und gibt ihn auf Kanal 4 aus.

#### 2.3.2.3.9 Surround-sound-Decoder

Matrix encodierter Surround-Sound kann mit dem `surround`-Filter decodiert werden. Dolby Surround ist ein Beispiel für ein matrix encodiertes Format. Viele Dateien mit Zweikanalaudio enthalten tatsächlich matrix encodierten Surround-Sound. Um diesen Filter zu benutzen, brauchst du eine Soundkarte, die mindestens vier Kanäle unterstützt. Dieser Filter kennt einen Parameter:

`d <0-1000>`
  ist eine optionale Fließkommazahl zwischen `0` und `1000`, die die Verzögerung in ms für den hinteren Lautsprecher angibt. Die Verzögerung soltle wie folgt gewählt werden: Wenn d1 die Entfernung zwischen der Sitzposition und den vorderen Lautsprechern ist, und wenn d2 die Entfernung zwischen der Sitzposition und den hinteren Lautsprechern ist, dann sollte `d` auf 15ms gesetzt werden, wenn d1 <= d2 ist, und auf 15 + 5*(d1-d2), wenn d1 > d2 ist. Der Standardwert `d` ist 20ms.

Beispiel:
`mplayer -af surround=15 -channels 4 media.avi`

decodiert Surround-Sound mit einer Verzögerung von 15ms für die hinteren Lautsprecher.

#### 2.3.2.4 Audio-Plugins (veraltet)

## Anmerkung: Audioplugins sind veraltet und wurden durch Audiofilter ersetzt. Sie werden bald entfernt werden.

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

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

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

Die Plugins können auch Schalter haben, welche ihr Verhalten ändern. Diese Schalter werden im unteren Abschnitt im Detail beschrieben. Ein Plugin wird mit den Standardeinstellungen gestartet, wenn dem Plugin Optionen mitgegeben werden. Hier ist ein Beispiel, wie man Plugins in Kombination mit pluginspezifischen 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.4.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. Ob die Verwendung dieses Plugins benötigt wird oder nicht erkennt MPlayer automatisch. 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 hochskaliert werden. Die Skalierung führt dazu, dass der Audio- und Video-Stream in Zeitlupe wiedergegeben werden, und man erhält zusätzlich Audioverzerrungen.

#### 2.3.2.4.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 zwei Audiokanälen enthalten tatsächlich matrix Surround Sound. Um dieses Feature zu benutzen, brauchst du eine Soundkarte mit mindestens vier Kanälen.

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

#### 2.3.2.4.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 Sampleformat und nicht die Samplefrequenz oder die Anzahl Kanäle ändert.

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

#### 2.3.2.4.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.

Wenn du eine Datei mit einer konstanten A/V-Sync-Differenz hast, dann benutze einfach die Tasten `+` und `-`, um das Timing während des Abspielens anzupassen. Wenn das OSD aktiviert ist, dann werden die aktuellen Werte angezeigt, was die Anpassung erleichtert.

#### 2.3.2.4.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, um 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 den Signal/Rauschabstand verringern kann. In den meisten Fällen ist es das beste, den Regler für PCM 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 deine Soundkarte einen digitalen PCM-Mixer anstelle eines analogen verwendet und du Verzerrungen hörst, so verwende statt dessen den MASTER-Mixer. 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 Dynamikbereich des Sounds sehr hoch ist, oder wenn der Dynamikbereich 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.4.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 Koeffizient (`mul`) ist eine Fließkommazahl, welche standardmäßig 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, werden der linke und rechte Kanal vertauscht.

#### 2.3.2.4.7 Lautstärkenormalisierer

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

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