Lire des vidéos

De Lea Linux
Révision datée du 14 octobre 2005 à 19:00 par PingouinMigrateur (discussion | contributions) (conversion de la documentation originale de Léa par HTML::WikiConverter)
Aller à la navigation Aller à la recherche

DiVX ;-) et ses amis

DiVX ;-) et ses amis
BRARD Emmanuel
Révision par Jice <jice chez lea-linux point org>
Installer le nécessaire pour lire les videos au format divx ;-), mpeg...
Afin d'extraire un DVD et de le coder en Divx sous Linux, je vous conseille la lecture de cet excellent article.

Et bien oui !
Linux est aussi un média OS : il est tout à fait possible de lire des divx, des fichiers avi, des fichiers mpeg , etc. sous linux. L'avantage majeur, encore une fois, de linux ; c'est qu'il existe plusieurs solutions pour faire ceci.
Ici je vais détailler l'installation et l'optimisation des trois meilleurs (à mon avis) players :

  • : Aviplay est le player livré par défaut dans l'archive d' avifile.

Il existe aussi XMPS - qui malheureusement à mon avis n'est pas encore assez développé pour être correctement utilisable - et encore d'autres players.

Les choses ayant bien évolué depuis le 27 octobre 2001 (date du premier article), il est maintenant possible de voir ses divx avec une "petite configuration", par exemple un P2 350, 128 Mo de RAM, et une carte graphique moyenne gamme (ex : Voodoo Banshee).
Pour le k6 200, et une petite carte (ex : ATI Rage 2C), ça arrive, patience ;)
 

Avertissement :
Au même titre que la copie de CD audio, la copie de DVD (en DIVX ;-) ou tout autre format) n'est autorisée par la loi que pour l'utilisation privée du copiste.
La loi n'autorise en aucun cas le libre téléchargement de films codés en DIVX (ou autre) sur Internet.

Présentation

Commençons d'abord par une description de ces trois lecteurs, avec une petite comparaison :

Aviplay

Aviplay est un lecteur extrêmement puissant. Il possède une interface graphique écrite en QT2 (la librairie graphique de KDE), vous devez donc installer ces librairies si ce n'est pas déjà fait.
Il est possible de l'optimiser pour le processeur, pour la librairies SDL installée, ainsi que pour les cartes graphiques Matrox G400.
Il sait utiliser MTRR.
Toute la configuration du lecteur se fait dans un boîte de dialogue à l'intérieur de l'interface graphique.
Aviplay peut volontairement faire avancer la bande son plus ou moins vite, afin de rester synchronisé avec les images.

MPlayer

Ce lecteur est tout simplement génial, aussi puissant que l'autre, il possède lui aussi une interface graphique thèmable !
Il est optimisable pour les jeux d'instructions des processeurs (MMX, SSE, 3DNow...), pour la librairie SDL installée, et comme aviplay utilise MTRR.
Sa configuration se fait dans un fichier de configuration ou directement en ligne de commande.
A l'instar de Aviplay, MPlayer peut utiliser plusieurs drivers de sortie comme le DGA, SDL, X11, et même le frame buffer.
Il peut comme Aviplay être optimisé pour un certain nombre de cartes comme par exemple la 3dfx Banshee et Voodoo 3000, les Matrox G200, G400, et les cartes NVidia.
Il support aussi l'utilisation des sorties TV.
MPlayer sait sauter des frames (images) du film afin de rester synchronisé avec le son.
Il peut aussi changer sa priorité avec l' option -auto.

Xine

(rédigé par Jice) Xine est aujourd'hui arrivé au même niveau technique que ses concurrents, et possède une bonne interface graphique que je trouve plus intuitive que celle de mplayer. Il est très simple à installer, léger et performant ; configurable en mode graphique ou en ligne de commande, et avec les plugins d5d j'arrive à lire tous les DVD ; bien sûr, le Divx ;-) est bien supporté. Après avoir activé la sortie Xv (ajouter "-V Xv" à la ligne de commande), la lecture a été parfaite et ne consomme pas beaucoup de CPU.

Conclusion

Ces deux visionneurs sont très similaires, et sont aussi performants l'un que l'autre.
Mplayer peut utiliser plusieurs drivers de sortie.
Aviplay cherche à toujours avoir une bonne qualité d'image.
Xine est équivalent à Mplayer, et très simple à installer.
Ce sera donc encore une fois à l'utilisateur de choisir. Personnellement je préfère garder les deux : si l'un ne lit pas correctement un film, j'essaie avec l'autre. De plus, mplayer sait se lancer sans interface graphique : c'est un plus pour [../trucs/?aff_item=164 écouter les radios en ligne au format Windows média player] :-)
Précision : Xine, contrairement à Mplayer sait lire les menus DVD  

Pré-requis

Vous allez avoir besoin d'un certain nombre de librairies pour pouvoir utiliser ces players, elles devraient normalement être disponibles sur le CD d'installation de votre distribution, ou sur RPMfind.net pour les rpm, et sur les mirroirs Debian pour les .deb .
Pour Mandrake 8.2 et supérieures, nous vous conseillons d'installer la source urpmi du Penguin Liberation Front ainsi qu'ils l'expliquent sur leur page d'accueil , l'installation de mplayer, aviplay ou xine (y compris les plugins pour lire les Divx ;-) et les DVD cryptés) est ensuite immédiate : urpmi mplayer ou urpmi d5d par exemple suffisent.

Attention : pour Mplayer, les utilisateurs de Mandrake 8.x et de Redhat 7.x doivent changer leur version du compilateur GCC qui est en 2.96 pour une version antérieur ou suppérieur (bien qu'il soit conseillé de ne pas utiliser les versions 3.x).

Vous devez donc avoir sur votre machine :

  • binutils
  • gcc : version de 2.95.2 à 2.95.4
  • XFree86, toujours la dernière version possible (sauf vielles cartes vidéo)
  • make
  • SDL (1.2.x, recommandée)
  • Win32 codecs (disponible sur le site de MPlayer et d'avifile)
  • QT 2 et QT2-devel (seulement pour aviplay)
  • Setcd, seulement pour les lecteurs de cdrom rapides (à partir de 32x)

Note de Jicé : pour savoir si un logiciel est installé sur votre système, avec rpm essayez la commande "rpm -qa | grep le_logiciel" (voir l'[rpm.php3 article sur rpm] ). Pour les distributions basées sur d'autres types de paquetages (.deb, .tgz), vous devez avoir une commande équivalente.

Vous pouvez avoir besoin de librairies spécifiques si vous voulez optimiser Mplayer ou Avifile pour votre carte, ou pour la capture par video4linux.
Je vous conseille donc d'aller sur leur site respectif pour avoir la liste complète.
 

Installation

Pour les distributions Mandrake 8.2 et supérieures, le plus simple est d'utiliser la base urpmi du PLF (voir plus haut), qui dispose des logiciels, des codecs, des plugins prêts à installer.

Installation des codecs

(les codecs sont disponibles sur les sites des players)

Il suffit de décompresser l'archive win32codecs.zip et de copier tous les fichiers dans le nouveau repertoire /usr/lib/win32/ .
Pour ce qui est de DivX4linux, de même, décompresser l'archive puis copier le fichier libdivxdecore.so.0.0.0 dans /usr/local/lib puis créer les liens dans ce répertoire : libdivxdecore.so.0 et libdivxdecore.so.
Puis taper ldconfig pour faire prendre an compte la nouvelle librairie au système.

Installation des players

Pour installer les players, il suffit de les compiler :

  1. Décompressez l'archive,
  2. lancez ./configure dans le nouveau répertoire obtenu,
  3. tapez make pour le compiler (créer le binaire),
  4. puis tapez make install, pour l'installer sur le système.

MPlayer

Si vous êtes sous Mandrake et que vous ne voulez pas toucher à gcc utiliser plutôt ./configure --disable-gcc-checking
Pour utiliser l'interface graphique vous devez rajouter ./configure --enable-new-gui
Si vous avez les connaissances suffisantes, vous pouvez encore plus optimiser le binaire pour le processeur en éditant le fichier Makefile et en mettant les nouveaux tags de compilation.

Vous pouvez désormais utiliser les librairies divx4linux ; il suffit de télécharger l'archive et de lancer le script install.sh
MPlayer trouvera ces librairies lors de sa compilation, pendant l'éxécution du script ./configure
Attention, ses librairies ne sont pas libres : le code source n'est pas disponible (closed-source) !

Vous pouvez aussi utiliser les librairies fournies par le projet ffmpeg .
Mais ici, une fois son archive décompressée, il faut copier le repertoire libavcodec dans l'arbre de MPlayer :
cp -rf /app/ffmpeg/libavcodec /app/MPlayer-0.60pre2/
Comme pour la librairie divx4linux, MPlayer les trouvera lors de l' éxécution du ./configure

Aviplay

Pour celui-ci, rien de particulier, sinon que dans le cas d'une distribution SuSe vous devrez sûrement lui dire où se trouvent les librairies QT (c'est expliqué dans le fichier INSTALL).

Xine

Si vous souhaitez le compiler, il n'y a rien de spécial. Récupérez les fichiers source xine-lib et xine-ui, ainsi que les sources des plugins, et pour chacun, un simple ./configure ; make ; make install est suffisant. Vous pouvez activer plus ou moins d'options via le ./configure, tapez ./configure --help pour les connaître.

Dans tous les cas : n'oubliez pas de lire les fichiers README et INSTALL !!!

Les librairies

Je vous recommande nettement d'installer la librairie ffmpeg, qui offre la meilleure qualité de lecture.
Cette librairie est dite plus performante que la librairie propriétaire divx4linux par l'équipe de MPlayer.
N'oubliez pas que ce sont ces librairies qui permettent aux logiciels de lire les différents formats audio/vidéo, c'est pourquoi vous devez, comme expliqué les haut, les compiler/installer.
Divx4linux marche aussi bien avec MPlayer qu'aviplay, par contre je n'ai pas testé ffmpeg avec aviplay.
 

Utilisation

Aviplay

Pour pouvoir lancer une vidéo avec aviplay, il vous suffit de taper : aviplay.
Une fenêtre s'ouvre et vous propose de choisir un fichier.
La configuration se fait en appuyant sur "?" puis sur "Config" :

  • Vidéo
    Ici seront placées les options pour l'accélération vidéo, en général dans le cas d'un PC minimum (pour la lecture de divx), c'est à dire un K6-200 34mo de ram, il faut tout cocher.
  • Audio
    Rien à mettre ici de plus que ce qui y est déjà.
  • ...

La conception d'aviplay est faite pour que vous puissiez directement lire vos fichiers, sans rien configurer, une option est pourtant à mon avis utile :

  • Sync
    C'est avec cette option que l'on va pouvoir essayer de garder la synchronisation.
    Il suffit de placer audio/vidéo synchronisation, vers la gauche si l'image est le son est "en avance" , et inversement à droite s'il est "en retard".

MPlayer

Pour celui ci, il y a beaucoup plus d'option, déjà avec l'option "-vo" on peut choisir son driver de sortie parmi :

  • tdfxfb, le support frame buffer pour les cartes 3dfx citées au début du document
  • xv
  • x11, en mode fenêtre à utiliser avec sdl : "-vo sdl:x11"
  • gl, utilisation de l'OpenGl
  • dga, utilisation du DGA (Direct Graphic Access) vous devez posséder les droits root
  • sdl
  • fbdev, utilisation du frame buffer standard
  • png
  • null Null video output

Avec l'option -vc" on peut utiliser un codec particulier pour un driver :

  • odivx (OpenDIVX) , plus rapide, de meilleur qualité
  • divx4, (OpenDIVX/DIVX4) peut être préférable au précédent

On peut aussi essayer de grader la synchronisation avec l'option "-framedump", MPlayer sautera des frames du film pour garder le son synchro.

On indique à MPlayer d'utiliser XFree86 et le getmodeline pour changer de résolution avec "-vm", ce qui permet d'avoir entre autres des résolutions non indiquées dans le fichier de configuration d'XFree86.

Par exemple :
mplayer -framedump -vm -vo sdl /mnt/cdrom/Le\ pacte\ des\ loups\ -\ Divx\ Francais\ -\ SAVUKA\'S\ BOARD\ -\ CD1.avi

Si vous voulez utiliser l'interface graphique il suffit d'ajouter "-gui".

Mplayer sait également effectuer sa sortie audio sur les démons de son de KDE (arts) ou Gnome (esd) (ces démons permettent de mixer plusieurs sons qui peuvent ainsi être joués simultanément). Il suffit d'ajouter l'option -ao arts ou -ao esd à la ligne de commandes. Pour connaître les possibilités de cette option, ajouter -ao help.

Xine

Xine dispose également de nombreuses options, que vous pouvez régler soit en mode graphique (cliquez sur la petite clef sur l'interface de contrôle) soit en ligne de commande.
Une particularité que je trouve excellente de Xine est de se rappeler les options que vous avez passées sur la ligne de commande. Par exemple, pour lui dire d'utiliser la sortie video Xv, vous tapez une première fois xine -V Xv ; les fois suivantes, il ne sera plus nécessaire d'ajouter l'option à la ligne de commande !

Le plus simple est de lancer xine sans arguments, tout peut ensuite se jouer à la souris (même utiliser le glisser déposer pour lancer un fichier !). Ou vous pouvez taper xine mon_divx.avi et le tour est joué.

Xine sait utiliser les démons de son de KDE (arts) ou Gnome (esd). Pour ce faire, utilisez une fois l'option de ligne de commande -A arts ou -A esd.

xine --help vous donnera de plus amples informations sur toutes les options disponibles, mais explorez aussi son interface graphique.

Optimisations

Optimisation du lecteur cdrom:
Les lecteurs rapides peuvent se mettre "en attente" pendant la lecture, le problème est qu'en général ils sont longs à se remettre en service.
Ils peuvent aussi tout simplement vouloir changer leur vitesse de rotation, ce qui pendant quelques secondes va geller le film.
Pour éviter ceci on peut utiliser un petit programme qui permet de "fixer" la vitesse du lecteur, il s'agit de setcd (setcdrom) disponible par un recherche sur Freshmeat .

Optimisation de Xfree 3.3.6/4.x et mise en place du MTRR (XF3.3.6) :
Pour XFree86 3.3.6 par grand chose à dire, le DGA (Direct Graphics Access) est déjà prêt.
Il faut juste rajouter des résolutions (et les modelines correspondantes) pour pouvoir changer de résolution.

Pour XFree86 4.x vous devez seulement vérifier que le DRI (Direct Rendering Interface), le GLX (seulement pour MPlayer et l'option -vo gl), et surtout le DGA ( option -vo dga, ou -vo sdl:dga) sont actifs, car XF4.x peut changer tout seul de résolution même si elles ne sont pas déclarées.

Dans le fichier /etc/X11/XF86Config* :
 

XFree86 4.x     XFree86 3.3.6

Section "Module"
Load "dbe"
Load "glx"
Load "dri" 
SubSection "extmod"
#Option "omit xfree86-dga" 
# ici le DGA sera activé !!!!!!!!!
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection


...
Subsection "Display"
Depth 16 # 16 ou 32 selon la puissance de votre carte 
Modes "800x600" "640x480" "720x480"
ViewPort 0 0
EndSubsection

Pour le MTRR et XFree 3.3.6 (le 4 le fait tout seul) :
Faites :
Soit "cat /proc/pci" ou "lspci"
ex :


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


Ensuite, il suffit de remettre l'adresse et le type de la mémoire dans /proc/mtrr :
[emman@funky emman] % echo "base=0xd8000000size=0x2000000 type=write-combining" >| /proc/mtrr
 

Correspondance mémoire
1 MB 0x100000
2 MB 0x200000
4 MB 0x400000
8 MB 0x800000
16 MB 0x1000000
32 MB 0x2000000

Vous pouvez ensuite vérifier :
ex :
[emman@funky emman] % cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
 

FFMPEG et MPlayer
Il est conseillé pour celui-ci de forcer MPlayer à utiliser cette librairie en éditant le fichier ~/.mplayer/codecs.conf
Vous devez supprimer tout ce qui concerne ffmpeg12 :
...
videocodec ffmpeg12
info "FFmpeg-1"
status working
format 0x10000001 ; mpeg 1
format 0x10000002 ; mpeg 2
fourcc mpg1,mpg2
driver ffmpeg
dll "mpegvideo"
out YV12
...

Conclusion

Grâce aux travaux des différentes équipes : MPlayer, Xine, ffmpeg, , win32codecs... il est maintenant possible de visionner la plupart des Divx ;-) avec au minimum un Pentium II (ou équivalent) à 350Mhz, 128 Mo de Ram, et une carte video qui possède 16 mo, et ceci sans utiliser le "framedump" (i.e. le saut d'images).

Il faut aussi souligner qu'il existe sous Linux de nombreuses optimisations offertes par exemple par le processeur (jeux d'instructions MMX, SSE, 3DNOW), par XFree (DGA, DRI, GLX, MTRR), et par les librairies (SDL) qui pour une meilleure qualité doivent être compilées.

Pour utiliser corectement le visionneur de votre choix, n'hésitez pas à aller sur son site, et à bien lire sa doc !

(c) 2001-2002 BRARD Emmanuel, emman@agat.net  - 2002 Jean-Christophe Jice Cardot, jice chez lea-linux point org
Ce document est sous license GNU FDL.

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par BRARD Emmanuel le 20/10/2001.

Copyright

Copyright © 20/10/2001, BRARD Emmanuel

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale.


Autres ressources