L'interface audio de MPlayer se nomme libao2. Elle possède actuellement ces drivers :
/dev/audio
) pour les utilisateurs BSD et Solaris8Les pilotes Linux des cartes son ont des problèmes d'incompatibilité. C'est pourquoi MPlayer utilise une fonction des pilotes écrits correctement pour maintenir une synchro audio/vidéo correcte. Malheureusement, certains auteurs de pilotes n'ont que faire de cette fonction: elle n'est pas requise pour jouer des MP3s ou des effets sonores.
D'autres lecteurs multimédia comme aviplay ou xine fonctionnent probablement autrement avec ces pilotes parce qu'ils utilisent des méthodes "simples" pour leur synchro interne. Le temps affiché avec leurs méthodes n'est pas aussi précis que celui de MPlayer.
Utiliser MPlayer avec un pilote correctement écrit ne provoquera pas de désynchro A/V relatives à l'audio, à part avec les fichiers très mal créés (voir la page de man pour les solutions).
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:
-ao oss
(utilisé par défaut). Si vous obtenez des scratchs ou une sonorité anormale,
essayez l'option -ao sdl
(NOTE: vous devez bien sûr avoir installé
les librairies SDL ainsi que leurs fichiers d'entête). Le pilote audio SDL est plus
efficace dans de nombreux cas et supporte également ESD (GNOME) et ARTS (KDE).-ao alsa5
, la version 0.5 émulant mal l'OSS, qui plante MPlayer
avec un message du type:DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
-ao sun
, sinon ni la vidéo ni le son ne fonctionneront.hdparm -u1 /dev/cdrom
(man hdparm
). Ceci est généralement
bénéfique et décrit plus en détail dans la
section CD-ROM.Sous Linux, utilisez le noyau 2.4 si possible, le 2.2 n'a pas été testé.
Les pilotes son de Linux sont surtout fournis par la version libre d'OSS. Ces pilotes ont été repris par ALSA (Advanced Linux Sound Architecture) dans la série de développement 2.5. Si votre distribution n'utilise pas déjà ALSA vous pourriez souhaiter essayer leurs pilotes si vous avez des problèmes de son. Les pilotes ALSA sont généralement supérieurs à OSS en compatibilité, performances et fonctionnalités. Mais certaines cartes ne sont supportées que par les pilotes OSS commerciaux de 4Front Technologies. Ils supportent également de nombreux systèmes non-Linux.
CARTE SON | PILOTE | kHz Max | Max Canaux | Max Ouverts[1] | |||
---|---|---|---|---|---|---|---|
OSS/Libre | ALSA | OSS/Pro | Autres | ||||
VIA intégré (686/A/B, 8233, 8235) | via82cxxx_audio | snd-via82xx | 4-48 kHz ou 48 kHz uniquement, selon le chipset | ||||
Aureal Vortex 2 | aucun | aucun | OK | Pilotes Linux Aureal taille du tampon portée à 32k |
48 | 4.1 | 5+ |
SB Live! | Analogique OK, SP/DIF non fonctionnel | Tous deux OK | Tous deux OK | Pilote OSS de Creative (support SP/DIF) | 192 | 4.0/5.1 | 32 |
SB 128 PCI (es1371) | OK | ? | 48 | stéréo | 2 | ||
SB AWE 64 | max 44kHz | 48kHz mauvaise qualité | 48 | ||||
GUS PnP | aucun | OK | OK | 48 | |||
Gravis UltraSound ACE | pas OK | OK | 44 | ||||
Gravis UltraSound MAX | OK | OK (?) | 48 | ||||
ESS 688 | OK | OK (?) | 48 | ||||
Cartes C-Media (CMI8338/8738) | OK | OK, SP/DIF est supporté par ALSA 0.9.x | ? | 44 | stereo | 1 | |
Yamaha cards (*ymf*) | pas OK (?) (peut-être -ao sdl ) |
OK uniquement avec ALSA 0.5 avec émulation OSS ET
-ao sdl (!) (?) |
? | ||||
Cartes avec chips envy24 (comme la Terratec EWS88MT) | ? | ? | OK | ? | |||
PC Speaker ou DAC | OK | aucun | Pilote PC speaker OSS Linux | Ce pilote émule 44.1, peut-être plus. | mono | 1 |
[1]: nombre d'applications pouvant utiliser le périphérique en même temps.
Les retours sur ce document sont les bienvenus. Merci de nous faire savoir comment MPlayer et votre(vos) carte(s) son ont fonctionné ensemble.
Les anciens plugins audio ont été remplacés par une nouvelle couche de filtres audio.
Les filtres audio sont utilisés pour changer les propriétés des données audio avant
que le son n'atteigne la carte son. L'activation et la désactivation sont normalement
automatisés mais peuvent être outrepassés. Les filtres sont activés quand les propriétés
des données audio différent de celles requises par la carte son et désactivés si
nécessaire. L'option -af filtre1,filtre2,...
est utilisée pour outrepasser
l'activation automatique des filtres ou pour insérer des filtres qui ne le sont pas
automatiquement. Les filtres seront exécutés dans l'ordre où ils apparaissent dans la
liste séparée par des virgules.
Exemple:
mplayer -af resample,pan film.avi
ferait passer le son au travers du filtre de resampling suivi du filtre panoramique. Remarquez que la liste ne doit contenir aucun espace, sinon cela échouera.
Les filtres ont souvent des option changeant leur comportement. Ces options sont expliquées en détail dans les sections ci-dessous. Un filtre sera exécuté en utilisant ses paramètres par défaut si ses options sont omises. Voici un exemple de comment utiliser les filtres en conjonction avec des options spécifiques à un filtre:
mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1
-srate 11025 media.avi
définirait la fréquence de sortie du filtre resample à 11025Hz et downmixerait l'audio dans 1 canal en utilisant le filtre pan.
Le fonctionnement général de la couche filtre est contrôlé en utilisant l'option
-af-adv
. Cette option a deux sous-options:
force
0
1
2
3
4
5
6
7
list
La couche filtre est également affectée par les options génériques suivantes:
-v
-channels
-srate
-format
MPlayer supporte pleinement l'up/down-sampling du son par l'intermédiaire du filtre
resample
. Ce filtre peut être utilisé
si vous avez une carte son à fréquence fixe ou si vous avez une vieille carte son
qui n'est capable que de 44.1kHz. Ce filtre est automatiquement activé si cela est
nécessaire, mais il peut être explicitement activé en ligne de commande. Il a trois
options:
srate <8000-192000>
sloppy
srate
. Cette option est utilisé
au démarrage si la lecture est extrêmement lente.type <0-2>
0
et 2
qui
sélectionne quelle méthode de ré-échantillonnage utiliser. Ici 0
représente
l'interpolation linéaire comme méthode de ré-échantillonnage, 1
représente
un ré-échantillonnage en utilisant une banque de filtres poly-phase et des calculs d'entiers
et 2
représente un ré-échantillonnage en utilisant une banque de filtres poly-phase
et des calculs à virgule flottante. L'interpolation linéaire est extrêmement rapide, mais souffre d'une
pauvre qualité sonore surtout quand elle est utilisée pour l'up-sampling. La meilleur qualité est donnée par
2
mais cette méthode souffre également de la plus forte charge CPU.Exemple:
mplayer -af resample=44100:0:0
fixerait la fréquence de sortie du filtre resample à 44100Hz en utilisant une échelle de fréquence exacte et l'interpolation linéaire.
Le filtre channels
peut être utilisé pour ajouter ou retirer
des canaux, il peut aussi être utilisé pour le routage ou la copie de canaux. Il est
automatiquement activé quand la sortie du filtre audio diffère de la couche d'entrée
ou quand il est demandé par un autre filtre. Se filtre se retire si il n'est pas requis.
Le nombre d'option est dynamique:
nch <1-6>
1
et 6
qui est utilisé pour définir
le nombre de canaux de sortie. Cette option est requise, la laisser vide provoquera une erreur à l'exécution.nr
1
et 6
qui est utilisé pour définir le nombre de routes.
Ce paramètre est optionnel. Si il est omis le routage par défaut est utilisé.from1:to1:from2:to2:from3:to3...
0
et 5
qui définissent où chaque canal est
routé.Si seul nch
est indiqué le routage par défaut est utilisé, il fonctionne
comme cela: Si le nombre de canaux de sortie est plus grand que le nombre de canaux
d'entrée des canaux vides sont insérés (excepté le mixage de mono vers stéréo, dans ce
cas le canal mono est répété sur chacun des canaux de sortie). Si le nombre de canaux de
sortie est plus petit que le nombre de canaux d'entrée les canaux en trop seront
tronqués.
Exemple 1:
mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi
changerait le nombre de canaux à 4 et définirait 4 routes qui échangent le canal 0 et le canal 1 et laissent les canaux 2 et 3 intacts. Remarquez que si le média qui contient deux canaux était joué en arrière, les canaux 2 et 3 contiendraient du silence mais les 0 et 1 seraient tout de même inversés.
Exemple 2:
mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi
changerait le nombre de canaux à 6 et définirait 4 routes copiant le canal 0 dans les canaux 0 à 3. Les canaux 4 et 5 contiendront du silence.
Le filtre format
fait la conversion entre les différents formats de sample.
Il est automatiquement activé si requis par la carte son ou un autre filtre.
bps <number>
1
, 2
ou 4
et définie le nombre
d'octets par sample. Cette option est requise, la laisser vide provoquera une erreur à l'exécution.f <format>
alaw
, mulaw
ou
imaad
, float
ou int
,
unsigned
ou signed
, le
ou
be
(little ou big endian). Cette option est requise, la laisser vide
provoquera une erreur à l'exécution.Exemple:
mplayer media.avi -af format=4:float
initialiserait le format de sortie en données à virgule de 4 octets par sample.
Le filtre delay
décale le son vers les haut-parleurs de façon a faire arriver le son dans les
différents canaux au même moment dans la position d'écoute. Cela n'est utile que si
vous avez plus de 2 haut-parleurs Ce filtre a une nombre variable de paramètres:
d1:d2:d3...
Pour calculer le décalage requis pour chaque canal, faites comme ceci:
Exemple:
mplayer -af delay=10.5:10.5:0:0:7:0 media.avi
décalerait les canaux avant gauche et droite de 10.5ms, les deux canaux arrière et le caisson de 0ms et le canal central de 7ms.
Le contrôle de volume logiciel est implémenté par le filtre audio volume
.
Utilisez ce filtre avec précaution
car il peut réduire le signal au niveau de bruit du son. Dans la plupart des cas
il vaut mieux fixer le niveau du son PCM au max, laisser ce filtre de côté et contrôler
le niveau de sortie de vos haut-parleurs avec le contrôleur de volume principal du
mixeur. Au cas où votre carte son ait un mixeur numérique au lieu d'un analogique,
et que vous entendez sa distorsion, utilisez le mixeur MASTER à la place.
Si il y a un amplificateur externe connecté à l'ordinateur (ce qui est presque
toujours le cas), le niveau de bruit peut être minimisé en ajustant le niveau maître
et le bouton du volume jusqu'à ce que le bruit résiduel soit parti. Ce filtre a
deux options:
v <-200 - +60>
-200
et +60
qui représente le niveau du volume en dB. Le niveau par défaut est 0dB.c
Exemple:
mplayer -af volume=10.1:0 media.avi
amplifierait le son de 10.1dB et bloque le volume si il est trop haut.
Ce filtre a une seconde fonction: Il mesure le niveau maximum du son et l'affiche quand MPlayer se termine. Cette estimation de volume peut être utilisée pour définir le niveau de son dans MEncoder pour que l'intervalle dynamique maximum soit utilisé.
Le filtre equalizer
est un égaliseur graphique à 10 bandes, implémenté en utilisant 10 filtres
IIR de bande passante. Cela signifie qu'il fonctionne quel que soit le type d'audio
joué. Les fréquences centrales pour les 10 bandes sont:
Bande No. | Fréquence centrale |
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 |
Si la fréquence du son joué est plus basse que la fréquence centrale pour une bande de fréquence, alors cette bande sera désactivée. Un bogue connu de ce filtre est que les caractéristiques de la plus haute bande ne sont pas complètement symétriques si la fréquence du sample est proche de la fréquence centrale de la bande. Ce problème peut être contourné en up-samplant le son en utilisant le filtre resample avant qu'il n'atteigne ce filtre.
Ce filtre a 10 paramètres:
g1:g2:g3...g10
-12
et +12
représentant le gain en dB pour chaque bande de fréquence.Exemple:
mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi
amplifierait le son sur les fréquences les plus hautes et les plus basses tout en les annulant presque complètement autour de 1kHz.
Utilisez le filtre pan
pour mixer les canaux arbitrairement. Fondamentalement
c'est une combinaison des filtres volume control et channels. Il y a deux utilisations
principales pour ce filtre:
Ce filtre est difficile à utiliser, et nécessitera quelques réglage avant d'obtenir le résultat souhaité. Le nombre d'options pour ce filtre dépends du nombre de canaux de sortie:
nch <1-6>
1
et 6
et est utilisé pour définir le
nombre de canaux de sortie. Cette option est requise, la laisser vide provoquera une erreur à
l'exécution.l00:l01:l02:..l10:l11:l12:...ln0:ln1:ln2:...
0
et 1
.
l[i][j]
détermine le nombre j de canaux d'entrée à mixer dans le nombre i de
canaux de sortie.Exemple:
mplayer -af pan=1:0.5:0.5 -channels 1 media.avi
down-mixerait de stéréo vers mono.
Exemple 2:
mplayer -af pan=3:1:0:1:0.5:0.5 -channels 3 media.avi
produirait une sortie à trois canaux en laissant les canaux 0 et 1 intacts, et mixerait les canaux 0 et 1 dans le canal 2 (qui pourrait être envoyé à un sub-woofer par exemple).
Le filtre sub
ajoute un canal de sub woofer au flux audio.
Les données audio
utilisées pour créer le canal sub-woofer sont une moyenne des canaux 0 et 1.
Le fréquences basses sont ensuite filtrées par un filtre Butterworth de 4ème
ordre avec une fréquence de cut-off par défaut de 60Hz et ajoutées à
un canal séparé du flux audio. Attention: Désactivez ce filtre quand vous lisez
des DVDs en son Dolby Digital 5.1, sinon ce filtre empêchera l'envoi du son au
sub-woofer. Ce filtre a deux paramètres:
fc <20-300>
ch <0-5>
0
et 5
qui
détermine le nombre de canaux à insérer dans le sous-canal audio.
Par défaut c'est le canal numéro 5
. Notez que le nombre de canaux
sera automatiquement augmenté à ch
si nécessaire.Exemple:
mplayer -af sub=100:4 -channels 5 media.avi
ajouterait un canal sub-woofer avec une fréquence de cut-off de 100Hz au canal de sortie 4.
Le son surround encodé en matrice peut être décodé par le filtre surround
.
Dolby Surround est un exemple de format encodé en matrice. Beaucoup de fichiers
avec deux canaux audio contiennent actuellement du son surround matricé.
Pour utiliser cette fonction vous avez besoin d'une carte son supportant
au moins 4 canaux. Ce filtre a un paramètre:
d <0-1000>
0
and
1000
utilisé pour définir le décalage en ms pour les haut-parleurs
arrières. Ce décalage devrait être défini comme ceci: si d1 est la distance entre
la position d'écoute et les haut-parleurs de devant et d2 la distance entre
la position d'écoute et les haut-parleurs de derrière, alors le décalage d
peut être fixé à 15ms si d1 <= d2 et à 15 + 5*(d1-d2) si d1 > d2.
La valeur par défaut pour d
est 20ms.Exemple:
mplayer -af surround=15 -channels 4 media.avi
ajouterait un décodage de son surround avec un décalage de 15ms pour le son des haut-parleurs arrière.
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.
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. MPlayer autodétecte si il est nécessaire ou pas d'utiliser
ce plugin. Ce plugin à une option: fout
qui peut être utilisé pour fixer
la fréquence de sortie désirée. Elle est donnée en Hz, et est par défaut de 48kHz.
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 distorsion audio.
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
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>
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.
Si vous avez un fichier avec des pertes de synchro A/V ponctuelles, utilisez à la place
les touches +/-
pour ajuster la synchro à la volée. L'utilisation de l'OSD
est recommandé pour simplifier cette tâche.
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 MASTER au maximum, laisser ce plugin, et contrôler le niveau de sortie
sur vos haut-parleurs avec le bouton principal du mixeur. Au cas où votre carte son
ait un mixeur numérique au lieu d'un analogique, utilisez le contrôle mixeur MASTER
à la place. 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'à 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 distorsion et ne devrait être envisagée qu'en dernier ressort.
Utilisation:
mplayer media.avi -aop
list=volume:softclip
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.
Ce plugin maximise le volume sans distordre le son.
Utilisation:
mplayer media.avi -aop list=volnorm