PRÉAMBULE. VIDIX est l'abréviation de VIDéo Interface for *niX. VIDIX a é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 existe 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. Pour vous débarrasser du texte sur les bords et du curseur clignotant essayez
setterm -cursor off > /dev/tty9
(en supposant que le terminal tty9
n'est pas
utilisé), puis basculez sur tty9
.
Sinon, l'option -colorkey 0devrait lire la vidéo en
arrière-plan, un tant soit peu que la fonctionnalité de
-colorkey soit opérationelle.
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.
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, si vous utilisez un noyau Linux 2.4.x, vous pouvez utiliser un module noyau spécial, comme ceci :
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.
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.
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.
Puis lancez de nouveau configure en passant les paramètres --enable-svgalib_helper et --extra-cflags=/path/to/svgalib_helper/sources, ajustés à l'emplacement où vous avez décompressé les sources.
Recompilez.
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.
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
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.
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.
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 -vo cvidix exemple.avi