2.2.1. Sorties vidéo

General:
| x11 |  | X11 avec extensions SHM optionnelles
| xv |  | X11 utilisant les recouvrements de l'extension Xvideo (YUV matériel & redimensionnement)
| gl |  | rendu OpenGL, ne fonctionne actuellement qu'avec: toutes les cartes Utah-GLX les cartes Matrox et X/DRI >=4.0.3 les cartes Radeon avec X/DRI CVS
| dga |  | extension X11 DGA
| fbdev |  | sortie vers le framebuffer générique
| svga |  | sortie vers SVGAlib
| sdl |  | `1.1.7:` supporte le redimensionnement logiciel `1.1.8:` supporte Xvideo (redimensionnement/plein écran matériel) `1.2.0:` supporte AAlib (-vo aa recommandé, c.f. ci-dessous !)
| ggi |  | similaire a SDL
| aa |  | rendu en mode texte avec AAlib
Spécifique aux cartes :
| mga |  | Revouvrement matérie YUV avec les Matrox G200/G400 via le périphérique mga_vid
| xmga |  | Recouvrement pour Matrox G200/G400 (mga_vid) dans une fenêtre X11 (émulation Xv sur X 3.3.x !)
| syncfb |  | support framebuffer YUV pour Matrox G400 (obsolète, utilisez mga/xmga)
| 3dfx |  | support YUV matériel pour Voodoo2/3 (/dev/3dfx)(pas encore testé !)
Special:
| png |  | sortie fichiers PNG (utilisez l'option -z pour la compression)
| pgm |  | sortie fichiers PGM (pour réaliser des tests d'encodage avec ffmpeg)
| md5 |  | sortie MD5sum (pour tests de conformance MPEG)
| odivx |  | sortie fichiers AVI OpenDivX (utilisez l'option -br pour le taux d'encodage) (SANS LE SON!)
| null |  | sortie Null (pour tests/benchmarks de vitesse)

NOTE: lisez les sous-sections suivantes pour les détails et prérequis !

2.2.1.1. MTRR

Il est FORTEMENT recommandé de bien ajuster ses registres MTRR, qui apportent un gain important de performances. Vous devez tout d'abord définir leur adresse de base. Vous pouvez la trouver de trois façons :

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

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

- 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émore vidéo en hexadecimal, ou utilisez cette table :

| 1 MB |  | 0x100000
| 2 MB |  | 0x200000
| 4 MB |  | 0x400000
| 8 MB |  | 0x800000
| 16 MB |  | 0x1000000
| 32 MB |  | 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 32MB 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.2.1.2. 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. Ceci peut être fait avec l'option option '-vo xv'. Pour que cela fonctionne, vérifiez ceci :

- Vous utilisez XFree86 4.0.2 ou plus récent (les versions précédentes n'ont pas XVideo)
- Votre carte supporte l'accélération matérielle (les cartes modernes le font)
- X charge l'extension XVideo, qui doit faire apparaitre quelque chose comme :

  `(II) Loading extension XVideo`

  dans /var/log/XFree86.0.log

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

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

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

- Finallement, vérifiez si MPlayer a été compilé avec le support 'xv'. ./configure doit vous le préciser.

2.2.1.2.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.1.0 ou plus, qui doit fonctionner correctement. Par ailleurs, vous pouvez également utiliser les cvs de DRI. Si des problèmes apparaissent en utilisnt -vo xv,essayez SDL (qui utilise également XVideo) et voyez si cela passe mieux. Lisez la section SDL pour plus de détails.

2.2.1.2.2. Cartes S3

Les cartes S3 Savage3D doivent fonctionner correctement, mais pour les Savage4, utilisez XFree86 version 4.0.3 ou plus. Comme pour les S3 Virge.. revendez la.

2.2.1.2.3. Cartes nVidia

nVidia n'est pas un très bon chois sous Linux.. Vous devrez utiliser le driver binaire de nVidia, disponible sur leur site. Le driver standard de X ne supporte pas XVideo pour ces cartes, par la faute des sources/spécifications fermées de nVidia.

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

2.2.1.2.4. Cartes ATI

- Le driver GATOS utilise VSYNC par défaut. Cela signifie que la vitesse de décodage est synchronisée à la vitesse de rafraichissement du moniteur (!). Si la lecture semble lente, essayez d'enlever VSYNC, ou passez la vitesse de rafraichissement à n*(fps du film) Hz.
- Radeon VE - actuellement seule la version CVS de XFree86 a un driver pour cette carte, pas la version 4.1.0. Pas de support TV-out.

2.2.1.2.5. Cartes NeoMagic

Ces cartes sont utilisées sur de nombreux portables. Sous Linux, seul le DGA manque. Malheureusement, le driver DGA de X 4.1.0 ne fonctionne pas, vous devrez attendre la version 4.2.0, ou télécharger un driver modifié pour 4.0.3 ou 4.1.0 depuis : http://www.mplayerhq.hu/MPlayer/incoming/NeoMagic-driver (existe également en patch pour les sources du driver).
Drivers fournis par Tomek Jarzynka.

2.2.1.3. DGA

2.2.1.3.1. Sommaire

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

2.2.1.3.2. Qu'est ce que le DGA

DGA signifie Direct Graphics Access et permet aux programmes de passer outre le serveur X et de modifier directemment la mémoire dans le framebuffer. Techniquement parlant, cela fonctionne en mappant la mémoire du framebuffer dans les adresse mémoire de votre process. Cela est autorisé par le noyau uniquement si vous avez les privilèges super-user. 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 controlant cette carte. Cela peut donc ne pas fonctionner sur tout les systèmes ...

2.2.1.3.3. 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 TRÈS RECOMMANDÉ ! Le driver DGA de MPlayerest automatiquement détecté lors de ./configure, ou bien 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 (unquement 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 avec les droits d'un simple utilisateur.

!!!! MAIS FAITES ATTENTION !!!!
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.
!!!! ON VOUS AURA PRÉVENU ... !!!!

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

2.2.1.3.4. Changement de résolution

Le driver DGA vous permet de changer la résolution du driver 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 des résolutions exotiques), mais le serveur X permet uniquement le passage à des résolutions définies dans `/etc/X11/XF86Config` (`/etc/X11/XF86Config-4` pour XFree 4.0.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`.

C.f. appendice A pour quelques exemples de modelines.

2.2.1.3.5. DGA & MPlayer

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

2.2.1.3.6. Fonctionnalités du driver DGA

Le driver DGA s'invoque en spécifiant -vo dga sur la 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 driver 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épend de votre matériel, soit ces modes sont nativement supportés, soit il pratique une conversion logicielle (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 frame de votre vidéo est dessinée dans une partie non affichée de la mémoire graphique tandis que s'affiche la frame en cours.Quand la frame suivant est prête, la puce graphique recoit simplement l'adresse de celle ci et récupère les donnée a afficher depuis cette partie de la mémoire. Pendant ce temps l'autre buffer se remplit de l'image suivante, etc...

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'onscreen 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 utilise 20% de temps CPU en plus !), ceci dépendant de l'implementation du DGA pour votre matériel.

2.2.1.3.7. 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 driver 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 demande 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.

2.2.1.3.8. Bogues connus

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

- avec XFree 4.0.3 et nv.o un bogue affiche des couleurs étranges.
- les drivers ATI requièrent de passer plusieurs modes après l'utilisation du DGA.
- certains drivers 'plantent' lors du retour à la résolution normale (utilisez Ctrl-Alt-Keypad +, - pour y retourner manuellement)
- certains drivers affichent simplement des couleurs étranges.
- certains drivers mentent a propos de la quantité de mémoire allouée dans l'espace d'adressage du process, empêchant vo_dga d'utiliser le doublebuffering (SIS ?)
- certains drivers 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 similaire ...
- l'OSD fonctionne uniquement avec le doublebuffering activé.

2.2.1.3.9. Travaux prévus

- utilisation de la nouvelle interface de rendering X11 pour l'OSD.
- où est ma liste TODO???? :-(((

2.2.1.3.A. Quelques modelines

      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

Ces entrées fonctionnent bien avec ma carte Riva128, en utilisant le driver nv.o du serveur X.

2.2.1.3.B. Rapports de bogues

Si vous constatez des problèmes avec l'utilisation du driver DGA envoyez moi un rapport de bogue à l'adresse ci-dessous. Lancez mplayer avec l'option -v et joignez toutes les lignes commençant par vo_dga à votre mail :

Merci d'inclure également la version de X11 utilisée, la carte graphique et votre type de processeur. Le module du driver X11 (défini dans XF86-Config) peut également m'aider. Merci !

Acki (acki@acki-netz.de, www.acki-netz.de)

2.2.1.4. SDL

Voici certaines notes sur la sortie SDL dans MPlayer.

Il existe plusieurs options à la ligne de commande pour SDL :
| -vo sdl:nom |  | spécifie le driver vidéo sdl a utiliser (ie. aalib, dga, x11)
| -ao sdl:nom |  | spécifie le driver audio sdl a utiliser (ie. dsp, esd, arts)
| -noxv |  | désactive l'accélération Xvideo matérielle
| -forcexv |  | tente de forcer l'accélération Xvideo
Touches SDL :
| F |  | passe du mode plein écran au mode fenêtré
| C |  | passe par tous les modes plein écran valides
| W/S |  | mappings pour les touches * et / (contrôle du mixer)

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

2.2.1.5. SVGAlib

Si vous n'avez pas X, vous pouvez utiliser la sortie SVGAlib ! Faites attention de ne pas utiliser l'option -fs, qui passe en mode de zoom logiciel, et reste très lent actuellement, a moins que vous possédiez un processeur très rapide (et/ou MTRR ?). :(

Bien sur vous devrez installer svgalib et ses paquetages 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.

2.2.1.6. 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 savoir comment l'utiliser, etc.. !

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/fd0)
| -fbmode |  | mode a utiliser (relatif au fichier /etc/fb.modes)
| -fbmodeconfig |  | fichier de configuration des modes (/etc/fb.modes par defaut)
| -monitor_hfreq |  | valeurs IMPORTANTES, lisez le fichier example.conf
| -monitor_vfreq |
| -monitor_dotclock |

Si vous voulez employer un mode spécifique, utilisez l'option

`mplayer -vm -fbmode (NameOfMode) filename`

- -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 a 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 (le redimensionnement logiciel est trop lent). L'option -fs n'est pas supportée non plus. Vous ne pouvez pas utiliser de modes 8bpp (ou moins).

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.2.1.7. Framebuffer Matrox (mga_vid)

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

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

`cd drivers
make`

Puis créez le device /dev/mga_vid :

`mknod /dev/mga_vid c 178 0`

et chargez le driver avec

`insmod mga_vid.o`

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

`insmod mga_vid.o mga_ram_size=16`

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

`alias char-major-178 mga_vid`

Puis exécutez

`depmod -a`

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

Note: '-vo xmga' fonctionne sous XFree86 4.x.x, mais entre en conflit avec le driver Xv, donc désactivez le auparavent. Si vous devez utiliser Xv avec mga, essayez de lancer MPlayer avec l'option '-vo mga' . Cela doit passer outre Xv.

2.2.1.8. Framebuffer SiS 6326 (sis_vid)

Driver framebuffer SiS 6326 YUV -> driver noyau sis_vid

Son interface doit être compatible avec mga_vid, mais le driver n'a pas eu de mise à jour suite aux changements de mga_vid, il est donc dépassé. Les volontaires sont les bienvenus pour tester et mettre à jour le code.

2.2.1.9. Support 3dfx YUV

La 3dfx supporte nativement le YUV+scaler, en utilisant /dev/3dfx (tdfx.o driver?) Le driver noyau /dev/3dfx existe uniquement pour les noyaux 2.2.x, utilisable avec les ports Linux Glide 2.x. Cela n'a pas été testé avec MPlayer, et donc non supporté. Les volontaires sont les bienvenus pour tester et mettre à jour le code.

2.2.1.10. Sortie OpenGL

MPlayer supporte l'affichage de vidéos en utilisant l'OpenGL. Malheureusement, tous les drivers ne le supportent pas. Par exemple les drivers Utah-GLX (pour XFree86 3.3.6) l'acceptent pour toutes les cartes. C.f. http://utah-glx.sourceforge.net pour plus de détails sur comment installer ce driver.

XFree86(DRI) >= 4.0.3 le supporte uniquement avec les cartes Matrox et Radeon. C.f. http://dri.sourceforge.net pour les instructions de téléchargement et d'installation.

2.2.1.11. AAlib - affichage en mode texte

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

Vous pouvez utiliser certains raccourcis clavier dans le fenêtre AA pour changer les options de rendering :
| 1 |  | diminue le contraste
| 2 |  | augmente le contraste
| 3 |  | diminue la luminosité
| 4 |  | augmente la luminosité
| 5 |  | active/désactive le fast rendering
| 6 |  | active le mode de dithering (none, error distribution, floyd steinberg)
| 7 |  | inverse l'image
| a |  | passe des contôles de aa vers ceux de mplayer
Vous pouvez utiliser les lignes de commande suivantes :
| -aaosdcolor=V |  | change la couleur de l'osd
| -aasubcolor=V |  | change la couleur des sous-titres
| ou V peut être : (0/normal, 1/noir, 2/bold, 3/boldfont, 4/reverse, 5/special)
AAlib lui même propose de nombreuses options. En voici les principales :
| -aadriver |  | choisit le driver 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 rendering 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 ! (Quelqu'un peut il améliorer bdev pour faire la conversion/dithering vers hgafb ? Ça serait parfait :)

Utilisez l'option -framedrop si votre machine n'est pas suffisement rapide pour afficher toutes les frames !

Sur un terminal vous obtiendrez de meilleures performances en utilisant le driver linux, 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. C.f. http://aa-project.sourceforge.net/tune/ pour une meilleure optimisation.

2.2.1.A. Support TV-out

2.2.1.A.1. Cartes Matrox

- Utiliser X 4.0.x + le driver HAL de matrox, qui apporte le support dual-head, et vous permettra de rediriger la seconde sortie vera la TV. Cette méthode n'apporte pas la lecture optimisée comme sous windoze ! La seconde tête supporte uniquement le framebuffer YUV, le BES (Back End Scalar, le scaler Yuv sur cartes G200/G400/G450/G550) ne fonctionne pas ici ! Le driver windows contourne le problème, probablement en utilisant le moteur 3D pour zoomer, et le framebuffer YUV pour afficher l'image agrandie. Si vous voulez vraiment utiliser X, essayez l'option `-vo x11 -zoom`, mais cela restera LENT, et ne passera pas la protection de copie Macrovision.
- Framebuffer: utiliser les modules matroxfb dans le noyaux 2.4 et 2.2 ne suffit pas, vous devez sélectionner toutes les options relatives aux cartes Matrox et les compiler comme modules !

Suivez ces instructions:

- `Placez vous dans le répertoire TVout/matroxset et faites `make`. Installez `matroxset` quelque part dans votre PATH.`
- Placez vous dans le répertoire `TVout/` des sources MPlayer, et exécutez`./modules` en tant que root. Votre console mode texte passera en mode framebuffer (pas de retour possible !) .
- Lancez ensuite le script `./matroxtv`. Il vous affichera un menu sommaire. Tapez 2 puis ENTRÉE. Vous devriez maintenant avoir la même image sur la télé et sur votre moniteur. L'option 3 séparera les deux affichages, mais vous ne pourrez alors plus utiliser X ! Si la TV a quelques lignes déphasées, c'est que le script n'a pas pu ajuster correctement la résolution (640x512 par défaut). Utiliser au hasard les autres options du menu, ça devrait passer;-)

Yoh. L'étape suivante consiste à faire disparaitre le curseur de la console et de désactiver le blanking de l'écran. Exécutez les commandes suivantes :

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

Yeah kewl. Lancez la vidéo avec la commande `mplayer -vo mga -fs -screenw 640 -screenh 512 <filename>`
(Si vous utilisez X, passer en matroxfb, par exemple CTRL-ALT-F1 !)
Changez la résoltion de 640x512 selon votre préférence...
Appréciez la sortie Matrox TV ultra-rapide et fonctionnelle (mieux que Xv) !

2.2.1.A.2. Cartes ATI

Quelques mots sur l'ATI TV-out :
Actuellement ATI ne veut supporter aucun de ses chips TV-out chips sous Linux. Ci-dessous la réponse officielle d'ATI Inc.:

`
> Hello!
>
> On your pages you wrote that you support linux developers.
> Currently I participate with mplayer project (www.mplayerhq.hu)
> I'm interesting with enabling TV-out on Radeon VE chips during
> movie playback. I would be glad to add this feature to radeonfb driver
> (which can be found in CVS tree of mplayer project at main/drivers/radeon).
> Do I have a chance to get any official technical documenation?
We will not provide TV out related documents due to macrovision concerns.
Also mpeg2 decoding is something that we MAY consider in the future but not
at this current time. This is again due to proprietary and 3rd party
information.`

Désolant, n'est ce pas ?

`Q : Qu'est ce que la Macrovision ?
A:Un mécanisme de protection contre la copie.`

Ceal signifie que si vous donnez quelque information que ce soit sur les sorties TV-out alors les hackers pourront désactiver la protection contre la copie sur leurs cartes. C'est pourqoi nous ne pouvons pas avoir de TV-out sur ATI.

Quel est le status des chips tv-out de ATI sous Linux :

- ATI Mach64 inclut ImpacTV supporté par gatos.
- ASIC Radeon VIVO inclut Rage Theatre supporté par gatos.
- Radeon VE et Rage PRO LT incluent ImpacTV2+ pas encore supporté sous Linux.

  Heureusement, les possesseurs de machines suffisement puissantes ((Duron, Celeron2 et supérieur) peuvent regarder les vidéos sur leur TV avec les drivers VESA.

  Je pourrais également féliciter ATI Inc.:
  ils produisent des BIOS de haute qualité.

  Les drivers VESA n'utilisent aucune accélération matérielle mais simulent le DGA a travers une fenêtre de 64K, configurée avec les fonctions 32-bit du BIOS.Les cartes ATI possèdent suffisamanet de mémoire vidéo rapide (DIMM ou DDR chips avec accès 64 - 128-bit) donc ne souffrent pas de cette méthode. Il n'existe pas de limitations sur le mode vidéo utilisé pour votre TV (contrairement a d'autres cartes) donc vous pouvez utiliser n'importe lequel sur votre TV (de 320x200 jusqu'a 1024x768).
  La seule chose que vous devez faire - brancher le connecteur connecteur TV avant de démarrer votre PC puisque le bios vidéo s'initialise une seule fois durant la procédure POST.

  Pour plus de détail lisez la section VESA de cette documentation.

  2.2.1.A.3. Voodoo 3

  Consultez cette URL.