2.3.2 Périphériques de sortie audio

2.3.2.1 Description de la méthode de synchro A/V de MPlayer

L'interface audio de MPlayer se nomme libao2. Elle possède actuellement ces drivers :

General:

  oss  pilote OSS (ioctl) (supporte le transfert AC3 matériel)
sdlpilote SDL (supporte ESD, ARTS etc)
naspilote NAS (Network Audio System)
alsa5pilote natif ALSA 0.5
alsa9pilote natif ALSA 0.9 (supporte le transfert AC3 matériel)
sunpilote SUN audio (/dev/audio) pour les utilisateurs de BSD et de Solaris8
artspilote natif ARTS (surtout pour les utilisateurs de KDE)

Il faut bien le reconnaître, les pilotes des cartes son ont des problèmes d'incompatibilité. MPlayer utilise une fonction des pilotes écrits normalement pour maintenir la synchro audio/vidéo. Malheureusement, certains auteurs de pilote n'ont que faire de cette fonction: elle n'est pas requise pour lire des MP3s, ou des effets sonores.

Les autres lecteurs multimédia comme aviplay ou xine fonctionnent probablement autrement avec ces pilotes parce qu'ils utilisent de "simples" méthodes pour leur synchro interne. Une note: le temps affiché avec leurs méthodes ne sont pas AUSSI précis que celui de MPlayer.

Utiliser MPlayer avec un pilote correctement écrit ne vous donnera pas de désynchro A/V relatives à l'audio, seulement avec les les fichiers très mal créés (voir la documentation pour les contournements!).

Si vous avez un mauvais pilote audio, essayez l'option -autosync, il devrait régler vos problèmes. Voir la page de man pour les informations détaillées.

Quelques notes:

Sur Solaris, utilisez le pilote audio SUN avec l'option -ao sun, sinon ni la vidéo ni le son ne fonctionneront.

2.3.2.2 Problèmes de cartes son, recommandations

Chipset VIA intégré (via82cxxx) 48kHz uniquement
Pilote: depuis sourceforge.net
Aureal Vortex 2
    OSS:pas de pilote
OSS/Pro:OK
ALSA:pas de pilote
Max kHz:48
Pilote:aureal.sourceforge.net
Pilote2: depuis Pontscho's page
(tille du buffer augmentée à 32k)
GUS PnP
OSS:pas de pilote
OSS/Pro:OK
ALSA:OK
Max kHz:48
SB Live!
OSS:Analogique OK, SP/DIF non fonctionnelle
ALSA:Les deux OK
Max kHz:192
SB AWE 64
OSS:max 44kHz
ALSA:48kHz son mauvais
Max kHz:48
Gravis UltraSound ACE
OSS:pas OK
ALSA:OK
Max kHz:44
Gravis UltraSound MAX
OSS:OK
ALSA:OK (?)
Max kHz:48
ESS 688
OSS:OK
ALSA:OK (?)
Max kHz:48
Cartes C-Media (lesquelles?)
OSS:pas OK (hissing) (?)
ALSA:OK (?)
Max kHz:?
Cartes Yamaha (*ymf*)
OSS:pas OK (?) (peut-être -ao sdl)
ALSA:OK uniquement avec ALSA 0.5 avec émulation OSS ET -ao sdl (!) (?)
Max kHz:?
Cartes avec chips envy24 (comme la Terratec EWS88MT)
OSS:?
OSS/Pro:OK
ALSA:?
Max kHz:?
PC Speaker ou DAC
OSS:OK (Utilisez le pilote SDL: -ao sdl)
ALSA:pas de pilote
Max kHz:Ce pilote émule 44.1, peut-être plus.
Pilote:ftp://ftp.infradead.org/pub/pcsp

Sous Linux, utilisez le noyau 2.4 si possible, le 2.2 n'a pas été testé.

Si le son émet des cliquements en lisant depuis le CD-ROM, activez l'IRQ unmasking ! par exemple hdparm -u1 /dev/cdrom (man hdparm). C'est généralement bénéfique et décrit plus en détail dans la section CD-ROM.

Partager votre carte son avec une autre application comme XMMS est fortement découragé! Si l'autre application sonore utilise ESD, lancez MPlayer avec l'option -vo sdl:esd pour combiner les deux flux sonores. En fait, l'option -vo sdl:esd aurait pu être utilisé avec ESD même en utilisant MPlayer seul.

Les retour sur ce document sont les bienvenus. Merci de nous faire savoir comment MPlayer gère votre carte son.

2.3.2.3 Plugins Audio

Mplayer supporte les plugins audio. Les plugins audio peuvent être utilisés pour changer les propriétés des données audio avant que le son n'atteigne la carte son. Ils sont activés en utilisant l'option -aop qui accepte l'argument list=plugin1,plugin2,.... L'argument list est requis et détermine quels plugins devraient être utilisés et dans quel ordre ils devraient être exécutés. Exemple:

  mplayer media.avi -aop list=resample,format

passerait le son au travers du plugin resampling suivi du plugin format.

Ces plugins on également des options qui changent leur comportement. Ces options sont expliqués en détail dans les sections ci-dessous. Un plugin s'exécutera avec des paramètres par défaut si ses options sont omises. Voici un exemple de comment utiliser les plugins en combinaison avec des options spécifiques au plugin:

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

fixerait la fréquence de sortie du plugin resample à 44100Hz et le format de sortie du plugin format à AFMT_U8.

Actuellement les plugins audio ne peuvent pas être utilisés dans MEncoder.

2.3.2.3.1 Up/Downsampling

Mplayer supporte pleinement l'up/downsampling du son. Ce plugin peut être utilisé si vous avez une carte son à fréquence fixe ou que vous vous battez avec une vieille carte son qui n'est capable que de sampler à 44.1kHz maxi. Que l'utilisation de ce plugin soit nécessaire ou pas, il est autodétecté. Ce plugin à une option: fout qui peut être utilisé pour fixer la fréquence de sortie désirée. Elle est par défaut de 48kHz, et est donnée en <Hz>.

Utilisation:
  mplayer media.avi -aop list=resample:fout=<fréquence requise en Hz, comme 44100>

Notez que la fréquence de sortie ne devrait pas être augmentée au dessus de sa valeur par défaut. Le dépassement provoquera la lecture des flux audio et vidéo en slow motion assortie d'une distortion audio.

2.3.2.3.2 Décodage son surround

MPlayer a un plugin audio qui peut décoder le son surround encodé en matrice. Dolby Surround est un exemple de format encodé en matrice. Beaucoup de fichiers avec deux canaux audio contiennent actuellement du son surround matricié. Pour utiliser cette fonction vous avez besoin d'une carte son supportant au moins 4 canaux.

Utilisation:
  mplayer media.avi -aop list=surround

2.3.2.3.3 Convertisseur de format de sample

Si votre carte son ne supporte pas le format de données int 16bit signé, ce plugin peut être utilisé pour le changer dans un format que votre carte son comprends. Il a une option, format, qui peut être initialisée avec les nombres trouvés dans libao2/afmt.h. Ce plugin est très rarement utilisé et est réservée aux utilisateurs avancés. Gardez à l'esprit que ce plugin ne change que le format de sample et pas sa fréquence ou le nombre de canaux.

Utilisation:
  mplayer media.avi -aop list=format:format=<format de sortie requis>

2.3.2.3.4 Décalage

Ce plugin décale le son est n'est là que comme exemple pour démontrer comment développer de nouveaux plugins. Il ne peut être utilisé pour rien d'utile d'un point de vue utilisateur et n'est mentionné ici que pour l'amour de l'exhaustivité. N'utilisez pas ce plugin à moins que vous soyez un développeur.

2.3.2.3.5 Contrôle de volume logiciel

Ce plugin est un remplacement logiciel pour le contrôleur de volume, et peut être utilisé sur des machines avec un périphérique mixeur endommagé. Il peut également être utilisé si on veut changer le volume de sortie de MPlayer sans changer le volume PCM du mixeur. Il a une option volume qui est utilisée en fixant une valeur entre 0 et 255, 101 étant la valeur par défaut qui équivaut à une amplification de 0dB. Utilisez ce plugin avec précaution car il peut réduire le signal jusqu'au bruit. Dans la plupart des cas il vaut mieux régler le volume PCM au maximum, laisser ce plugin, et contrôler le niveau de sortie sur vos haut-parleurs avec le bouton principal du mixeur. Si il y a un ampli externe connecté à votre ordinateur (c'est la plupart du temps le cas), le niveau de bruit peut être minimisé en ajustant le niveau principal et la molette du volume de l'ampli jusqu'a ce que le bruit résiduel soit parti.

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

Ce plugin a également des capacités de compression ou "soft-clipping". La compression peut être utilisé si si la dynamique du son est très élevée ou si la dynamique de vos haut-parleurs est très basse. Soyez contient que cette fonction crée des distortions et ne devrait être envisagée qu'en dernier ressort.

Utilisation:
  mplayer media.avi -aop list=volume:softclip

2.3.2.3.6 Extrastereo

Ce plugin augmente (linéairement) la différence entre les canaux gauche et droit (comme le plugin extrastereo de XMMS) qui donne une sorte d'effet "live" à la lecture.

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

Le coefficient par défaut (mul) est un nombre à virgule initialisé à 2.5. Si vous l'initialisez à 0.0, vous aurez un son mono (moyenne des deux canaux). Si vous l'initialisez à 1.0, le son sera inchangé, si vous l'initialisez à -1.0, les canaux gauche et droit seront inversés.

2.3.2.3.7 Volume normalizer

Ce plugin maximise le volume sans distordre le son.

Utilisation:
  mplayer media.avi -aop list=volnorm