2.3. Périphériques de sortie
Précédent | Chapitre 2. Fonctionnalités | Suivant

## 2.3. Périphériques de sortie

### 2.3.1. Sorties vidéo

#### 2.3.1.1. Réglage MTRR

Il est FORTEMENT recommandé de bien ajuster ses registres MTRR, qui apportent un gain important de performances.

Faites un cat /proc/mtrr:

    --($:~)-- cat /proc/mtrr
    reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9
    reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

C'est bon, il montre ma Matrox G400 avec 16Mo de mémoire. J'ai fais cela avec XFree 4.x.x , qui ajuste les registres MTRR automatiquement.

Si rien n'a fonctionné, vous devrez procéder manuellement. D'abord, vous devez trouver l'adresse de base. Vous pouvez la trouver de trois façons :

1. à partir des messages au démarrage de X11, par exemple:

       (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
       (--) SVGA: Linear framebuffer at 0xD8000000

2. à partir de `/proc/pci` (utilisez la commande lspci -v):

       01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
       Memory at d8000000 (32-bit, prefetchable)

3. à partir des messages noyau du driver mga_vid (utilisez dmesg):

       mga_mem_base = d8000000

Trouvons maintenant la taille mémoire. Simplement, convertissez la taille de la mémoire vidéo en hexadécimal, ou utilisez cette table :

1 Mo | 0x100000
2 Mo | 0x200000
4 Mo | 0x400000
8 Mo | 0x800000
16 Mo | 0x1000000
32 Mo | 0x2000000

Vous connaissez l'adresse de base ainsi que la taille, ajustons vos registres MTRR ! Par exemple, pour la carte Matrox utilisée ci-dessus (`base=0xd8000000`) avec 32Mo de ram (`size=0x2000000`) faites simplement :

    echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr

Tous les processeurs ne supportent pas les MTRR. Les anciens K6-2 par exemple (vers 266Mhz, stepping 0) ne sont pas compatibles avec les MTRR, mais les stepping 12 le sont (cat /proc/cpuinfo pour le vérifier).

#### 2.3.1.2. Sortie vidéo pour cartes graphiques traditionnelles

##### 2.3.1.2.1. Xv

Sous XFree86 4.0.2 ou plus récent, vous pouvez utiliser les routines YUV matérielles de votre carte en utilisant l'extension XVideo. C'est ce qu'utilise l'option '`-vo xv`'. De plus, ce pilote supporte le réglage de luminosité/contraste/saturation/etc. (à moins que vous n'utilisiez le vieux, lent codec Divx DirectShow, qui le supporte partout), voir la page de man.

Pour que cela fonctionne, vérifiez ceci :

1. Vous devez utiliser XFree86 4.0.2 ou plus récent (les versions précédentes n'ont pas XVideo)

2. Votre carte supporte l'accélération matérielle (les cartes modernes le font)

3. X charge l'extension XVideo, qui doit faire apparaître quelque chose comme:

       (II) Loading extension XVideo

   dans `/var/log/XFree86.0.log`

   ### Note

   NOTE: ceci charge seulement l'extension de XFree86. Dans une installation correcte, celle ci est toujours chargée, et ne signifie pas que le support XVideo spécifique à votre carte est chargé !

4. Votre carte a le support Xv sous Linux. Pour le vérifier, essayez xvinfo, inclut dans XFree86. Cela doit afficher un long message, similaire à :

       X-Video Extension version 2.2
       screen #0
         Adaptor #0: "Savage Streams Engine"
           number of ports: 1
           port base: 43
           operations supported: PutImage
           supported visuals:
             depth 16, visualID 0x22
             depth 16, visualID 0x23
           number of attributes: 5
       (...)
           Number of image formats: 7
             id: 0x32595559 (YUY2)
               guid: 59555932-0000-0010-8000-00aa00389b71
               bits per pixel: 16
               number of planes: 1
               type: YUV (packed)
             id: 0x32315659 (YV12)
               guid: 59563132-0000-0010-8000-00aa00389b71
               bits per pixel: 12
               number of planes: 3
               type: YUV (planar)
       (...etc...)

   Cela doit supporter les formats de pixels YUY2 packed et YV12 planar pour pouvoir être utilisé avec MPlayer.

5. Finalement, vérifiez si MPlayer a été compilé avec le support 'xv'. Faites un mplayer -vo help | grep xv Si le support 'xv' à été compilé une ligne similaire à celle-ci devrait apparaitre:

         xv      X11/Xv

###### 2.3.1.2.1.1. Cartes 3dfx

Les anciens drivers 3dfx avaient des problèmes avec l'accélération XVideo, et ne supportaient ni YUY2 ni YV12. Vérifiez que vous avez bien XFree86 version 4.2.0 ou plus, il fonctionne correctement avec YV12 et YUY2. Les versions précédentes, incluant 4.1.0, plantent avec YV12. Si des problèmes apparaissent en utilisant `-vo xv`, essayez SDL (qui utilise également XVideo) et voyez si cela passe mieux. Lisez la section SDL pour plus de détails.

OU, essayez le NOUVEAU pilote `-vo tdfxfb` ! Voir la section tdfxfb.

###### 2.3.1.2.1.2. Cartes S3

Les cartes S3 Savage3D doivent fonctionner correctement, mais pour les Savage4, utilisez XFree86 version 4.0.3 ou plus (en cas de problèmes d'image, essayez 16bpp). Comme pour les S3 Virge: il y a un support xv, mais la carte elle-même est très lente, donc vous feriez mieux de la vendre.

### Note

Il n'est actuellement pas facile de savoir quels modèles de Savage manquent de support YV12, et de le convertir par un pilote (lent). Si vous suspectez votre carte, prenez un pilote plus récent, ou demandez poliment un pilote qui gère MMX/3DNow sur la liste de diffusion mplayer-users.

###### 2.3.1.2.1.3. Cartes nVidia

nVidia n'est pas un très bon chois sous Linux (d'après nVidia, ce n'est pas vrai)... Les pilotes open-source de XFree86 supportent la plupart de ces cartes, mais dans certains cas, vous devrez utiliser les pilotes binaires closed-source de nVidia, disponibles sur le site web de nVidia. Vous aurez toujours besoin de ce pilote si vous voulez l'accélération 3D.

Les cartes Riva128 n'ont pas de support XVideo même avec le driver nVidia :( Plaignez-vous en à nVidia.

Cependant, MPlayer contient un pilote VIDIX pour la plupart des cartes nVidia. Actuellement il est en phase béta, et a quelques inconvénients. Pour plus d'informations, voir la section VIDIX nVidia.

###### 2.3.1.2.1.4. Cartes ATI

Le pilote GATOS (que vous devriez utiliser, à moins d'avoir une Rage128 ou une Radeon) utilise VSYNC par défaut. Cela signifie que la vitesse de décodage (!) est synchronisée à la vitesse de rafraîchissement du moniteur. Si la lecture semble lente, essayez d'enlever VSYNC, ou passez la vitesse de rafraîchissement à n*(fps du film) Hz.

Radeon VE - si vous avez besoin de X, utilisez 4.2.0 ou supérieur pour cette carte. Pas de support TV-out. Bien sûr avec MPlayer vous pouvez heureusement avoir un affichage accéleré, avec ou sans sortie TV, et aucune librairie ou X ne sont requis. Lire la section VIDIX.

###### 2.3.1.2.1.5. Cartes NeoMagic

Ces cartes sont utilisées sur de nombreux portables. Vous devez utiliser XFree86 4.3.0 ou supérieur, ou utiliser les pilotes Xv de Stefan Seyfried. Choisissez juste celui qui s'applique à votre version de XFree86.

XFree86 4.3.0 inclut le support Xv, mais Bohdan Horst a envoyé un petit patch pour les sources XFree86 qui accélère les opérations framebuffer (et donc XVideo) jusqu'à quatre fois. Ce patch a été inclus dans le CVS de XFree86 et devrait être dans la prochaine version suivant 4.3.0.

Pour permettre la lecture de contenu de taille DVD changez votre XF86Config comme ceci:

    Section "Device"
        [...]
        Driver "neomagic"
        Option "OverlayMem" "829440"
        [...]
    EndSection

###### 2.3.1.2.1.6. Cartes Trident

Si vous voulez utiliser xv avec une carte trident, puisque son support ne fonctionne pas avec 4.1.0, installez XFree 4.2.0. Celui-ci ajoute le support Xv plein-écran avec la carte Cyberblade XP.

MPlayer contient également un pilote VIDIX pour la carte Cyberblade/i1.

###### 2.3.1.2.1.7. Cartes Kyro/PowerVR

Si vous voulez utiliser Xv avec une carte Kyro (par exemple la Hercules Prophet 4000XT), vous devriez télécharger les pilotes depuis le site de PowerVR

##### 2.3.1.2.2. DGA

PRÉAMBULE. Ce document tente d'expliquer en quelques mots ce qu'est le DGA en général et ce que peut faire le driver de sortie DGA pour MPlayer (et ce qu'il ne peut pas faire).

QU'EST CE QUE LE DGA. DGA est l'abréviation de Direct Graphics Access et permet aux programmes de passer outre le serveur X et de modifier directement la mémoire dans le framebuffer. Techniquement parlant, cela fonctionne en mappant la mémoire du framebuffer dans les adresses mémoire de votre process. Cela est autorisé par le noyau uniquement si vous avez les privilèges super-utilisateur. Vous pouvez les obtenir soit en vous loggant en `root` ou en plaçant le bit suid sur l'exécutable MPlayer (non recommandé).

Il existe deux versions de DGA: DGA1 est utilisé par XFree 3.x.x et DGA2 a été introduit par XFree 4.0.1.

DGA1 propose uniquement un accès direct au framebuffer comme décrit ci-dessus. Pour changer la résolution de votre signal vidéo vous devez utiliser les extensions XVidMode.

DGA2 incorpore les fonctions de XVidMode et permet également de changer le nombre de couleurs de l'affichage. Donc vous pouvez, en exécutant depuis un serveur X 32 bits, passer en 15 bits et vice-versa.

Cependant DGA a quelques défauts. Il semble qu'il reste dépendant de la carte graphique utilisée et de la mise en place du driver de votre serveur X contrôlant cette carte. Cela peut donc ne pas fonctionner sur tous les systèmes...

INSTALLER LE SUPPORT DGA POUR MPLAYER. Assurez vous d'abord que X charge l'extension DGA, regardez dans `/var/log/XFree86.0.log`:

    (II) Loading extension XFree86-DGA

XFree86 4.0.x ou plus est hautement recommandé ! Le pilote DGA de MPlayer est automatiquement détecté par `./configure`, ou vous pouvez le forcer avec l'option `--enable-dga`.

Si le driver ne peut pas passer en résolution inférieure, essayez les options `-vm` (uniquement avec X 3.3.x), `-fs`, `-bpp`, `-zoom` pour trouver un mode vidéo qui convienne à la vidéo. Il n'existe pas de convertisseur actuellement :(

Passez en `root`. DGA nécessite un accès root pour écrire directement dans la mémoire vidéo. Si vous voulez rester en utilisateur, installez MPlayer SUID root:

    chown root /usr/local/bin/mplayer
    chmod 750 /usr/local/bin/mplayer
    chmod +s /usr/local/bin/mplayer

Maintenant cela fonctionne aussi avec les droits d'un simple utilisateur.

### Faille de sécurité

Cela présente une grosse faille de sécurité ! Ne faites jamais ceci sur un serveur ou un ordinateur accessible par d'autres personnes que vous, ils pourraient obtenir les privilèges root par l'exécutable MPlayer.

Utilisez maintenant l'option `-vo dga` et c'est parti ! (enfin on peut l'espérer:) Vous pouvez alors essayer l'option `-vo sdl:dga` ! C'est beaucoup plus rapide !

CHANGEMENT DE RÉSOLUTION. Le driver DGA vous permet de changer la résolution du signal de sortie. Cela permet d'éviter un redimensionnement logiciel, beaucoup plus lent, et offre une image plein écran. Idéalement il doit passer à la résolution exacte de la vidéo (excepté pour respecter le rapport hauteur/largeur), mais le serveur X permet uniquement le passage à des résolutions définies dans `/etc/X11/XF86Config` (`/etc/X11/XF86Config-4` pour XFree 4.X.X respectivement). Ceux-ci sont définis par des modelines dépendantes des capacités de votre matériel. Le serveur X scanne ce fichier de configuration au démarrage et élimine les modelines ne correspondant pas au matériel. Vous pouvez retrouver dans les logs de X quelles modelines sont acceptables. Elles peuvent être trouvées dans: `/var/log/XFree86.0.log`.

Ces entrées doivent fonctionner correctement avec un chip Riva128, en utilisant le module pilote nv.o du serveur X.

    Section "Modes"
      Identifier "Modes[0]"
      Modeline "800x600"  40     800 840 968 1056  600 601 605 628
      Modeline "712x600"  35.0   712 740 850 900   400 410 412 425
      Modeline "640x480"  25.175 640 664 760 800   480 491 493 525
      Modeline "400x300"  20     400 416 480 528   300 301 303 314 Doublescan
      Modeline "352x288"  25.10  352 368 416 432   288 296 290 310
      Modeline "352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
      Modeline "320x240"  12.588 320 336 384 400   240 245 246 262 Doublescan
    EndSection

DGA & MPLAYER. DGA est utilisé en deux endroits par MPlayer: Le pilote SDL peut se compiler pour en faire usage (`-vo sdl:dga`) et dans le pilote DGA (`-vo dga`). Dans les sections suivantes je vous expliquerai comment fonctionne le driver DGA pour MPlayer.

FONCTIONNALITÉS. Le pilote DGA s'invoque en spécifiant `-vo dga` en ligne de commande. L'action par défaut consiste à passer dans une résolution s'approchant au mieux de la résolution de la vidéo. Il ignore volontairement les options `-vm` et `-fs` (autorisant le changement de résolution et le plein écran) - il essaie toujours de couvrir le plus large espace possible de votre écran en changeant les modes vidéo, tout en utilisant un seul cycle CPU additionnel pour agrandir l'image. Si vous voulez utiliser un autre mode que celui qu'il a choisi, vous pouvez le forcer par les options `-x` et `-y`. Avec l'option `-v`, le pilote DGA affichera, entre autres choses, une liste de toutes les résolutions supportées par votre fichier `XF86Config`. Avec DGA2 vous pouvez également le forcer a utiliser un certain nombre de couleurs en utilisant l'option `-bpp`. Les nombres de couleurs autorisées sont 15, 16, 24 et 32. Cela dépends de votre matériel, soit ces modes sont nativement supportés, ou si une conversion logicielle doit être appliquée (ce qui peut ralentir la lecture).

Si par chance vous avez assez de mémoire vidéo libre pour y placer une image entière, le driver DGA utilisera le doublebuffering, qui améliore considérablement la qualité de lecture. Il doit vous afficher si le doublebuffering est utilisé ou non.

Doublebuffering signifie que la prochaine trame de votre vidéo est dessinée dans une partie non affichée de la mémoire graphique tandis que s'affiche la trame en cours. Quand la trame suivante est prête, la puce graphique reçoit simplement l'adresse de celle-ci et récupère les données a afficher depuis cette partie de la mémoire. Pendant ce temps l'autre buffer se remplit avec l'image suivante.

Le doublebuffering peut s'activer dans MPlayer avec l'option `-double` et se désactiver avec `-nodouble`. Actuellement l'option par défaut est de désactiver le doublebuffering. En utilisant le driver DGA, l'on-screen display (OSD) fonctionne uniquement avec le doublebuffering activé. Cependant, activer le doublebuffering peut demander des calculs supplémentaires au processeur (sur mon K6-II+ 525 il utilisait 20% de temps CPU en plus !), ceci dépendant de l'implémentation du DGA pour votre matériel.

PROBLÈMES DE VITESSE. Généralement, l'accès au framebuffer DGA peut s'avérer aussi rapide que le driver X11, apportant en plus l'avantage de bénéficier d'une image plein écran. Les pourcentages affichées par MPlayer doivent être interprétées avec précaution, comme par exemple avec le pilote X11 où ils n'incluent pas le temps utilisé par le serveur X pour l'affichage. Pour des résultats exacts, branchez un terminal sur le port série de votre machine et lancez un top pour savoir ce qui se passe réellement lors de la lecture...

D'une manière générale, l'accélération acquise en utilisant le DGA au lieu de l'affichage X11 classique dépend fortement de votre carte graphique et des optimisations effectuées sur le module DGA du serveur X.

Si votre système s'avère trop lent, utilisez plutôt une profondeur de couleurs de 15 or 16bits, qui ne demandent que la moitié de la bande passante d'un affichage 32 bits.

Utiliser une profondeur de 24 bits peut s'avérer une bonne solution si votre carte ne supporte nativement que le 32 bits, le transfert se réduisant de 25% par rapport à un mode 32/32.

J'ai vu certains fichiers avi passer sur des Pentium MMX 266. Les processeurs AMD K6-2 s'avèrent utilisables à partir de 400 MHZ et supérieur.

BOGUES CONNUS. A vrai dire, selon certains développeurs de XFree, DGA est une usine à gaz. Ils recommandent d'éviter son utilisation. Son implémentation n'est pas parfaite avec chaque chipset pour XFree.

- Avec XFree 4.0.3 et `nv.o` un bogue affiche des couleurs étranges.
- Les pilotes ATI requièrent de passer plusieurs modes après l'utilisation du DGA.
- Certains pilotes 'plantent' lors du retour à la résolution normale (utilisez Ctrl+Alt+Keypad + et Ctrl+Alt+Keypad - pour y retourner manuellement).
- Certains pilotes affichent simplement des couleurs étranges.
- Certains pilotes mentent a propos de la quantité de mémoire allouée dans l'espace d'adressage du processus, empêchant vo_dga d'utiliser le doublebuffering (SIS ?)
- Certains pilotes semblent ne pas pouvoir reporter ne serait-ce qu'un seul mode valide. Dans ce cas le driver DGA plantera en vous affichant un mode 100000x100000 ou quelque chose comme ça...
- L'OSD fonctionne uniquement avec le doublebuffering activé (sinon il clignote).

##### 2.3.1.2.3. SDL

SDL (Simple Directmedia Layer) est fondamentalement une interface vidéo/audio unifiée. Les programmes qui l'utilisent connaissent uniquement SDL, et pas quels pilotes vidéo ou audio SDL utilise lui-même. Par exemple, un portage de Doom utilisant SDL peut tourner avec svgalib, aalib, X, fbdev et autres, vous devez seulement spécifier (par exemple) le pilote vidéo à utiliser avec la variable d'environnement `SDL_VIDEODRIVER`. Enfin, en théorie.

Avec MPlayer, nous avons utilisé le redimensionnement logiciel de ses pilotes X11 pour les cartes qui ne supportent pas XVideo, jusqu'à ce que nous fassions notre propre "dimensionneur" logiciel (plus rapide, plus agréable). Nous avons également utilisé sa sortie aalib, mais maintenant nous avons la nôtre qui est plus confortable. Son support DGA était meilleur que le nôtre, jusqu'à récemment. Vous comprenez maintenant? :)

Cela aide également avec certains pilotes/cartes bogués si la vidéo est saccadé (pas de problème de lenteur du système), ou si l'audio est retardé.

La sortie vidéo de SDL supporte l'affichage des sous-titres sous le film, dans les bandes noires (si elles sont présentes).

Il existe plusieurs options en ligne de commande pour SDL:

`-vo sdl:`nom``
  spécifie le driver vidéo SDL a utiliser (par ex. `aalib`, `dga`, `x11`)
`-ao sdl:`nom``
  spécifie le driver audio SDL a utiliser (par ex. `dsp`, `esd`, `arts`)
`-noxv`
  désactive l'accélération Xvideo matérielle
`-forcexv`
  tente de forcer l'accélération Xvideo

Tableau 2.1. Touches SDL

Touche | Action
--- | ---
c | passe par tous les modes plein écran valides
n | revient en mode normal

Bogues connus:

- Les touches pressées avec le driver sdl:aalib se répètent en continu (utiliser `-vo aa`!). C'est un bogue dans la SDL, je ne peux pas le changer (testé avec SDL 1.2.1).
- NE PAS UTILISER SDL avec la GUI! Cela ne fonctionnera pas comme il devrait.

##### 2.3.1.2.4. SVGAlib

INSTALLATION. Vous devrez installer svgalib et ses paquets de développement afin que MPlayer construise son driver SVGAlib driver (autodetecté, mais peut être forcé), et n'oubliez pas d'éditer `/etc/vga/libvga.config` pour l'ajuster à votre carte et votre moniteur.

### Note

Assurez-vous de ne pas utiliser l'option `-fs`, car elle active l'utilisation du redimensionneur logiciel, et c'est lent. Si vous en avez réellement besoin, utilisez l'option `-sws 4` qui donnera une qualité mauvaise, mais qui est un peu plus rapide.

SUPPORT EGA (4BPP). SVGAlib incorpore EGAlib, et MPlayer a la possibilité d'afficher n'importe quel film en 16 couleurs, donc utilisable avec les configurations suivantes:

- carte EGA avec moniteur EGA: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp
- carte EGA avec moniteur CGA: 320x200x4bpp, 640x200x4bpp

La valeur des bpp (bits par pixel) doit être fixé à 4 manuellement: `-bpp 4`

Le film doit probablement être redimensionné pour tenir dans le mode EGA:

    -vf scale=640:350

ou

    -vf scale=320:200

Pour cela nous avons besoin de la routine de redimensionnement rapide mais de mauvaise qualité:

    -sws 4

Peut-être que la correction d'aspect automatique doit être coupée:

    -noaspect

### Note

D'après mon expérience, la meilleur qualité d'image sur les écrans EGA peut être obtenue en diminuant légèrement la luminosité: `-vf eq=-20:0`. J'ai également besoin de diminuer la fréquence d'échantillonnage sur ma machine, car le son est endommagé en 44kHz: `-srate 22050`.

Vous pouvez activer l'OSD et les sous-titres uniquement avec le filtre `expand`, voir la page de man pour les paramètres exacts.

##### 2.3.1.2.5. Sortie Framebuffer (FBdev)

La compilation de le sortie FBdev est autodétectée durant `./configure`. Lisez la documentation sur le framebuffer dans le sources du noyau (`Documentation/fb/*`) pour avoir plus d'infos.

Si votre carte ne supporte pas le standard VBE 2.0 (anciennes cartes ISA/PCI, comme les S3 Trio64), et uniquement VBE 1.2 (ou plus ancien ?) : Dans ce cas, VESAfb reste disponible, mais vous devrez charger SciTech Display Doctor (également nommé UniVBE) avant de booter Linux. Utilisez une disquette de boot DOS ou similaire. Et n'oubliez pas d'enregistrer votre copie d'UniVBE ;))

La sortie FBdev accepte certains paramètres additionnels:

`-fb`
  spécifie le device framebuffer a utiliser (`/dev/fb0`)
`-fbmode`
  mode a utiliser (d'après le fichier `/etc/fb.modes`)
`-fbmodeconfig`
  fichier de configuration des modes (`/etc/fb.modes` par défaut)
`-monitor-hfreq`, `-monitor-vfreq`, `-monitor-dotclock`
  valeurs importantes, voir `example.conf`

    mplayer -vm -fbmode nom_du_mode nomfichier

- `-vm` seul choisira le mode le mieux adapté dans votre fichier `/etc/fb.modes`. Peut s'utiliser avec les options `-x` et `-y`. L'option `-flip` est supportée uniquement si le format de pixels de la vidéo correspond au format de pixel du mode framebuffer. Faites attention à la valeur bpp, le driver fbdev essaie par défaut d'utiliser la valeur courante, ou bien celle spécifiée par l'option `-bpp`.

- l'option `-zoom` n'est pas supportée (Utilisez l'option `-fs`). Vous ne pouvez pas utiliser de modes 8bpp (ou moins).

- vous pouvez vouloir désactiver le curseur:

      echo -e '\033[?25l'

  ou

      setterm -cursor off

  et l'économiseur d'écran:

      setterm -blank 0

  Pour afficher de nouveau le curseur:

      echo -e '\033[?25h'

  ou

      setterm -cursor on

### Note

Le changement de mode vidéo avec FBdev ne fonctionne pas avec le framebuffer VESA, et ne nous le demandez pas, il ne s'agit pas d'une limitation de MPlayer.

##### 2.3.1.2.6. Framebuffer Matrox (mga_vid)

Cette section concerne le support BES (Back-End Scaler) sur les cartes Matrox G200/G400/G450/G550, le driver noyau de mga_vid. Il est activement développé par A'rpi, et supporte le VSYNC matériel avec triple buffering. Cela fonctionne aussi bien en console framebuffer que sous X.

### Avertissement

Ceci est pour Linux uniquement ! Sur les systèmes non-Linux (testé sur FreeBSD), vous pouvez utiliser VIDIX à la place !

Installation:

1. Pour l'utiliser, vous devez au préalable compiler `mga_vid.o`:

       cd drivers
       make

2. Puis créez le périphérique `/dev/mga_vid`:

       mknod /dev/mga_vid c 178 0

   et chargez le pilote avec

       insmod mga_vid.o

3. Vous pouvez vérifier si la détection de la taille mémoire est correcte en utilisant la commande dmesg. Si elle s'avère incorrecte, utilisez l'option `mga_ram_size` (rmmod mga_vid avant), en spécifiant la mémoire de la carte en Mo:

       insmod mga_vid.o mga_ram_size=16

4. Pour le charger/décharger automatiquement, insérez cette ligne a la fin du fichier `/etc/modules.conf`:

       alias char-major-178 mga_vid

   Puis copiez le module `mga_vid.o` à une place appropriée dans `/lib/modules/`version noyau`/`quelquepart``.

   Puis exécutez

       depmod -a

5. Vous devez maintenant (re)compiler MPlayer, `./configure` détectera `/dev/mga_vid` et construira le driver 'mga'. Pour l'utiliser dans MPlayer, lancez-le avec l'option `-vo mga` si vous êtes en console matroxfb, ou `-vo xmga` sous XFree86 3.x.x ou 4.x.x.

Le pilote mga_vid coopère avec Xv.

Le périphérique `/dev/mga_vid` peut être lu (par exemple par

    cat /dev/mga_vid

) pour avoir des infos, et écrit pour changer la luminosité:

    echo "brightness=120" > /dev/mga_vid

##### 2.3.1.2.7. Support YUV 3Dfx

Ce pilote utilise le pilote framebuffer tdfx du noyau pour lire des films avec accélération YUV. Vous aurez besoin d'un noyau avec support tdfxfb, et de recompiler avec

    ./configure --enable-tdfxfb

##### 2.3.1.2.8. Sortie OpenGL

MPlayer supporte l'affichage de films en utilisant OpenGL, mais si votre plateforme/pilote supporte xv comme ça devrait être le cas sur un PC avec Linux, utilisez xv à la place, les performances d'OpenGL sont bien pires. Si vous avez une implémentation X11 sans support xv, OpenGL est alors une alternative viable.

Malheureusement tous les pilotes ne supportent pas cette fonction. Le pilote Utah-GLX (pour XFree86 3.3.6) le supporte pour toutes les cartes. Voir http://utah-glx.sourceforge.net pour son téléchargement et les infos d'installation.

XFree86(DRI) 4.0.3 et supérieur supporte OpenGL avec les cartes Matrox et Radeon, 4.2.0 ou supérieur supporte la Rage128. Voir http://dri.sourceforge.net pour son téléchargement et les infos d'installation.

##### 2.3.1.2.9. AAlib - affichage en mode texte

AAlib est une librairie affichant des graphismes en mode texte, en utilisant un puissant moteur de rendu ASCII. De nombreux programmes le supportent déjà, comme Doom, Quake, etc. MPlayer possède pour cela un driver parfaitement utilisable. Si `./configure` détecte une installation de aalib, le pilote aalib libvo sera compilé.

Vous pouvez utiliser certains raccourcis clavier dans le fenêtre AA pour changer les options de rendu:

Touche | Action
--- | ---
1 | diminue le contraste
2 | augmente le contraste
3 | diminue la luminosité
4 | augmente la luminosité
5 | active/désactive le rendu rapide
6 | change le mode de dithering (none, error distribution, Floyd Steinberg)
7 | inverse l'image
8 | passe des contrôles de aa vers ceux de MPlayer et vice-versa

Vous pouvez utiliser les lignes de commande suivantes:

`-aaosdcolor=`V``

  change la couleur de l'OSD

`-aasubcolor=`V``

  change la couleur des sous-titres

  where `V` peut être: `0` (normal), `1` (noir), `2` (gras), `3` (fontes grasses), `4` (inversé), `5` (spécial).

AAlib lui même propose de nombreuses options. En voici les principales:

`-aadriver`
  choisit le pilote aa (X11, curses, Linux)
`-aaextended`
  utilise les 256 caractères
`-aaeight`
  utilise l'ASCII 8 bits
`-aahelp`
  affiche toutes les options de aalib

### Note

Le rendu prend beaucoup de temps CPU, spécialement en utilisant aalib sur X, et prend moins de CPU sur une console standard, sans framebuffer. Utilisez SVGATextMode pour passer en mode texte large, et appréciez ! (une carte hercules en second écran, c'est génial :)) (mais à mon humble avis vous pouvez utiliser l'option `-vf 1bpp` pour avoir des graphismes sur hgafb:)

Utilisez l'option `-framedrop` si votre machine n'est pas suffisamment rapide pour afficher toutes les trames !

Sur un terminal vous obtiendrez de meilleures performances en utilisant le pilote linux, et pas curses (`-aadriver linux`). Cependant vous devez avoir un accès en écriture sur `/dev/vcsa`<terminal>``. Ce n'est pas autodétecté par aalib, mais vo_aa essaie de déterminer le meilleur mode. Voir http://aa-project.sourceforge.net/tune pour une meilleure optimisation.

##### 2.3.1.2.10. VESA - sortie sur BIOS VESA

Ce pilote à été conçu et présenté comme un pilote générique pour n'importe quelle carte ayant un BIOS compatible VESA VBE 2.0+. Un autre avantage de ce pilote est qu'il force l'ouverture de la sortie TV. dixit VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998 (Page 70):

> Conceptions des contrôleurs doubles. VBE 3.0 supporte la conception de contrôleur double en assumant que comme les deux contrôleurs sont typiquement fournis par le même OEM, sous le contrôle d'un seul ROM BIOS sur la même carte graphique, il est possible de cacher le fait que deux contrôleurs sont présent dans l'application. Cela a la limitation d'interdire l'utilisation simultanée de chacun des contrôleurs, mais permet aux applications avant VBE 3.0 de fonctionner normalement. La fonction VBE 00h (Return Controller Information) retourne l'information combinée des deux contrôleurs, incluant la liste combinée des modes disponibles. Quand une application sélectionne un mode, le contrôleur approprié est activé. Chacune des fonctions VBE restantes s'appliquent ensuite sur le contrôleur actif.

Donc vous avez des chances de faire fonctionner la sortie TV avec ce pilote (Je suppose que la sortie TV est souvent une tête indépendante ou au moins une sortie indépendante).

AVANTAGES

- Vous avez la possibilité de voir des films même si Linux ne connaît pas votre matériel vidéo.
- Vous n'avez pas besoin d'avoir de logiciels graphiques installés sur votre Linux (comme X11 (alias XFree86), fbdev et autres). Ce pilote peut fonctionner en mode texte.
- Vous avez des chances de faire fonctionner la sortie TV (C'est le cas au moins pour les cartes ATI).
- Ce pilote appelle le gestionnaire `int 10h` ainsi ce n'est pas un émulateur - il appelle des choses réelles dans le BIOS réel en mode réel (pour l'instant en mode vm86).
- Vous pouvez l'utiliser avec VIDIX, accélérant ainsi l'affichage vidéo et la sortie TV en même temps (recommandé pour les cartes ATI) !
- si vous avez un BIOS VESA VBE 3.0+, et que vous avez spécifié `monitor-hfreq, monitor-vfreq, monitor-dotclock` quelque part (fichier de config, ou ligne de commande) vous aurez le plus haut taux de rafraîchissement possible (en utilisant la Formule Générale de Timing). Pour activer cette fonctionnalité vous devrez spécifier toutes les options de votre moniteur.

DÉSAVANTAGES

- Il ne fonctionne que sur les systèmes x86.
- Il ne peut être utilisé qu'en `root`.
- Pour l'instant il n'est disponible que pour Linux.

### Important

N'utilisez pas ce pilote avec GCC 2.96 ! Cela ne fonctionnera pas !

OPTIONS EN LIGNE DE COMMANDE POUR VESA

`-vo vesa:`opts``
  actuellement reconnu: `dga` pour forcer le mode dga et `nodga`pour le désactiver. En mode dga vous pouvez activer le double buffering via l'option `-double`. Note: vous pouvez omettre ces paramètres pour activer l'autodétection du mode dga.

PROBLÈMES CONNUS ET CONTOURNEMENTS

- Si vous avez installé des polices NLS sur votre Linux box et que vous lancez le pilote VESA depuis le mode texte alors après la fermeture de MPlayer vous aurez la police de la ROM chargée à la place de la nationale. Vous pouvez recharger la police nationale en utilisant l'utilitaire setsysfont de la distribution Mandrake par exemple. (Astuce: Le même utilitaire peut être utilisé pour la localisation de fbdev).
- Certains pilotes graphiques Linux de mettent pas à jour le mode BIOS actif en mémoire DOS. Donc si vous avez un tel problème - utilisez toujours le pilote VESA uniquement depuis le mode texte. Sinon le mode texte (#03) sera activé de toute façon et vous devrez redémarrer votre ordinateur.
- Souvent après la fin du pilote VESA vous avez un écran noir. Pour retourner à l'état original de votre écran - passez simplement sur une autre console (en tapant Alt+F<x>) et revenez à la première de la même façon.
- Pour faire fonctionner la sortie TV vous devez avoir branché le connecteur TV avant le démarrage de votre PC car le BIOS vidéo s'initialise uniquement à ce moment-là.

##### 2.3.1.2.11. X11

À éviter si possible. Sort sur X11 (utilise l'extension de mémoire partagée), sans aucune accélération matérielle du tout. Supporte le redimensionnement logiciel (accéléré par MMX/3DNow/SSE, mais toujours lent), utilisez les options `-fs -zoom`. La plupart des cartes possèdent un redimensionnement matériel, pour elles utilisez la sortie `-vo xv` ou `-vo xmga` pour les Matrox.

Le problème est que la plupart des pilotes de carte ne supportent pas l'accélération sur la seconde tête/TV. Dans ce cas, vous voyez une fenêtre verte/bleue à la place du film. C'est ici que ce pilote entre en jeu, mais vous aurez besoin d'un CPU puissant pour utiliser le redimensionnement logiciel. N'utilisez pas le pilote SDL de sortie+dimensionnement logiciel, la qualité d'image est pire !

Le redimensionnement logiciel est très lent, vous devriez essayer de changer de mode vidéo à la place. C'est très simple. Voyez la section des modelines DGA, et insérez-les dans votre `XF86Config`.

- Si vous avez XFree86 4.x.x: utilisez l'option `-vm`. Elle changera de résolution pour s'adapter à celle de votre film. Si non:
- Avec XFree86 3.x.x: Vous devrez parcourir les résolutions possibles avec les touches Ctrl+Alt+plus et Ctrl+Alt+moins.

Si vous n'arrivez pas à trouver les mode que vous avez inséré, regardez dans la sortie de XFree86. Certains pilotes ne peuvent utiliser les pixelclocks bas qui sont requis pour les basses résolutions.

##### 2.3.1.2.12. VIDIX

PRÉAMBULE. VIDIX est l'abréviation de VIDeo Interface for *niX. VIDIX à été conçu et présenté comme une interface pour les pilotes espace-utilisateur rapides fournissant des performances égales à celles de mga_vid pour les cartes Matrox. Il est aussi très portable.

Cette interface à été conçue comme une tentative de regrouper les interfaces d'accélération existantes (connues sous les noms mga_vid, rage128_vid, radeon_vid, pm3_vid) dans un schéma uniforme. Il fournit une interface de haut niveau aux chipsets connus sous les noms de BES (BackEnd scalers) ou OV (Video Overlays). Il ne fournit pas une interface de bas niveau pour les choses connues sous le nom de serveurs graphiques. (Je ne veux pas concourir avec l'équipe X11 en changement de mode graphique). C'est à dire que le but principal de cette interface est de maximiser la vitesse de la lecture vidéo.

UTILISATION

- Vous pouvez utiliser le pilote de sortie vidéo autonome: `-vo xvidix`. Ce pilote à été développé comme un front end X11 pour la technologie VIDIX. Il requiert un serveur X et ne peut fonctionner que sous X. Notez que, comme il accède directement au matériel et contourne le pilote X, les pixmaps mis en cache dans la mémoire de la carte graphique peuvent être corrompus. Vous pouvez éviter cela en limitant la quantité de mémoire utilisée par X avec l'option "VideoRam" dans la section "device" de XFree86Config. Vous devriez fixer cette valeur avec la quantité de mémoire installée sur votre carte moins 4Mo. Si vous avez moins de 8Mo de mémoire vidéo, vous pouvez utiliser l'option "XaaNoPixmapCache" dans la section "screen" à la place.
- Il y a un pilote console VIDIX: `-vo cvidix`. Celui-ci requiert un framebuffer fonctionnel et initialisé pour la plupart des cartes (ou sinon vous brouillerez simplement l'écran), et vous aurez un effet similaire à `-vo mga` ou `-vo fbdev`. Les cartes nVidia par contre sont capables d'afficher de la vidéo graphique dans une console texte. Voir la section nvidia_vid pour plus d'informations.
- Vous pouvez utiliser le sous-périphérique VIDIX qui à été appliqué à de nombreux pilotes de sortie vidéo, tels que: `-vo vesa:vidix` (Linux uniquement) et `-vo fbdev:vidix`.

De plus le pilote de sortie vidéo utilisé avec VIDIX n'a pas d'importance.

BESOINS

- La carte graphique devrait être en mode graphique (excepté les cartes nVidia avec le pilote `-vo cvidix`).
- Le pilote de sortie vidéo de MPlayer devrait connaître les modes vidéos actifs et être capable de donner au sous-périphérique VIDIX quelques caractéristiques du serveur.

MÉTHODES D'UTILISATION. Quand VIDIX est utilisé en temps que sous-périphérique (`-vo vesa:vidix`), alors la configuration du mode vidéo est faite par le périphérique de sortie vidéo (vo_server en bref). Par conséquent vous pouvez passer en ligne de commande les mêmes touches que pour vo_server. De plus il comprends l'option `-double` comme un paramètre global (je recommande l'utilisation de cette option au moins pour les cartes ATI). Comme pour `-vo xvidix`, il reconnaît actuellement les options suivantes: `-fs -zoom -x -y -double`.

Vous pouvez aussi spécifier le pilote VIDIX directement en troisième sous-argument en ligne de commande:

    mplayer -vo xvidix:mga_vid.so -fs -zoom -double fichier.avi

ou

    mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 fichier.avi

Mais c'est dangereux, et vous ne devriez pas faire ça. Dans ce cas le pilote indiqué sera forcé et le résultat sera imprévisible (cela peut bloquer votre ordinateur). Vous ne devriez le faire UNIQUEMENT si vous êtes absolument sûr que cela va fonctionner, et MPlayer ne le fait pas automatiquement. Dites-le aux développeurs, SVP. La bonne façon est d'utiliser VIDIX sans argument pour activer l'autodétection du pilote.

VIDIX est une toute nouvelle technologie et il est fortement possible que sur votre système (OS=abc CPU=xyz) elle ne fonctionne pas. Dans ce cas votre seule solution est de le porter (principalement libdha). Mais il y a de bons espoirs qu'il fonctionne sur les systèmes où X11 fonctionne.

Comme VIDIX requiert l'accès direct au matériel, vous avez le choix entre le lançer en tant que root ou définir le bit SUID du binaire MPlayer (Attention: c'est une faille de sécurité !). Sinon, vous pouvez utiliser un module noyau spécial, comme ceci:

1. Téléchargez la version de développement de svgalib (par exemple 1.9.17), OU Téléchargez une version faite par Alex spécialement pour utilisation avec MPlayer (elle ne nécessite pas les sources de svgalib pour compiler) ici.

2. Compilez le module dans le répertoire `svgalib_helper` (il peut être trouvé à l'intérieur du répertoire `svgalib-1.9.17/kernel/` si vous avez téléchargé les sources depuis le site de svgalib) et faire un insmod.

3. Pour créer les périphériques nécessaires dans le répertoire `/dev`, faites un

       make device

   dans le répertoire `svgalib_helper`, en root.

4. Déplacez le répertoire `svgalib_helper` dans `mplayer/main/libdha/svgalib_helper`.

5. Requis si vous avez téléchargé les sources depuis le site de svgalib: Retirez les commentaires avant la ligne CFLAGS contenant la chaine "svgalib_helper" du `libdha/Makefile`.

6. Recompilez et installez libdha.

###### 2.3.1.2.12.1. Cartes ATI

Actuellement la plupart des cartes ATI sont supportés nativement, de la Mach64 jusqu'aux nouvelles Radeons.

Il y a deux binaires compilés: `radeon_vid` pour les cartes Radeon et `rage128_vid` pour les Rage 128. Vous pouvez en forcer un ou laisser le système VIDIX le détecter parmis les pilotes disponibles.

###### 2.3.1.2.12.2. Cartes Matrox

Les Matrox G200, G400, G450 et G550 doivent normalement fonctionner.

Le pilote supporte les égaliseurs vidéo et devrait être presque aussi rapide que le framebuffer Matrox

###### 2.3.1.2.12.3. Cartes Trident

Il y a un pilote disponible pour les chipsets Trident Cyberblade/i1, qui peuvent être trouvés sur les cartes-mère VIA Epia.

Le pilote a été écrit et est maintenu par Alastair M. Robinson.

###### 2.3.1.2.12.4. Cartes 3DLabs

Bien qu'il y ai un pilote pour les chips 3DLabs GLINT R3 et Permedia3, personne ne l'a testé, donc les rapports sont les bienvenus.

###### 2.3.1.2.12.5. Cartes nVidia

Il y a un relativement nouveau pilote nVidia, il fonctionne avec les chipsets Riva 128, TNT et GeForce2, d'autres doivent normalement fonctionner.

LIMITATIONS

- Il est recommandé d'utiliser les pilotes nVidia binaires pour X avant d'utiliser ce pilote VIDIX, car certains registres qui doivent être initialisés n'ont pas encore été découverts, donc cela échouera avec le pilote Open Source `nv.o` de XFree86.

- Actuellement seuls les codecs capables d'afficher une palette UYVY peuvent fonctionner en conjonction avec ce pilote. Malheureusement, cela exclu tous les décodeurs de la famille `libavcodec`. Cela nous laisse les codecs utilisables suivants: `cvid, divxds, xvid, divx4, wmv7, wmv8` et quelques autres. Veuillez noter que ce n'est qu'un inconfort provisoire. La syntaxe est la suivante:

          mplayer -vf format=uyvy -vc divxds fichierdivx3.avi

Une fonction unique du pilote nvidia_vid est la capacité d'afficher de la vidéo dans un console uniquemnent textuelle - avec aucun framebuffer ou X. Pour ce faire, nous aurons besoin d'utiliser la sortie `cvidix`, comme le montre l'exemple suivant:

        mplayer -vf format=uyvy -vc divxds -vo cvidix exemple.avi

Rapports attendus !

###### 2.3.1.2.12.6. Cartes SiS

C'est du code très expérimental, comme nvidia_vid.

Testé sur SiS 650/651/740 (les chipsets les plus couramment utilisés dans les versions SiS des barebones "Shuttle XPC")

Rapports attendus !

##### 2.3.1.2.13. DirectFB

> "DirectFB est une librairie graphique conçue pour les systèmes embarqués. Il offre des performances d'accélération matérielle maximum pour un minimum d'utilisation des ressources et de charge." - citation de http://www.directfb.org

J'exclurai les fonctionnalités de DirectFB dans cette section.

Bien que MPlayer ne soit pas supporté en tant que "fournisseur vidéo" dans DirectFB, ce pilote de sortie activera la lecture vidéo au travers de DirectFB. Il sera - bien sûr - accéléré, sur ma Matrox G400 la vitesse de DirectFB était la même que celle de XVideo.

Essayez toujours d'utiliser la dernière version de DirectFB. Vous pouvez utiliser les options DirectFB en ligne de commande, en utilisant l'option `-dfbopts`. La sélection de couche peut être faite par la méthode sous-périphérique, par ex.: `-vo directfb:2` (couche -1 par défaut: autodétection)

##### 2.3.1.2.14. DirectFB/Matrox (dfbmga)

Veuillez lire la section DirectFB principale pour avoir les informations générales.

Ce pilote de sortie vidéo activera CRTC2 (sur la seconde tête) sur les cartes Matrox G400/G450/G550, affichant la vidéo indépendemment de la première tête.

Ville Syrjala a un fichier README et un HOWTO sur sa page web qui explique comment faire fonctionner la sortie TV DirectFB avec les cartes Matrox.

### Note

La première version de DirectFB que nous avons pu faire fonctionner était la 0.9.17. (elle est boguée, nécessite le patch `surfacemanager` disponible sur l'URL ci-dessus). De toutes façons, le portage du code CRTC2 dans mga_vid est prévu.

#### 2.3.1.3. Décodeurs MPEG

##### 2.3.1.3.1. sorties et entrées DVB

MPlayer supporte les cartes équipées du chipset DVB Siemens des vendeurs tels que Siemens, Technotrend, Galaxis ou Hauppauge. Les derniers pilotes DVB sont disponibles sur le site Linux TV. Si vous voulez faire du transcodage logiciel vous aurez besoin d'un CPU d'au moins 1Ghz.

Configure devrait détecter votre carte DVB. Si ce n'est pas le cas, forcez la détection avec

    ./configure --enable-dvb

Si vous avez des entêtes ost dans un chemin non-standard, corrigez ce chemin avec

    ./configure --with-extraincdir=répertoire source DVB/ost/include

Ensuite compilez et installez comme d'habitude.

UTILISATION. Le décodage matériel (lecture de fichiers MPEG1/2 standards) peut être fait avec cette commande:

    mplayer -ao mpegpes -vo mpegpes fichier.mpg|vob

Le décodage logiciel ou le transcodage de différents formats en MPEG1 peut être obtenu en utilisant une commande comme celle-ci:

    mplayer -ao mpegpes -vo mpegpes votrefichier.ext
    mplayer -ao mpegpes -vo mpegpes -vf expand votrefichier.ext

Notez que les cartes DVB ne supportent que les tailles 288 par 576 pour le PAL ou 240 par 480 pour le NTSC. Vous devez redimensionner vers d'autres tailles en ajoutant `scale=largeur:hauteur` avec la largeur et la hauteur que vous voulez à l'option `-vf`. Les cartes DVB acceptent des largeurs variées, comme 720, 704, 640, 512, 480, 352 etc et font un redimensionnement matériel dans le sens horizontal, vous n'avez donc pas besoin de redimensionner horizontalement dans la plupart des cas. Pour un DivX en 512x384 (aspect 4:3) essayez:

    mplayer -ao mpegpes -vo mpegpes -vf scale=512:576

Si vous avez un film plein-écran et que vous ne voulez pas l'afficher à sa taille complète, vous pouvez utiliser le filtre `expand=l:h` pour ajouter des bandes noires. Pour voir un DivX en 640x384, essayez:

    mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 fichier.avi

Si votre CPU est trop lent pour un DivX en taille complète 720x576, essayez de diminuer la taille:

    mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 fichier.avi

Si la vitesse ne s'améliore pas, essayez également la diminution verticale:

    mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 fichier.avi

Pour l'OSD et les sous-titres utilisez la fonction expand du plugin OSD. Donc, au lieu de `expand=l:h` ou `expand=l:h:x:y`, utilisez `expand=l:h:x:y:1` (le 5ème paramètre `:1` à la fin activera le rendu OSD). Vous pouvez aussi vouloir monter un peu l'image pour obtenir plus de surface noire pour les sous-titres. Vous pouvez aussi monter les sous-titres , si ils sont en dehors de l'écran, utilisez l'option `-subpos <0-100>` pour l'ajuster (`-subpos 80` est un bon choix).

Pour pouvoir lire des films non-25fps sur une TV PAL ou avec un CPU lent, ajoutez l'option `-framedrop`.

Pour garder les dimensions des fichiers DivX et obtenir les paramètres de zoom optimaux (zoom matériel horizontal et zoom logiciel vertical en gardant l'aspect original), utilisez le nouveau filtre dvbscale:

    pour une TV 4:3:  -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
    pour une TV 16:9: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1

TV numérique (module d'entrée DVB). Vous pouvez utiliser votre carte DVB pour regarder la TV numérique.

Vous devriez également avoir les programmes scan et szap/tzap/czap installés; ils sont inclus dans le paquet de pilotes.

Vérifiez que vos pilotes fonctionnent correctement avec un programme tel que dvbstream (c'est la base du module d'entrée DVB).

Maintenant vous devriez compiler un fichier `~/.mplayer/channels.conf`, avec la syntaxe acceptée par szap/tzap/czap, ou le faire compiler par scan.

Assurez-vous de n'avoir que des canaux réellement disponibles, ou MPlayer plantera sur les autres.

Pour afficher le premier des canaux présents dans votre liste, tapez

      mplayer dvb://

Si vous voulez regarder un canal spécifique, tel que R1, tapez

      mplayer dvb://R1

Pour changer de canal tapez sur les touches h (suivant) et k (précédent), ou utilisez le menu OSD (requiert un sous-système OSD fonctionnel).

Si votre `~/.mplayer/menu.conf` contient une entrée `<dvbsel>`, comme celle du fichier d'exemple `etc/dvb-menu.conf` (que vous pouvez utiliser pour outrepasser `~/.mplayer/menu.conf`), le menu principal affichera un sous-menu qui vous permettra de choisir les canaux présents dans votre `channels.conf`.

Si vous voulez sauvegarder un programme sur le disque vous pouvez utiliser

      mplayer -dumpfile r1.ts -dumpstream dvb://R1

Si vous voulez l'enregistrer dans un format différent (le ré-enregistrer) vous pouvez lancer une commande comme

      mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1

Lisez la page de man pour avoir une liste des options que vous pouvez passer au module d'entrée DVB.

FUTUR. Si vous avez des questions ou voulez entendre les annonces de fonctionnalités et participer aux discussions sur ce sujet, rejoignez notre liste de diffusion MPlayer-DVB. SVP, rappelez-vous que la langue de la liste est l'anglais.

Dans le futur vous pouvez vous attendre à pouvoir afficher l'OSD et les sous-titres en utilisant la fonction OSD native des cartes DVB, ainsi qu'a une lecture plus régulière des films non-25fps et le transcodage temps-réel entre MPEG2 et MPEG4 (décompression partielle).

##### 2.3.1.3.2. DXR2

MPlayer supporte l'affichage accéléré avec la carte Creative DXR2.

Tout d'abord vous devrez avoir les pilotes correctement installés. Vous pouvez trouver les pilotes et les instructions d'installation sur le site DXR2 Resource Center.

UTILISATION

`-vo dxr2`

  active la sortie TV

`-vo dxr2:x11` ou `-vo dxr2:xv`

  active la sortie Overlay sous X11

`-dxr2 <option1:option2:...>`

  Cette option est utilisée pour contrôler le pilote DXR2.

Le chipset overlay utilisé sur la DXR2 est d'assez mauvaise qualité mais les paramètres par défaut devraient suffire pour tout le monde. L'OSD peut être utilisable avec l'overlay (pas sur une télé) en la dessinant avec une couleur-clé. Avec les paramètres de couleur-clé par défaut vous obtiendrez des résultats variables, généralement vous vérez la couleur-clé autour des personnages et autres effets amusants. Mais si vous ajustez correctement les paramètres de couleur-clé vous devriez pouvoir obtenir des résultats acceptables.

Veuillez lire la page de man pour les options disponibles.

##### 2.3.1.3.3. DXR3/Hollywood+

MPlayer supporte l'accélération matérielle avec les cartes Creative DXR3 et Sigma Designs Hollywood Plus. Ces cartes ont toutes deux le chip de décodage MPEG em8300 de Sigma Designs.

Tout d'abord vous aurez besoin de pilotes DXR3/H+ correctement installés, version 0.12.0 ou supérieure. Vous pouvez trouver les pilotes et les instructions d'installation sur le site DXR3 & Hollywood Plus for Linux. `configure` devrait détecter votre carte automatiquement, la compilation devrait se faire sans problèmes.

UTILISATION

`-vo dxr3:prebuf:sync:norm=x:`périph.``

  `overlay` active l'overlay à la place de TVOut. Cela requiert que vous ayez correctement configuré l'overlay. La manière la plus facile de configurer l'overlay est de d'abord lancer autocal. Ensuite lancez MPlayer avec la sortie dxr3 et sans overlay activé, lancez dxr3view. Dans dxr3view vous pouvez régler les paramètres overlay et en voir les effets en temps réel, peut-être cette fonction sera supporté par la GUI de MPlayer dans le futur. Quand l'overlay est correctement configuré, vous n'avez plus besoin d'utiliser dxr3view. `prebuf` active le prebuffering. C'est une fonction du chip em8300 qui l'active pour garder plus d'une trame de vidéo à la fois. Cela signifie que quand vous utilisez le prebuffering MPlayer essaiera de garder le buffer vidéo rempli de données à tout moment. Si vous êtes sur une machine lente MPlayer utilisera près de, voir exactement 100% du CPU. C'est particulièrement courant si vous lisez de purs flux MPEG (comme les DVDs, SVCDs et ainsi de suite) car comme MPlayer n'aura pas besoin de le ré-encoder en MPEG, il remplira le buffer très rapidement. Avec le prebuffering la lecture est beaucoup moins sensible aux autres programmes monopolisant le CPU, il ne sautera pas d'images à moins que des programmes monopolisent le CPU pour une longue durée. En l'utilisant sans doublebuffering, l'em8300 est bien plus sensible à la charge CPU, il est donc hautement recommandé d'activer l'option `-framedrop` pour éviter les éventuelles pertes de synchro. `sync` activera le nouveau moteur de synchro. C'est actuellement une fonction expérimentale. Avec la fonction sync activé l'horloge interne de l'em8300 sera contrôlée à tout moment, si elle commence à dévier de l'horloge de MPlayer elle sera réajustée, obligeant l'em8300 à sauter les éventuelles trames en retard. `norm=x` fixera la norme TV de la carte DXR3 sans avoir besoin d'utiliser des outils externes comme em8300setup. Les normes valides sont 5 = NTSC, 4 = PAL-60, 3 = PAL. Les normes spéciales sont 2 (ajustement auto utilisant PAL/PAL-60) et 1 (ajustement auto utilisant PAL/NTSC) parce qu'elles décident quelle norme utiliser en regardant le frame rate du film. norm = 0 (par défaut) ne change pas la norme courante. ``périph.`` = numéro de périphérique à utiliser si vous avez plus d'une carte em8300. Chacune de ces options peut être laissé de côté. `:prebuf:sync` semble fonctionner à merveille en lisant des DivX. Des gens ont signalé des problèmes en utilisant l'option prebuf pendant la lecture de fichiers MPEG1/2. Vous pourriez vouloir essayer sans aucune option en premier, si vous avez des problèmes de synchro, ou des problèmes de sous-titres avec les DVDs, essayez avec `:sync`.

`-ao oss:/dev/em8300_ma-`X``

  Pour la sortie audio, où `X` est le numéro de périphérique (0 si une carte).

`-aop list=resample:fout=`xxxxx``

  L'em8300 ne peut jouer de taux d'échantillonage inférieur à 44100 Hz. Si le taux d'échantillonage est en dessous de 44100Hz, sélectionnez soit 44100Hz, soit 48000Hz en fonction de ce qui est le plus proche. C-a-d si le film utilise 22050 utilisez 44100Hz car 44100 / 2 = 22050, si c'est 24000Hz utilisez 48000Hhz car 48000 / 2 = 24000 et ainsi de suite. Cela ne fonctionne pas avec la sortie audio numérique (`-ac hwac3`).

`-vf lavc/fame`

  Pour voir du contenu non-MPEG sur l'em8300 (c-a-d DivX ou RealVideo), vous devrez spécifier un filtre vidéo MPEG1 tel que `libavcodec` (lavc) ou `libfame` (fame). Pour le moment lavc est à la fois plus rapide et donne une meilleur qualité, il est recommandé de l'utiliser à moins que vous ayez des problèmes avec. Voir la page de man pour de plus amples infos à propos de `-vf lavc/fame`. Utiliser lavc est hautement recommandé. Actuellement il n'est pas possible de régler les fps de l'em8300 ce qui veut dire qu'il est fixé à 29.97fps. À cause de cela il est hautement recommandé d'utiliser `-vf lavc=`qualité`:25`, surtout si vous utilisez le prebuffering. Alors pourquoi 25 et pas 29.97 ? Hé bien, le truc est que si vous utilisez 29.97, l'image devient un peu sautante. Nous n'en connaissons pas la raison. Si vous le réglez quelque part entre 25 et 27 l'image devient stable. Pour l'instant tous ce que nous pouvons faire est de l'accepter.

`-vf expand=-1:-1:-1:-1:1`

  Bien que le pilote DXR3 puisse placer quelques OSD sur de la vidéo MPEG1/2/4, il est de bien plus basse qualité que l'OSD traditionnel de MPlayer, et de plus soufre de nombreux problèmes de rafraîchissement. La ligne de commande ci-dessus va d'abord convertir l'entrée vidéo en MPEG4 (c'est obligatoire, désolé), ensuite appliquer un filtre expand qui ne va rien étendre du tout (-1: défaut), mais afficher l'OSD dans l'image (c'est ce que fait le "1" à la fin).

`-ac hwac3`

  L'em8300 supporte la lecture audio AC3 (son surround) au travers de la sortie audio numérique de la carte. Voir l'option `-ao oss` plus haut, elle doit être utilisé pour spécifier la sortie DXR3 au lieu d'une carte son.

#### 2.3.1.4. Autres matériels de visualisation

##### 2.3.1.4.1. Zr

C'est un pilote d'affichage (`-vo zr`) pour certaines cartes de capture/lecture (testé pour DC10+ et Buz, et cela devrait fonctionner pour la LML33 et la DC10 originale). Ce pilote fonctionne en encodant la trame en JPEG et en l'envoyant à la carte. Pour l'encodage JPEG `libavcodec` est utilisé, et requis. Avec le mode spécial cinerama, vous pouvez voir les films en vrai écran large si vous avez deux moniteurs et deux cartes MJPEG. Selon la résolution et les réglages, ce pilote requiert beaucoup de puissance CPU, rappelez-vous de spécifier `-framedrop` si votre machine est trop lente. Note: Mon AMD K6-2 350Mhz est (avec `-framedrop`) très adapté pour voir du matériel de taille VCD et les films dont la taille est réduite.

Ce pilote parle au module noyau disponible sur http://mjpeg.sourceforge.net, donc vous devez d'abord faire fonctionner ce dernier. la présence d'une carte MJPEG est autodétectée par le script `configure`, si l'autodétection échoue, forcez la détection avec

    ./configure --enable-zr

La sortie peut être contrôlée par de nombreuses options, une longue description des options peut être trouvée sur la page de man, une courte liste des options peut être obtenue en exécutant

    mplayer -zrhelp

Les choses comme le zoom ou l'OSD (on screen display) ne sont pas gérés par ce pilote mais peuvent être obtenus en utilisant les filtres vidéo. Par exemple, supposons que vos avez un film d'une résolution de 512x272 et que vous voulez le voir en plein-écran sur votre DC10+. Il y a trois possibilités principales, vous pouvez redimmensionner le film à une largeur de 768, 384 ou 192. Pour des raisons de performances et de qualité, vous pouvez choisir de redimmensionner le film en 384x204 en utilisant le zoom logiciel bilinéaire rapide. La ligne de commande est

    mplayer -vo zr -sws 0 -vf scale=384:204 film.avi

Le découpage peut être fait avec le filtre `crop` et par ce pilote lui-même. Supposons qu'un film soit trop large pour s'afficher sur votre Buz et que vous vouliez utiliser `-zrcrop` pour rendre le film moins large, alors vous taperez la commande suivante

    mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi

Si vous voulez utiliser le filtre `crop`, vous feriez

    mplayer -vo zr -vf crop=720:320:80:0 benhur.avi

Des occurrences supplémentaires de `-zrcrop` invoquent le mode cinerama, c-a-d. que vous pouvez distribuer l'affichage sur plusieurs TV ou moniteurs pour créer un écran plus large. Supposons que vous ayez deux moniteurs. Celui de gauche est connecté à votre Buz sur `/dev/video1` et celui de droite est connecté à votre DC10+ sur `/dev/video0`. Le film a une résolution de 704x288. Supposons maintenant que vous voulez le moniteur de droite en noir et blanc et que le moniteur de gauche ait des trames jpeg de qualité 10, alors vous taperez la commande suivante

    mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
            -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 film.avi

Vous voyez que les options apparaissant avant le second `-zrcrop` ne s'appliquent qu'a la DC10+ et que les options après le second `-zrcrop` s'appliquent à la Buz. Le nombre maximum de cartes MJPEG participant au cinerama est quatre, vous pouvez donc construire un mur vidéo de 2x2.

Pour finir une remarque importante: Ne lancez ou n'arrêtez pas XawTV sur le périphérique en cours de lecture, cela planterait votre ordinateur. Il est, cependant, sans risque de lancer D'ABORD XawTV, ENSUITE de lancer MPlayer, d'attendre que MPlayer se termine et ENSUITE de stopper XawTV.

##### 2.3.1.4.2. Blinkenlights

Ce pilote est capable de lire en utilisant le protocole UPD Blinkenlights. Si vous ne savez pas ce qu'est Blinkenlights, vous n'avez pas besoin de ce pilote.

#### 2.3.1.5. Sortie TV

##### 2.3.1.5.1. Cartes Matrox G400

Sous Linux vous avez 2 méthodes pour faire fonctionner la sortie TV:

### Important

pour les instructions sur la sortie TV des Matrox G450/G550, voir la prochaine section SVP !

XFree86

  en utilisant le pilote et le module HAL, disponible sur le site de Matrox. Cela vous donnera X sur la TV.

  Cette méthode ne vous donne pas la lecture accélérée comme sous Windows ! La seconde tête n'a qu'un framebuffer YUV, le BES (Back End Scaler, le redimensionneur YUV des cartes G200/G400/G450/G550) ne fonctionne pas dessus ! Le pilote Windows contourne cela, probablement en utilisant le moteur 3D pour zoomer, et le framebuffer YUV pour afficher l'image zoomée. Si vous voulez vraiment utiliser X, utilisez les options `-vo x11 -fs -zoom`, mais ce sera LENT, et aura la protection anticopie Macrovision activée (vous pouvez "contourner" Macrovision en utilisant ce script perl).

Framebuffer

  En utilisant les modules matroxfb dans les noyaux 2.4. Les noyaux 2.2 n'ont pas de fonction TVout incluse, donc inutilisables pour cela. Vous devez activer TOUTES les fonctions spécifiques à matroxfb durant la compilation (excepté MultiHead), et les compiler en modules ! Vous aurez également besoin que I2C soit activé.

  1. Entrez dans `TVout` et tapez ./compile.sh. Installez `TVout/matroxset/matroxset` quelque part dans votre `PATH`.

  2. Si fbset n'est pas installé, mettez `TVout/fbset/fbset` quelque part dans votre `PATH`.

  3. Si con2fb n'est pas installé, mettez `TVout/con2fb/con2fb` quelque part dans votre `PATH`.

  4. Ensuite entrez dans le répertoire `TVout/` du source MPlayer et exécutez `./modules` en root. Votre console en mode texte va entrer en mode framebuffer (sans retour possible !).

  5. Ensuite, ÉDITEZ et lancez le script `./matroxtv`. Il va vous présenter un menu très simple. Pressez 2 et Entrée. Maintenant vous devriez avoir la même image sur votre moniteur, et sur la TV. Si l'image TV (PAL par défaut) a de vilaines bandes dessus, le script n'a pas été capable de fixer la résolution correctement (en 640x512 par défaut). Essayez d'autres résolutions depuis le menu et/ou expérimentez avec fbset.

  6. Yoh. La prochaine tâche est de faire disparaître le curseur sur tty1 (ou n'importe quelle autre), et de désactiver l'économiseur d'écran. Exécutez les commandes suivantes:

         echo -e '\033[?25l'
         setterm -blank 0

     ou

         setterm -cursor off
         setterm -blank 0

     Vous pouvez mettre ceci dans un script, et également effacer l'écran... Pour réactiver le curseur:

         echo -e '\033[?25h'

     ou

         setterm -cursor on

  7. Yeah kewl. Démarrez le film avec

         mplayer -vo mga -fs -screenw 640 -screenh 512 nomfichier

     (si vous utilisez X, maintenant changez pour matroxfb avec par exemple Ctrl+Alt+F1.) Changez `640` et `512` si vous voulez spécifier une résolution différente...

  8. Appréciez la sortie TV Matrox ultra-rapide ultra-fonctionnelle (meilleure que Xv) !

Construire un câble de sortie TV Matrox. Personne ne prends de responsabilités, ni n'offre de garanties quant aux éventuels dommages causés par cette documentation.

Cable pour G400. La quatrième broche du connecteur CRTC2 transmet le signal vidéo composite. La terre (ground) est sur les sixième, septième et huitième broches (info donnée par Balázs Rácz).

Cable pour G450. La première broche du connecteur CRTC2 transmet le signal vidéo composite. La terre (ground) est sur les cinquième, sixième, septième, et quinzième (5, 6, 7, 15) broches (info donnée par Balázs Kerekes).

##### 2.3.1.5.2. Cartes Matrox G450/G550

Le support de la sortie TV pour ces cartes n'a été introduit que récemment, et n'est pas encore dans le noyau officiel. Actuellement le module mga_vid ne peut être utilisé à ma connaissance, parce que le pilote G450/G550 ne fonctionne que dans une configuration: le premier chip CRTC (qui a le plus de fonctions) sur le premier affichage (sur le moniteur), et le second CRTC (pas de BES, veuillez voir la section G400 plus haut) sur la TV. Vous ne pouvez donc utiliser que le pilote de sortie fbdev de MPlayer pour le moment.

Le premier CRTC ne peut pas être relié à la seconde tête actuellement. L'auteur du pilote noyau matroxfb - Petr Vandrovec - fera certainement un support pour cela, en affichant la sortie du premier CRTC sur les deux têtes à la fois, comme actuellement recommandé pour la G400, voir la section ci-dessus.

Le patch noyau nécessaire et le HOWTO détaillé sont téléchargeables sur http://www.bglug.ca/matrox_tvout/

##### 2.3.1.5.3. Cartes ATI

PRÉAMBULE. Actuellement ATI ne veut supporter aucun de ces chips TV-out sous Linux, à cause de leur technologie Macrovision sous licence.

ÉTAT DE LA SORTIE TV ATI SUR LINUX

- ATI Mach64: supporté par gatos.
- ASIC Radeon VIVO: supporté par gatos.
- Radeon et Rage128: supporté par MPlayer ! Vérifiez les sections pilote VESA et VIDIX.
- Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: supporté par atitvout.

Sur les autres cartes, utilisez juste le pilote VESA, sans VIDIX. Un CPU puissant est cependant requis.

La seule chose que vous ayez à faire - avoir le connecteur TV branché avant de booter votre PC car le BIOS vidéo s'initialise uniquement durant cette phase.

##### 2.3.1.5.4. Voodoo 3

Reportez-vous à cette URL.

##### 2.3.1.5.5. nVidia

D'abord, vous DEVEZ télécharger les pilotes closed-source depuis http://nvidia.com. Je ne décrirai pas le processus d'installation et de configuration car il sort du cadre de cette documentation.

Après que l'accélération XFree86, XVideo, et 3D fonctionnent correctement, éditez la section Device de votre carte dans le fichier `XF86Config`, selon l'exemple suivant (adaptez à votre carte/TV):

    Section "Device"
            Identifier      "GeForce"
            VendorName      "ASUS"
            BoardName       "nVidia GeForce2/MX 400"
            Driver          "nvidia"
            #Option         "NvAGP" "1"
            Option          "NoLogo"
            Option          "CursorShadow"  "on"

            Option          "TwinView"
            Option          "TwinViewOrientation" "Clone"
            Option          "MetaModes" "1024x768,640x480"
            Option          "ConnectedMonitor" "CRT, TV"
            Option          "TVStandard" "PAL-B"
            Option          "TVOutFormat" "Composite"

    EndSection

Bien sûr l'élément le plus important est la partie TwinView.

##### 2.3.1.5.6. Neomagic

Testé sur un Toshiba Tecra 8000. Son chip de sortie TV est de très mauvaise qualité. À éviter si possible.

Vous devez utiliser `-vo vesa`. Le chipt testé n'était capable d'afficher que l'aspect ratio 1.333333, donc assurez-vous d'utiliser les options `-x`, `-y` et/ou les filtres `-vf scale,crop,expand` si la machine ne vous laisse pas activer la sortie TV. La résolution maximum était 720*576 à 16bpp.

Problèmes connus: VESA-uniquement, limitation 1.33333, l'image n'est pas toujours centrée, le film passe en 4bpp toutes les 10 minutes, et reste comme ça. bloquages matériels fréquents, problèmes d'affichage LCD.

### 2.3.2. Périphériques de sortie audio

#### 2.3.2.1. Synchronisation audio/vidéo

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

Pilote | Commentaire
--- | ---
oss | pilote OSS (ioctl) (supporte le transfert AC3 matériel)
sdl | pilote SDL (supporte les démons de son comme ESD et ARTS)
nas | pilote NAS (Network Audio System)
alsa5 | pilote ALSA 0.5 natif
alsa9 | pilote ALSA 0.9 natif (supporte le transfert AC3 matériel)
sun | pilote audio SUN (`/dev/audio`) pour les utilisateurs de BSD et Solaris8
macosx | pilote MacOS X natif
win32 | pilote Win32 natif
arts | pilote ARTS natif (principalement pour les utilisateurs KDE)
esd | pilote ESD natif (principalement pour les utilisateurs GNOME)

Les 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 MP3 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és 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:

- Si vous avez un pilote OSS, essayez d'abord avec l'option `-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).

- Si vous avez ALSA version 0.5, vous devrez presque toujours utiliser l'option `-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!

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

- Si le son émet des cliquètements lors d'une lecture depuis le CD-ROM, activez l'IRQ unmasking, ex. 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.

#### 2.3.2.2. Problèmes de cartes son, recommandations

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 | Canaux Max | Max Ouverts [a]
--- | --- | --- | --- | ---
OSS/Libre | ALSA | OSS/Pro | autres
VIA onboard (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 |  |  |  |  |  |  |
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 | stéréo | 1
Cartes Yamaha (*ymf*) | pas OK (?) (peut-être `-ao sdl`) | OK uniquement via 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
[a] [a] 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.

#### 2.3.2.3. Filtres Audio

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 options 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` est un champs de bits qui contrôle comment les filtres sont insérés et quelles optimisations de vitesse/exactitude ils utilisent:

`0`

  Utilise l'insertion automatique des filtres et optimise en fonction de la vitesse du CPU.

`1`

  Utilise l'insertion automatique des filtres et optimise pour la plus haute vitesse. Attention: Certaines fonctions des filtres audio pourraient alors échouer silencieusement, et la qualité du son pourrait en souffrir.

`2`

  Utilise l'insertion automatique des filtres et optimise pour la qualité.

`3`

  N'utilise pas d'insertion automatique des filtres et n'optimise pas. Attention: Il pourrait arriver de planter MPlayer en utilisant ce réglage.

`4`

  Utilise l'insertion automatique des filtres comme indiqué au champ 0, mais fait des calculs à virgule flottante si possible.

`5`

  Utilise l'insertion automatique des filtres comme indiqué au champ 1, mais fait des calculs à virgule flottante si possible.

`6`

  Utilise l'insertion automatique des filtres comme indiqué au champ 2, mais fait des calculs à virgule flottante si possible.

`7`

  N'utilise pas d'insertion automatique des filtres comme indiqué au champ 3, et fait des calculs à virgule flottante si possible.

`list` est un alias de l'option -af.

La couche filtre est également affectée par les options génériques suivantes:

`-v`

  Augmente le niveau de verbosité et fait afficher des messages d'état supplémentaires à la plupart des filtres.

`-channels`

  Cette option définie le nombre de canaux de sortie voulus pour votre carte son. Il affecte également le nombre de canaux qui sont décodés à partir des média. Si le médium contient moins de canaux que le nombre demandé le filtre channels (voir plus bas) sera automatiquement inséré. Le routage sera le routage par défaut pour le filtre channels.

`-srate`

  Cette option sélectionne le taux d'échantillonage voulu pour votre carte son. Si la fréquence d'échantillonage de votre carte son est différente de celle du médium, le filtre resample (voir plus bas) sera inséré dans la couche filtre audio pour compenser la différence.

`-format`

  Cette option défini le format de sample de la couche audio et de la carte son. Si le format de sample demandé pour votre carte son est différent de celui du médium, le filtre format (voir plus bas) sera inséré pour rectifier la différence.

##### 2.3.2.3.1. Up/Downsampling

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>`

  est un entier utilisé pour définir la fréquence d'échantillonage de sortie en Hz. L'intervalle valide pour ce paramètre va de 8kHz à 192kHz. Si les fréquences d'entrée et de sortie sont les mêmes ou si les paramètres sont omis, le filtre est automatiquement retiré. Un fréquence d'échantillonage haute augmente normalement la qualité audio, surtout utilisé en conjonction avec d'autres filtres.

`sloppy`

  est un paramètre binaire optionnel qui permet à la fréquence de sortie de différer légèrement de la fréquence donnée par `srate`. Cette option est utilisé au démarrage si la lecture est extrêmement lente.

`type <0-2>`

  est un entier optionnel compris entre `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.

##### 2.3.2.3.2. Changer le nombre de canaux

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>`

  est un entier entre `1` et `6` 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-6>`

  est un entier entre `1` et `6` utilisé pour définir le nombre de canaux de sortie. Cette option est optionnelle. Si elle est omise, le routage par défaut est utilisé.

`from1:to1:from2:to2:from3:to3...`

  sont des paires de nombres entre `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édium 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.

##### 2.3.2.3.3. Convertisseur de format de sample

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>`

  peut être `1`, `2` ou `4` et défini le nombre d'octets par sample. Cette option est requise, la laisser vide provoquera une erreur à l'exécution.

`f <format>`

  est une chaîne texte décrivant le format de sample. Cette chaîne est un mix concaténé de: `alaw`, `mulaw` ou `imaadpcm`, `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 -af format=4:float media.avi

initialiserait le format de sortie en données à virgule de 4 octets par sample.

##### 2.3.2.3.4. Delay

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...`

  sont des nombres à virgule représentant les décalages en ms qui devraient être imposés aux différents canaux. Le décalage minimum est 0ms et le maximum est 1000ms.

Pour calculer le décalage requis pour chaque canal, faites comme ceci:

1. Mesurez la distance entre les hauts parleurs et votre position d'écoute (en mètres) ce qui vous donne les distances s1 à s5 (pour un système 5.1). Ce n'est pas la peine de le faire pour le caisson de basses (vous n'entendrez pas la différence de toute façon).

2. Soustrayez les distances s1 à s5 à la distance maximum c-a-d. s[i] = max(s) - s[i]; i = 1...5

3. Les décalages requis (en ms) sont calculés avec d[i] = 1000*s[i]/342; i = 1...5

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.

##### 2.3.2.3.5. Contrôle de volume logiciel

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>`

  est un nombre à virgule compris entre `-200` et `+60` qui représente le niveau du volume en dB. Le niveau par défaut est 0dB.

`c`

  est un contrôle binaire qui active et désactive le soft clipping. Le Soft-Clipping peut rendre le son plus fluide si de très gros niveaux de volume de son sont utilisés. Activez cette option si l'intervalle dynamique de vos haut-parleurs est très bas. Soyez conscient que cette fonction crée une distorsion et ne devrait être utilisé qu'en dernier recours.

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é.

##### 2.3.2.3.6. Égaliseur

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:

Band 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`

  sont des nombres à virgule compris entre `-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.

##### 2.3.2.3.7. Filtre panoramique

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:

1. Down-mixage de plusieurs canaux vers seulement quelques uns, stéréo vers mono par exemple.

2. Faire varier la "largeur" du haut parleur central dans un système de son surround.

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>`

  est un entier compris entre `1` et `6` 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:...`

  sont des nombres à virgule compris entre `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 1:

    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).

##### 2.3.2.3.8. Sub-woofer

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>`

  est un nombre à virgule optionnel utilisé pour définir la fréquence de cut-off du filtre en Hz. L'intervalle valide est de 20Hz à 300Hz. Pour les meilleurs résultats essayez de fixer la fréquence de cut-off le plus bas possible. Cela améliorera la stéréo ou le son surround. La fréquence de cut-off par défaut est 60Hz.

`ch <0-5>`

  est un entier optionnel entre `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.

##### 2.3.2.3.9. Décodeur de son surround

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>`

  est un nombre à virgule optionnel entre `0` et `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.

##### 2.3.2.3.10. Exporteurs Audio

Ce filtre audio exporte le signal entrant vers un autre process en utilisant le mappage de mémoire `mmap()`). Les aires de mémoire mappées contiennent une entête:

    int nch                      /*nombre de canaux*/
    int size		     /*taille du tampon*/
    unsigned long long counter   /*Utilisé pour garder la synchro, mis à jour
                                   chaque fois que de nouvelles données sont
    			       exportées.*/

Le reste est constitué de données 16bit (non-entrelacées).

`fichier_mmappé`

  Le fichier dans lequel vous voulez que le filtre exporte. Par défaut il mappe dans `~/.mplayer/mplayer-af_export`.

`nsamples`

  Nombre d'échantillons par canal. La valeur par défaut est `512` échantillons.

Exemple:

    mplayer -af export=/tmp/mplayer-af_export:1024 media.avi

exporterait 1024 échantillons par canal dans `/tmp/mplayer-af_export`.

#### 2.3.2.4. Plugins Audio (à ne plus utiliser)

### Note

Les plugins audio ont été remplacés par les filtres audio et seront prochainement supprimés.

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ées 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.4.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. 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.

Usage:

    mplayer media.avi -aop list=resample:fout=freq

où ``freq`` est la fréquence en Hz, par ex. `44100`.

### Note

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.

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

Usage:

    mplayer media.avi -aop list=surround

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

où ``outfmt`` est le format de sortie requis.

##### 2.3.2.4.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 par soucis d'exhaustivité. N'utilisez pas ce plugin à moins que vous soyez un développeur.

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

Usage:

    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 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 distorsions et ne devrait être envisagée qu'en dernier ressort.

Utilisation:

    mplayer media.avi -aop list=volume:softclip

##### 2.3.2.4.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.4.7. Normaliseur de volume

Ce plugin maximise le volume sans distordre le son.

Usage:

    mplayer media.avi -aop list=volnorm

Précédent | Niveau supérieur | Suivant
2.2. Codecs Supportés | Sommaire | 2.4. Entrée TV