Compilation de mplayer sous Linux

mplayer

Compilation de mplayer sous Linux

Introduction

Ce tutoriel est une transcription à ma sauce du fichier http://www.mplayerhq.hu/DOCS/README. Il s'agit d'installer mplayer à partir des sources.

Un petit rappel (Que les informaticiens chevronnés me reprennent...)

Un ordinateur travaille en mode binaire, il ne lit pas les programmes écrits dans un langage informatique plus ou moins lisible par l'être humain. On appelle sources d'un programme, un programme qui peut être lisible par un éditeur de texte et par vous si vous connaissez le langage utilisé. Pour le rendre lisible par un ordinateur, il subit une étape de compilation. Il devient un programme compilé. La compilation nécessite l'utilisation d'un compilateur spécifique de votre système d'exploitation et de votre architecture de processeur.
Sur les distributions Linux sur processeur i486, cela veut dire que vous avez la suite logicielle gcc (pour GNU compiler collection) installé.

Les différentes installations possible sous Linux

    A partir des sources
L'intérêt est que vous optimisez le programme en fonction de votre système et de vos besoins en précisant les bons paramètres lors de la compilation. Vous mettez les mains dans le cambouis (pour ceux qui comme moi on envie de comprendre).
    A partir de programmes compilés
Le programme compilé peut se trouver seul ou encapsulé dans un paquetage qui vérifie si les dépendances avec les autres programmes sont satisfaites. On parle alors de paquetages. Ici l'installation est beaucoup plus rapide. Elle moins customisable.
Dans le cas des paquetages, l'installation est spécifique de votre distribution. Si les paquetages sont bien faits et répondent aux besoins de l'utilisateur, cela ne pose pas de problèmes (rpm pour Mandriva et apt-get pour Suse par exemple).

La compilation et l'installation

Pré-requis

Vérifiez que vous avec les paquetages gcc et glibc installés. Ils sont nécessaires pour la compilation.
Pour la compilation avec le support de X11, vous devez avoir les paquetages de développement pour le système X Window. Le système X11 permet d'avoir une interface graphique.
Si vous voulez une interface graphique pour mplayer, vous aurez besoin d'installer une GUI (Graphical User Interface). Vous aurez besoin des paquetages de développement libpng et GTK 1.2.

Télechargement des sources

En fait, les télechargements à effectués à http://www.mplayerhq.hu/homepage/design7/dload.html sont :
    Mplayer-1.0pre7try2.tar.bz2 Les sources non compilées.)
    essential-20050412.tar.bz2 Une collection de codecs compilés permettant à mplayer de lire quasiment tous les types de vidéo.
    font-arial-iso-8859-1.tar.bz2 C'est une police de caractères. Il est nécessaire d'avoir une police pour l'affichage des OSD (On Screen Display) Ce sont en fait les sous-titres et les surimpression à l'écran.
    JiMPlayer-1.4.tar.bz2 et QuickSilver-1.0.tar.bz2 Ce sont deux skins (habillages en français) de votre GUI (Graphical Users Interface). Je vous propose d'installer une interface graphique car rentrer les commandes directement en mode texte ne m'intéresse pas. Sur la page de télechargement, choisissez l'interface qui vous convient en cliquant sur les noms des skins.

Copie des programmes du répertoire de télechargement vers le répertoire /install_manuel

$ su
Password:
# mkdir /install_manuel
# cp Mplayer-1.0pre7try2.tar.bz2 /install_manuel
# cp essential-20050412.tar.bz2 /install_manuel
# cp font-arial-iso-8859-1.tar.bz2 /install_manuel/
# cp JiMPlayer-1.4.tar.bz2 /install_manuel/
# cp QuickSilver-1.0.tar.bz2 /install_manuel/

Décompression des codecs dans un répertoire qui sera reconnu par mplayer

# mkdir /usr/local/lib/codecs
# cd /usr/local/lib/codecs/
# ls -l
total 9148
-rw-r--r--  1 root root 9349060 jan 31 17:58 essential-20050412.tar.bz2
# bzip2 -cd essential-20050412.tar.bz2 | tar -xvf -
N'oubliez pas le tiret après xvf

Aparté sur les codecs

On peut voir que les fichiers compris dans cette archive de codecs sont entre autre du genre .dll. Ce sont les dinamic link library du système d'exploitation Windows. Ces codecs servent donc à lire les vidéos prévus pour être lues sous Windows.

Voici un extrait du fichier README nouvellement décompressé:
"These are binary codecs for use with MPlayer. They are useless for normal Windows players (like WMP, QuickTime, RealPlayer, ...) as they only contain the DLLs without installer and other fancy stuff needed to use them with common Windows players."

N.B: Le texte ci dessus parle de codecs binaires. Ce sont donc des fichiers déjà compilés pour le système d'exploitation Windows sur architecture i486. Mplayer utilise un programme émulant Windows pour que les format vidéo utilisant les .dll soient lisibles.... à vérifier.

Décompression de mplayer

# cd /install_manuel
# bzip2 -cd MPlayer-1.0pre7try2.tar.bz2 | tar -xvf -
# ls -l
On obtient notamment le répertoire
drwxr-xr-x  31 1058 postdrop    4096 aoû 27 00:21 Mplayer-1.0pre7try2/
# cd MPlayer-1.0pre7try2
# ls -l
On obtient notamment le fichier
rwxr-xr-x   1 1058 postdrop 200825 avr 13  2005 configure*
et le répertoire
drwxr-xr-x   6 1058 postdrop   4096 avr 16  2005 Gui/
Gui pour Graphical users interface

Configuration

# ./configure --enable -gui
Detected operating system: Linux
Detected host architecture: i386
Checking for cc version ... 3.4.3, ok
Checking for host cc ... cc
Checking for CPU vendor ... AuthenticAMD (6:8:1)
Checking for CPU type ...  AMD Athlon(tm) XP 2400+
...
...
...
Config files successfully generated by ./configure !
...
Install prefix: /usr/local
Data directory: /usr/local/share/mplayer
Config direct.: /usr/local/etc/mplayer
...
Check configure.log if you wonder why an autodetection failed (check whether
the development headers/packages are installed).
Le fichier /install_manuel/MPlayer-1.0pre7try2/configure.log est une mine d'informations si la configuration a échoué/

Installation

# make
El là s'ensuit un défilement de charabia
# make install
C'est un peu plus lisible et intéressant
make[1]: Entering directory `/install_manuel/MPlayer-1.0pre7try2/libdha'
mkdir -p /usr/local/lib
install -m 755 -s -p libdha.so.1.0  /usr/local/lib/libdha.so.1.0
rm -f /usr/local/lib/libdha.so
ln -sf libdha.so.1.0  /usr/local/lib/libdha.so.1
ldconfig
make[1]: Leaving directory `/install_manuel/MPlayer-1.0pre7try2/libdha'
make[1]: Entering directory `/install_manuel/MPlayer-1.0pre7try2/vidix'
make[2]: Entering directory `/install_manuel/MPlayer-1.0pre7try2/vidix/drivers'
mkdir -p /usr/local/lib/mplayer/vidix
install -m 755 -s -p *.so /usr/local/lib/mplayer/vidix
make[2]: Leaving directory `/install_manuel/MPlayer-1.0pre7try2/vidix/drivers'
make[1]: Leaving directory `/install_manuel/MPlayer-1.0pre7try2/vidix'
if test ! -d /usr/local/bin ; then mkdir -p /usr/local/bin ; fi
install -m 755 -s mplayer /usr/local/bin/mplayer
ln -sf mplayer /usr/local/bin/gmplayer
Vous voyez ici que les exécutables (dans un répertoire /bin car ce sont des fichiers binaires) sont mplayer et gmplayer. Ce sont ces executables qu'ils faut lancer soit à patir d'une console, soit à partir d'une icône de votre environnement de bureau favori (KDE, Gnome ...). Cette icône sera bien sur configuré pour aller chercher l'exécutable gmplayer dans /usr/local/bin
On continue...
if test ! -d /usr/local/man/man1 ; then mkdir -p /usr/local/man/man1; fi
for i in en; do \
        if test "$i" = en ; then \
                install -c -m 644 DOCS/man/en/mplayer.1 /usr/local/man/man1/mplayer.1 ; \
        else \
                mkdir -p /usr/local/man/$i/man1 ; \
                install -c -m 644 DOCS/man/$i/mplayer.1 /usr/local/man/$i/man1/mplayer.1 ; \
        fi ; \
done
install -m 755 -s mencoder /usr/local/bin/mencoder
for i in en; do \
        if test "$i" = en ; then \
                ln -sf mplayer.1 /usr/local/man/man1/mencoder.1 ; \
        else \
                ln -sf mplayer.1 /usr/local/man/$i/man1/mencoder.1 ; \
        fi ; \
done
*** Download font at http://www.mplayerhq.hu/homepage/dload.html
*** for OSD/Subtitles support and extract to /usr/local/share/mplayer/font/
*** Download skin(s) at http://www.mplayerhq.hu/homepage/dload.html
*** for GUI, and extract to /usr/local/share/mplayer/Skin/
install -m 644 Gui/mplayer/pixmaps/mplayer-desktop.xpm /usr/local/share/pixmaps/mplayer-desktop.xpm
install -m 644 etc/mplayer.desktop /usr/local/share/applications/mplayer.desktop

Des polices et des habillages différents que ceux par défaut ....

Installation des polices de caractères

# cd /usr/local/share/mplayer/font/
# ls -l
total 0
# cp /install_manuel/font-arial-iso-8859-1.tar.bz2 ./
# ls -l
total 236
-rw-r--r--  1 root root 234242 fév  2 10:15 font-arial-iso-8859-1.tar.bz2
# bzip2 -cd font-arial-iso-8859-1.tar.bz2 | tar -xvf -
font-arial-iso-8859-1/
...
...

Installation des interfaces graphiques

# cd ..
# ls -l
drwxr-xr-x  3 root root 4096 fév  2 10:16 font/
drwxr-xr-x  2 root root 4096 aoû 23 11:24 Skin/
# cd Skin/
# ls -l
total 0
# cp /install_manuel/JiMPlayer-1.4.tar.bz2 ./
# cp /install_manuel/QuickSilver-1.0.tar.bz2 ./
# ls -l
total 384
-rw-r--r--  1 root root 178449 fév  2 10:18 JiMPlayer-1.4.tar.bz2
-rw-r--r--  1 root root 201757 fév  2 10:18 QuickSilver-1.0.tar.bz2
# bzip2 -cd  QuickSilver-1.0.tar.bz2 | tar -xvf -
QuickSilver/
...
...
# bzip2 -cd JiMPlayer-1.4.tar.bz2 | tar -xvf -
JiMPlayer/
...
...
# mkdir default
# ls-l
total 396
drwxr-xr-x  2 root root     4096 fév  2 10:27 default/
drwxr-sr-x  2 1054 ctools   4096 nov 25 22:00 JiMPlayer/
-rw-r--r--  1 root root   178449 fév  2 10:18 JiMPlayer-1.4.tar.bz2
drwxr-sr-x  2 1054 ctools   4096 nov 25 22:00 QuickSilver/
-rw-r--r--  1 root root   201757 fév  2 10:18 QuickSilver-1.0.tar.bz2

Copie des fichiers de l'interface choisie dans /default

#cp ./JiMPlayer/* default/
Voilà tel que c'est agencé, si vous lancez gmplayer en utilisateur vous avez l'interface pas défaut, si vous lancez gmplayer en root, vous avez l'interface nouvellement installé
Cette façon de tester à l'usage des interfaces alternatives faire n'est pas le top aussi bien dans les commandes à taper que dans l'ergonomie. Une modification ultérieure ? A voir...



En attendant bon film avec mplayer