[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] mini-Howto divx



salut,

Que ce soit sur mon site ou dans cette liste, une question qui revient
régulièrement, c'est "comment regarder des divx sous Linux"... Voici
donc, un espèce de mini-Howto la dessus... Je le mettrai sur mon site
quand il sera plus complet, mais en attendant, le voici en
avant-beta-test ;)

Je le poste ici en espérant recevoir des commentaires, des corrections,
des ajouts, ...

N'hésitez pas à m'envoyer votre config matériel pour faire une liste de
configs sur lesquels les divx tournent correctement.

Merci d'avance

@+,
binny

-- 

[12:46] <Acid-Drop> mais word est plus puissant :) [que le pdf]
		-- Acid-Drop

Benjamin Michotte        <binny@baby-linux.net>
web      : http://www.baby-linux.net
homepage : http://www.baby-linux.net/binny
icq uin  : 99745024
mini-HOWTO-DivX
---------------

1. Avant-Propos.
	Ce mini HOWTO est réalisé sur base du HOWTO du logiciel Xine 
	(http://www.srcf.ucam.org/~rjw57/xine) ainsi que de ma propre expérience.
	Veuillez m'envoyer tous vos commentaires, corrections ou apports à 
	binny@baby-linux.net.

2. "Configuration requise".
	La décompression du format DivX ;-) étant relativement gourmande, je ne pense
	pas qu'il sera possible de regarder des DivX sur un 486/16Mb avec une carte 
	VESA.
	Ma configuration est la suivante: Pentium2-350 o/c 400, 320Mb de RAM, carte
	ATI Rage Fury 128 avec 32Mb de mémoire.
	La lecture des DivX fonctionnait très bien également lorsque je n'avais que
	128Mb de RAM.

	La carte graphique sera de préférence AGP (si vous avez des infos sur les cartes PCI, 
	veuillez me contacter à l'adresse email donnée ci-dessus).
	Ayant avant eu un Celeron 300 o/c 375 et ayant rencontré de grosses difficultés
	pour lire les films avant, je pense que la configuration donnée est la 
	minimum pour une vision correcte et décente des DivX.

	La version de XFree sera au minimum 4.0 et votre kernel de préférence 2.4.x (mais la
	plupart des supports à ajouter sont présents depuis la version de Linux 2.2.17, du
	moins, je pense ;p).

3. Kernel.
	Grâce au kernel, il est possible d'améliorer la lecture.

	Dans votre kernel, il faut notamment ajouter le support MTRR (Memory Type Range 
	Register). Reportez-vous au fichier /path/to/kernel/Documentation/mtrr.txt pour la 
	documentation à ce propos.
	Cela se trouve dans l'option Processor type and features
	[*] MTRR (Memory Type Range Register) support

	Il "faut" également ajouter le support pour votre bus AGP.
	Pour cela, rendez-vous dans "Character devices" et cocher (à votre préférence en module
	ou en "dur")
	<*> /dev/agpgart (AGP Support)
	ainsi qu'une des options suivantes selon votre bus (pour toutes infos concernant votre
	chipset AGP, reportez-vous à la documentation de votre carte mère).
	[ ]   Intel 440LX/BX/GX and I815/I840/I850 support
	[ ]   Intel I810/I815 (on-board) support
	[ ]   VIA chipset support
	[ ]   AMD Irongate support
	[ ]   Generic SiS support
	[ ]   ALI chipset support
	[ ]   Serverworks LE/HE support

	Ajoutez également le support de votre carte graphique (si elle se trouve dans la liste)
	mais ajoutez surtout le support pour le DRI (Direct Rendering Manager)
	[*] Direct Rendering Manager (XFree86 DRI support)
	et pour les cartes (liste relativement restreinte (pour l'instant  ?)) :
	< >   3dfx Banshee/Voodoo3+
	< >   3dlabs GMX 2000
	< >   ATI Rage 128
	< >   ATI Radeon 
	< >   Intel I810
	< >   Matrox g200/g400
	Cette dernière option donnera une _accélération_ graphique à votre carte qui sera 
	également utile pour certains jeux.

	Je vous renvois au kernel-HOWTO pour la compilation du kernel et son installation.

4. XFree.
	Comme je l'ai précisé précedemment, votre version de XFree doit être supérieur à 4.0 
	pour avoir le support du DRI (il est possible de le mettre en place également sur une 
	version 3.x, mais ces versions n'ont (presque) aucun support d'accélération).
	Voyez sur http://dri.sourceforge.net pour plus d'informations sur le DRI.

	Pour ce qui est de XFree, reportez-vous à la documentation concernant votre carte sur
	le site de XFree (http://www.xfree86.org)
	Quelque soit votre carte, vous devez avoir dans le section "Module"
	 Load       "dri"
	Vous devez également avoir une section DRI comme suit
	Section "DRI"
		 Mode 0666
	EndSection
	La section pour votre carte doit ressembler à quelque chose comme
	Section "Device"
		Identifier  "ATI Rage 128 Pro"
		Driver      "r128"
		ChipId      0x5246
		VideoRam    32768
		Option      "AGPMode" "2"
		Option      "DPMS"
	EndSection

	16 bpp de couleurs devraient être préféré aux modes 24bpp et 32bpp car ce mode est moins
	"gourmand" en ressources CPU (forcément, il y a moins de couleurs à gérer).

	Il est conseillé également d'ajouter l'extension XVideo. Cette extension est actuellement
	supportée par les cartes suivantes:
	- 3DFX Voodoo 3
	- nVidia GeForce
	- nVidia TNT1 et TNT2
	- ATI
	- Matrox Gx00 
	- Intel i810 et i815
	- Savage
	Pour les cartes nVidia, le module est disponible sur http://www.nvidia.com/, pour les 
	cartes ATI, vous trouverez ce qu'il faut sur http://www.linuxvideo.org/ sous le nom
	de "projet GATOS" et pour les cartes Savage, consultez http://www.probo.com/timr/savage40.html

	Si l'extension XVideo est correctement installée, le programme xvinfo devrait vous donner
	quelque chose comme
	X-Video Extension version 2.2
	screen #0
  	Adaptor #0: "ATI Rage128 Video Overlay"
    	number of ports: 1
    	port base: 50
    	operations supported: PutImage 
    	supported visuals:
      	depth 24, visualID 0x23
      	depth 24, visualID 0x24
      	depth 24, visualID 0x25
      	depth 24, visualID 0x26
      	depth 24, visualID 0x27
      	depth 24, visualID 0x28
      	depth 24, visualID 0x29
      	depth 24, visualID 0x2a
    	number of attributes: 13
      	"XV_SET_DEFAULTS" (range 0 to 1)
              client settable attribute
      	"XV_AUTOPAINT_COLORKEY" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      	"XV_COLORKEY" (range 0 to -1)
              client settable attribute
              client gettable attribute (current value is 66051)
      	"XV_DOUBLE_BUFFER" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      	"XV_ENCODING" (range 0 to 12)
              client settable attribute
              client gettable attribute (current value is 1)
      	"XV_FREQ" (range 0 to -1)
              client settable attribute
              client gettable attribute (current value is 1000)
      	"XV_MUTE" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      	"XV_HUE" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      	"XV_BRIGHTNESS" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      	"XV_SATURATION" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      	"XV_COLOR" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      	"XV_CONTRAST" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      	"XV_VOLUME" (range 1 to 127)
              client settable attribute
              client gettable attribute (current value is 1)
    	maximum XvImage size: 2048 x 2048
    	Number of image formats: 4
      	id: 0x32595559 (YUY2)
        	guid: 59555932-0000-0010-8000-00aa00389b71
        	bits per pixel: 16
        	number of planes: 1
        	type: YUV (packed)
      	id: 0x59565955 (UYVY)
        	guid: 55595659-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)
      	id: 0x30323449 (I420)
        	guid: 49343230-0000-0010-8000-00aa00389b71
        	bits per pixel: 12
        	number of planes: 3
        	type: YUV (planar)

	Si c'est bon, vous devrez aussi charger le module v4l (Video4Linux). Testez avec 
	'xdpyinfo | grep XV'. Si vous obtenez 'XVideo', alors vous pouvez ajouter 
	Load "v4l" dans la section modules de votre configuration.

5. En plus.
	Le HOWTO de Xine explique également comment optimiser vos accès aux disques durs
	ou comment 'booster' votre RAM. Ces options pouvant être dangereuses pour votre 
	matériel, je ne les conseille pas. Toutefois, si vous n'avez pas peur d'endommager
	votre matériel, reportez-vous à cette documentation.

6. Les codecs Windows.
	Le projet Avifile dispose de dll provenant de windows. Ces dll servent à la décompression
	du format DivX ;-). Elles sont disponibles sur le site de Avifile (http://divx.euro.ru/).
	Vous pouvez également ajouter les dll provenant du projet mplayer. Ces dll sont disponibles
	sur http://mplayer.sourceforge.net.
	Ces fichiers sont tous à installer dans /usr/lib/win32.

7. Les lecteurs.
	Il existe plusieurs projets de lecteurs DivX sous Linux.
	Le premier est avifile (http://divx.euro.ru/) mais dans sa version actuelle, il ne permet
	pas une lecture décente des films.
	Ensuite, vous avez Xine (http://xine.sourceforge.net). Bientôt en version 0.5, il permet
	actuellement une lecture _quasi_ parfaite sur ma configuration. De plus, Xine, permet la
	lecture de DVD (non cryptés).
	Finalement, il y a mplayer, (http://mplayer.sourceforge.net/) actuellement en version 
	0.18pre qui permet déjà une lecture vraiment plus que _quasi_ parfaite.

	Grâce à XFree 4.x, vous pourrez regardez vos DivX en plein écran (appuyez sur f dans Xine ou lancez 
	mplayer avec les options '-fs -vm -zoom').

	Il existe aussi d'autres projet (avi-xmms, xmps, ...) mais ces projets ne sont pas encore
	suffisamment avancés ou demandent trop de ressources systèmes dans leur version actuelle.