# Installation

Un guide d'installation rapide peut être trouvé dans le fichier `README`. Veuillez le lire d'abord et revenir ensuite ici pour le reste des détails.

Dans ce chapitre je vais essayer de vous guider à travers la compilation et la configuration de MPlayer. Ce n'est pas facile, mais pas vraiment difficile non plus. Si vous rencontrez un comportement différent de celui de mes explications, cherchez dans la doc et vous trouverez les réponses. Si vous voyez des liens, suivez-les et lisez attentivement ce qu'ils contiennent. Cela prendra du temps, mais ça en vaut VRAIMENT la peine.

Vous aurez besoin d'un système relativement récent. Sous Linux, les noyaux 2.4.x sont recommandés.

## Logiciels nécessaires

- binutils - la version conseillée est la 2.11.x. Ce programme génère les instructions spécifiques MMX/3DNow!, il est donc très important.

- gcc - les versions conseillées sont les versions 2.95 et 3.3+. Les versions 2.96 et 3.0.x sont connues pour générer du code incorrect. Des problèmes ont également étés rencontré avec les versions 3.1 et 3.2. Sur des plateformes PowerPC, utilisez GCC 4.x+.

- XFree86 - version conseillée : toujours la plus récente (4.3). Normalement, tout le monde veut cela, car à partir de la version 4.0.2, XFree86 contient l'extension XVideo (parfois appelé Xv) qui est nécessaire pour activer l'accélération YUV matérielle (affichage rapide) des cartes qui le supportent. Assurez-vous que ses paquets de développement sont également installés, sinon cela ne fonctionnera pas. Pour certaines cartes, vous n'aurez pas besoin de XFree86. Voir la liste plus bas.

- make - version conseillée : toujours la plus récente (au moins 3.79.x). Ceci n'est en général pas très important.

- FreeType - version 2.0.9 ou supérieure requise pour l'affichage des sous-titres et du OSD (On Screen Display).

- SDL - pas obligatoire, mais peut aider dans certains cas (mauvaise sortie audio, cartes vidéos qui rament avec le pilote xv). Utilisez toujours la version la plus récente. (à partir de 1.2.x).

- libjpeg - décodeur JPEG optionnel, utilisé par l'option `-mf` et certains fichiers QT MOV. Utile pour MPlayer et MEncoder si vous prévoyez de travailler avec des fichiers jpeg.

- libpng - Décodeur (M)PNG par défaut, recommandé. Requis pour l'interface graphique. Utile pour MPlayer et MEncoder.

- lame - recommandé, requis pour l'encodage MP3 audio avec MEncoder, version conseillée : toujours la plus récente (au moins 3.90).

- zlib - recommandé, nécessaire pour les entêtes MOV compressées et le support PNG.

- libogg - optionnel, requis pour lire les fichiers au format OGG.

- libvorbis - optionnel, requis pour lire du OGG Vorbis audio.

- LIVE555 Streaming Media - optionnel, requis pour lire des flux RTSP/RTP.

- directfb - optionnel, téléchargeable depuis . Version 0.9.13+ requise.

- cdparanoia - optionnel, pour le support CDDA

- libxmms - optionnel, pour le support des plugins d'entrée de XMMS. Une version supérieure ou égale à 1.2.7 est requise.

- libsmb - optionnel, pour le support Samba.

- ALSA - optionnel, pour le support de sortie audio ALSA. La version 0.9.0rc4 est le minimal requis.

- bio2jack - optionnel, pour le support de la sortie audio JACK, requis seulement au moment de la compilation. Vous pouvez l'obtenir depuis http://bio2jack.sf.net. Il n'a pas d'options d'installation donc vous devez placer manuellement le fichier `libbio2jack.a` quelque part dans votre chemin de librairies (par ex. `/usr/local/lib`) ou utiliser l'option `--with-bio2jack=DIR` pour dire à `./configure` où se trouve le fichier.

## Cartes graphiques

Il y a généralement deux types de cartes graphiques. Les premières (les cartes les plus récentes) ont un zoom matériel et l'accélération YUV, les autres n'en ont pas.

### Cartes YUV

Vous pouvez afficher et redimensionner (zoom) l'image dans n'importe quelle taille qui tient dans leur mémoire, avec peu d'utilisation processeur (même en zoomant), ainsi la lecture plein-écran est agréable et très rapide.

- Cartes Matrox G200/G400/G450/G550: bien qu'un pilote Vidix soit fourni, il est recommandé d'utiliser le module noyau mga_vid à la place, il fonctionne bien mieux. Voir la section mga_vid pour son installation et son utilisation. Il est important de faire cela avant la compilation de MPlayer, sinon aucun support mga_vid ne sera construit. Voir aussi la section Matrox TV-out. Si vous n'utilisez pas Linux, votre seule possibilité est le pilote VIDIX: lisez la section VIDIX.

- Cartes 3Dfx Voodoo3/Banshee: voir la section tdfxfb pour obtenir une grande accélération. Il est important de faire cela avant la compilation de MPlayer, sinon aucun support 3Dfx ne sera disponible. Si vous utilisez X, utilisez au moins la version 4.2.0, car les pilotes Xv 3dfx sont endommagés dans 4.1.0 et les versions plus anciennes.

- Cartes ATI: un pilote VIDIX est fourni pour les cartes suivantes: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Voir aussi la section Cartes ATI de la documentation TV-out, pour savoir si la sortie TV de votre carte est supportée sous Linux/MPlayer.

- Cartes S3: les chipsets Savage et Virge/DX possèdent l'accélération matérielle. Utilisez la plus récente version de XFree86 possible, les anciens pilotes sont bogués. Les chipsets Savage ont des problèmes avec l'affichage YV12, voir la section Xv S3. Plus anciennes, les cartes Trio n'ont pas ou peu d'accélération matérielle.

- Cartes nVidia: peut être un très mauvais choix pour la lecture vidéo. Si vous n'avez pas une GeForce2 (ou plus récent), il est propable qu'il y ait des bogues. Le pilote intégré à XFree86 ne supporte l'accélération matérielle YUV sur aucune des cartes nVidia. Vous devrez télécharger les pilotes nVidia propriétaires depuis nVidia.com. Voir la section pilote Xv nVidia pour de plus amples détails, voir aussi la section nVidia TV-out si vous souhaitez utiliser une télé.

- 3DLabs GLINT R3 et Permedia3: un pilote VIDIX est fourni (pm3_vid). Reportez vous à la section VIDIX pour plus de détails.

- Autre cartes: Aucune de celles citées plus haut ?

  - Testez si le pilote XFree86 (et votre carte vidéo) supporte l'accélération matérielle. Voir la section Xv pour plus de détails.

  - Si ce n'est pas le cas, alors les fonctionnalités de votre carte vidéo ne sont pas supportées sous votre système d'exploitation :( Si le zoom matériel fonctionne sous Windows, cela ne veut pas dire qu'il fonctionnera sous Linux ou d'autres systèmes d'exploitation: cela dépend des pilotes. La plupart des fabriquants ne font pas de pilotes Linux ni ne diffusent les spécifications de leurs chipsets, donc vous n'avez pas de chance d'utiliser leur cartes. Voir .

### Cartes non-YUV

L'affichage en plein-écran peut être obtenu soit en activant le redimensionnement logiciel (utilisez `-zoom` ou `-vf`, mais je vous préviens: c'est lent), ou passez dans une résolution plus basse, par exemple 352x288. Si vous n'avez pas d'accélération YUV, cette dernière méthode est recommandée. Le changement de mode vidéo peut être activé en utilisant l'option `-vm` et fonctionne avec les pilotes suivants:

- en utilisant XFree86: voir les sections pilote DGA et pilote X11. DGA est recommandé! Essayez aussi DGA via SDL, parfois c'est mieux.

- sans utiliser XFree86: essayez les pilotes dans l'ordre suivant: vesa, fbdev, svgalib, aalib.

### Cartes Cirrus-Logic

- GD 7548: intégré aux cartes mères et testé sur la gamme de portables Compaq Armada 41xx.

  - XFree86 3: fonctionne dans les modes 8/16bpp. Cependant, le pilote est dramatiquement lent et bogué en 800x600@16bpp. Recommandé: 640x480@16bpp

  - XFree86 4: le serveur X se gèle peu après le lancement à moins de désactiver l'accélération matérielle, mais dans ce cas l'ensemble devient plus lent que XFree86 3. Pas de XVideo.

  - FBdev: le framebuffer peut être activé avec le pilote clgenfb dans le noyau, bien que pour moi cela n'est fonctionné qu'en 8bpp, donc inutilisable. L'ID 7548 doit être précisé dans le source clgenfb avant la compilation.

  - VESA: la carte est limité au standard VBE 1.2, donc la sortie VESA ne peut pas être utilisé. On ne peut pas contourner ceci avec UniVBE.

  - SVGAlib: détecte un chips Cirrus plus ancien. Utilisable mais lent avec `-bpp 8`.

## Cartes son

- Soundblaster Live!: avec cette carte vous pouvez utiliser 4 ou 6 canaux AC3 (5.1) au lieu de 2. Voir la section Décodage AC3 logiciel. Pour le transfert AC3 matériel vous devez utiliser ALSA 0.9 avec l'émulation OSS!

- C-Media avec sortie S/PDIF: Le transfert AC3 matériel est possible avec ces cartes, voir la section Décodage AC3 matériel.

- Les Fonctions des autres cartes ne sont pas supportées par MPlayer. Il est fortement recommandé de lire la section cartes son!

## Fonctionalités

- Si vous souhaitez une interface graphique (GUI), lisez la section GUI avant de compiler.

- Si vous voulez installer MEncoder (notre excellent encodeur multi-usages), voir la section MEncoder.

- Si vous possédez une carte tuner TV compatible V4L, et désirez voir/enregistrer et encoder des films avec MPlayer, voyez la section Entrée TV.

- Si vous possédez un carte tuner radio compatible V4L, et désirez écouter et capturer du son avec MPlayer, lisez la rubrique Entrée Radio.

- Il y a un élégant Menu OSD prêt à être utilisé. Regardez la section menu OSD.

Ensuite compilez MPlayer:

    ./configure
    make
    make install

A ce point, MPlayer est prêt à fonctionner. Le répertoire `$PREFIX/share/mplayer` contient le fichier `codecs.conf`, qui est utilisé pour donner au programme la liste des codecs et de leurs capacités. Ce fichier n'est requis que si vous voulez changer ses propriétés, car le binaire principal en contient une copie interne. Vérifiez si vous avez un `codecs.conf` dans votre répertoire personnel (`~/.mplayer/codecs.conf`) provenant d'une ancienne installation de MPlayer, et supprimez-le.

Notez que si vous avez un `codecs.conf` dans `~/.mplayer/`, les fichiers `codecs.conf` du système ou celui intégré seront complètement ignorés. Ne faites pas cela à moins de vouloir jouer avec le fonctionnement interne de MPlayer car cela peut poser des problèmes. Si vous voulez changer l'ordre de recherche des codecs, utilisez les options `-vc`, `-ac`, `-vfm`, ou `-afm` soit en ligne de commande soit dans votre fichier de config (voir la page de man).

Les utilisateurs Debian peuvent construire un paquet .deb pour leur propre usage, c'est très simple. Exécutez

    fakeroot debian/rules binary

dans le répertoire racine de MPlayer. Voir Création de paquets Debian pour de plus amples instructions.

Regardez toujours le listing généré par `./configure`, ainsi que le fichier `configure.log`, ils contiennent des informations sur ce qui sera compilé, et ce qui ne le sera pas. Vous pouvez également consulter les fichiers `config.h` et `config.mak`. Si vous avez quelques librairies installées, mais pas détectées par `./configure`, alors vérifiez que vous avez les fichiers d'en-tête (généralement les paquets -dev) et que leur version correspond. Le fichier `configure.log` vous dit généralement ce qui manque.

Bien que n'étant pas indispensables, les polices peuvent être installées pour l'affichage de l'OSD, et le support des sous-titres. La méthode recommandée est d'installer un fichier de police TTF et de dire à MPlayer de l'utiliser. Voir la section Sous-titres et OSD pour les détails.

## À propos de l'interface graphique

La GUI à besoin de GTK 1.2.x ou GTK 2.0 (elle n'est pas entièrement basée dessus, mais les menus le sont). Les skins sont stockées au format PNG, donc GTK, libpng (ainsi que leurs paquets de dev, généralement nommés gtk-dev et libpng-dev) doivent être installés. Vous pouver la compiler en spécifiant l'option `--enable-gui` durant l'étape `./configure`. Ensuite, pour l'activer vous devrez exécuter le binaire `gmplayer`.

Actuellement vous ne pouvez pas utiliser l'option `-gui` en ligne de commande, ceci pour des raisons techniques.

MPlayer n'ayant pas de skin par défaut, vous devrez la télécharger si vous voulez utiliser la GUI. Voir la page des téléchargements. Elles pourront se placer dans le répertoire commun (`$PREFIX/share/mplayer/skins`), ou dans `$HOME/.mplayer/skins`. Par défaut, MPlayer consulte ces répertoires à la recherche d'un répertoire nommé `default`, mais vous pouvez utiliser l'option `-skin nouvelleskin`, ou placer `skin=nouvelleskin` dans votre fichier de configuration pour utiliser la skin dans le répertoire `*/skins/newskin`.

## Polices et OSD

Vous devez spécifier à MPlayer quelles polices utiliser pour l'OSD et les sous-titres. N'importe quelle police TrueType ou Bitmap devrait faire l'affaire. Cependant, les polices TrueType sont recommandés car elles ont un bien meilleur aspect, peuvent être mises à l'échelle correctement et gèrent mieux les différents jeux de caractères.

### Police TrueType

Il y a deux façons de rendre les polices TrueType opérationnelles. La première est de spécifier le nom du fichier de la police TrueType à utiliser grâce à l'option `-font`. Il peut être interessant de placer cette option dans votre fichier de configuration (voir la page de manuel pour plus de détails). La seconde façon est de créer un symlink baptisé `subfont.ttf` pointant vers le fichier contenant la police de votre choix. Pour choisir une police commune à tous les utilisateurs, tapez

    ln -s /path/to/sample_font.ttf $PREFIX/share/mplayer/subfont.ttf

Pour définir une police propre à chaque utilisateur, tapez

    ln -s /path/to/sample_font.ttf ~/.mplayer/subfont.ttf

La compilation de MPlayer avec le support pour fontconfig rend les méthodes ci-dessus inopérantes. En effet, MPlayer s'attend à ce que `-font` soit suivi d'un nom de police compatible avec fontconfig. Pour obtenir la liste des polices compatibles avec fontconfig, executez `fc-list` dans la console. Un exemple:

    mplayer -font 'Bitstream Vera Sans' anime.mkv

### Polices Bitmap

Si pour une raison quelconque vous souhaitez ou devez employer des polices bitmap, téléchargez en un jeu depuis notre page web. Vous avez les choix entre différentes polices ISO et quelques autres polices développées par des utilisateurs supportant plusieurs encodages.

Décompressez le fichier que vous avez téléchargé dans le répertoire `~/.mplayer` ou dans `$PREFIX/share/mplayer`. Ensuite, renommez ou symlinkez l'un des répertoire ainsi créé vers le sous-repertoire `font`. Exemple:

    ln -s ~/.mplayer/arial-24 ~/.mplayer/font

    ln -s $PREFIX/share/mplayer/arial-24 $PREFIX/share/mplayer/font

Les polices doivent disposer d'un fichier `font.desc` associant les positions des caractères unicode à l'encodage (NdT: code page) utilisé par le sous-titre. Les autres solutions sont d'encoder les sous-titres en UTF-8 et d'utiliser l'option `-utf8` ou de nommer les fichiers contenant les sous-titres `<nom_de_la_video>.utf` et de les placer dans le répertoire de la vidéo.

### Menu OSD

MPlayer possède une interface de menu OSD complètement modulable.

Le menu des préférences n'est PAS IMPLÉMENTÉ pour l'instant!

Installation

1. compilez MPlayer en passant le paramètre `--enable-menu` à `./configure`

2. assurez-vous que les polices OSD sont installées

3. copiez `etc/menu.conf` dans votre répertoire `.mplayer`

4. copiez `etc/input.conf` dans votre répertoire `.mplayer`, ou dans le fichier de config globale de MPlayer (par défaut: `/usr/local/etc/mplayer`)

5. trouvez et éditez `input.conf` pour activer les touches correspondants aux mouvements dans le menu (c'est décrit sur place).

6. lancez MPlayer avec par exemple:

       $ mplayer -menu fichier.avi

7. pressez n'importe laquelle des touches menu que vous avez défini

## RTC

Il y a trois méthodes de synchro dans MPlayer.

- Pour utiliser l'ancienne méthode, vous n'avez rien à faire. Elle utilise usleep() pour régler la synchro A/V, avec une précision de +/- 10ms. Cependant parfois la synchro doit être réglé encore plus finement.

- Le nouveau code de synchro utilise la RTC (Real Time Clock) du PC pour cette tâche, car elle à des timers précis à 1ms près. Utilisez l'option `-rtc` pour l'activer. Notez d'un noyau correctement configuré est requis. Si vous executez une version du noyau supérieure ou égale à 2.4.19pre8, vous pouvez ajuster la fréquence maximale (de la RTC) accessible aux utilisateurs normaux grace au système de fichiers /proc . Pour ceci, les commandes suivantes sont à votre disposition:

      echo 1024 > /proc/sys/dev/rtc/max-user-freq

  ou

      sysctl dev/rtc/max-user-freq=1024

  Vous pouvez rendre ce réglagle permanant en ajoutant la seconde commande au fichier `/etc/sysctl.conf`.

  Vous pouvez voir l'efficacité du nouveau timer sur la ligne d'état. Les fonctions de gestion de l'énergie des BIOS des certains portables avec des processeurs supportant SpeedStep ne font pas bon ménage avec la RTC. Le son et les images risquent d'être désynchronisés. Brancher le portable sur le secteur avant de le démarrer semble régler le problème dans la plupart des cas. Avec certaines combinaisons de matériels (particulièrement: lecteurs DVD ne supportant pas le DMA et cartes-mère basé sur le chipset ALi1541), l'utilisation du timer RTC rend la lecture irrégulière (NdT: skippy).

- La troisième méthode de synchro est activée par l'option `-softsleep`. Il à la précision de la RTC, mais n'utilise pas la RTC. D'un autre côté, il nécessite plus de CPU.