Table des Matières
MPlayer est un lecteur de vidéos pour GNU/Linux (fonctionne sur de nombreux autres Un*x, et processeurs non-x86, voir section 6). il lit la majorité des fichiers MPEG, AVI et ASF, supportés par de nombreux codecs natifs et les DLLs Win32. Vous pouvez voir les VideoCD, SVCD, DVD ainsi que les vidéos DivX. L'autre point fort de MPlayer est le grand nombre de sorties vidéo supportées. Il fonctionne avec X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, ainsi que les fonctions et drivers de la librairie SDL et certain drivers de bas niveau, spécifiques aux cartes (par ex. Matrox) ! La majorité d'entre eux supportent le redimensionnement matériel et/ou logiciel, pour que vous puissiez apprécier la vidéo plein écran. Et que dire de ces superbes sous-titres anti-aliasés (7 types supportés !!!) avec des polices hongroises, anglaises, cyrillic, tchèques et coréennes, ainsi que de l'OSD ?
MPlayer est fondamentalement GPL, mais contient du code non-GPL dont la redistribution sous forme binaire n'est pas autorisée. MPlayer contient aussi la bibliothèque OpenDivX dont la redistribution reste soumise à sa propre licence.
Je n'ai écrit aucun codec, uniquement des lecteurs. J'ai beaucoup travaillé sur la meilleure solution pour lire correctement les fichiers endommagés (MPEG and AVI) et pour assurer une synchronisation A-V avec des options d'avance/retour rapide. Mon lecteur est très stable pour la lecture des fichiers MPEG endommagés (utile pour certains VCDs), et il lit des fichiers AVI qui ne passent pas avec le fameux windows media player. Même les AVI sans table d'index sont lisibles, et vous pouvez la reconstruire avec l'option -idx, qui permet alors l'avance/retour rapide ! Comme vous pouvez le constater, le stabilité et la qualité sont mes objectifs prioritaires, même si la vitesse est aussi considérée avec importance.
Cela a commencé un an auparavant... J'ai essayé de nombreux lecteurs de vidéos sous GNU/Linux (mtv,xmps,dvdview,livid/oms,VideoLAN, xine,xanim,avifile,xmmp) mais il présentaient tous des défauts, particulièrement sur certains fichiers ou avec la synchronisation audio/video. La plupart étaient incapables de lire à la fois les fichiers MPEG1, MPEG2 et AVI (DivX). De plus ils avaient des problèmes de vitesse/qualité d'images. J'ai donc décidé d'en écrire/modifier un...
Vous aurez besoin des paquetages et des versions suivant pour éviter tout problème :
Lisez ce qui suit avant de compiler MPlayer :
Maintenant compilez MPlayer:
./configure make make install
Regardez attentivement le listing généré par ./configure , il contient 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.
Bien que n'étant pas indispensables, les polices peuvent être installées pour l'affichage de l'OSD, et le support des sous-titres. Téléchargez mp-arial-iso-8859-*.zip et (si disponibles) les langages locaux.Il reste particulièrement recommandé de lire la section 1.5 pour plus de détails
mkdir ~/.mplayer/font cd ~/.mplayer/font unzip mp-arial-iso-8859-1.zip
Une dernière étape : copiez le fichier codecs.conf depuis le répertoire etc
(relatif à l'arborescence de MPlayer) dans $HOME/.mplayer/codecs.conf.
1.4. A propos de l'interface graphique ?
La GUI est basée sur GTK, donc le paquetage de développement de GTK doit être installé. Vous la compilerez en spécifiant l'option --enable-gui durant l'étape ./configure. Ensuite, pour l'activez vous devrez soit :
-gui
gui=yes
dans votre fichier de configurationln -s /usr/local/bin/mplayer /usr/local/bin/gmplayer
,
et lancer gmplayer
au lieu de mplayer.
MPlayer n'ayant pas de skin par défaut, vous devrez la télécharger si vous voulez utiliser la GUI. Vos en trouverez sur la page de téléchargement.
Elles pourront se placer dans le répertoire commun (/usr/local/share/mplayer/Skin
),
ou dans $HOME/.mplayer/Skin
. MPlayer consulte ces répertores par défaut, mais vous pouvez utiliser l'option
-skin newskin, ou placer skin=newskin dans votre fichier de configuration
pour utiliser la skin dans le répertoire */Skin/newskin
.
Oui, MPlayer supporte également de nombreux types de sous-titres. Actuellement 7 types de sous-titres peuvent être utilisés par le code de lecture. Pour en savoir plus, lisez le fichier subreader.c, ligne ~30.
MPlayer introduit un nouveau format de sous-titres appelé MPsub. Il a été conçu par moi (Gabucino). Son principal avantage est de se baser dynamiquement sur la durée (bien qu'il possède également un mode basé sur les frames). Exemple (de DOCS/tech/mpsub.sub) :
# premier nombre : attends cette durée parès la disparition du dernier sous-titre
# second nombre : affiche le sous-titre en cours pour tant de secondes
15 3
A long, long time ago...
0 3
in a galaxy far away...
0 3
Naboo was under an attack.
Comme vous pouvez le constater, l'objectif ici est de faciliter l'édition la synchronisation, la jointure et le découpage des sous-titres. Si vous avez un sous-titre SSA mal synchronisé avec votre version de la vidéo, faites simplement un mplayer dummy.avi -sub source.ssa
-dumpmpsub . Un fichier dump.mpsub
sera crée dans le répertoire courant, contenant le texte du sous-titre au format MPsub. Vous pourez alors aisément ajouter/soustraire du temps entre les sous-titres .
Les sous-titres sont affichés par la technique de l''OSD', On Screen Display. OSD est utilisé pour afficher le temps de lecture, la barre de volume, d'avance/retour rapide, le contraste, etc...
Installer OSD et SUB
Vous aurez besoin d'un paquetages de polices pour MPlayer afin d'utiliser les fonctions d'OSD/SUB. Plusieurs manières de les obtenir :
Après quoi, dézippez le fichier vers ~/.mplayer/font/ . Vous pouvez maintenant voir un compteur dans le coin supérieur gauche du film. (Faites les apparaitre/disparaitre avec la touche 'o') .
OSD possède trois états: (interchangeable avec 'o')
Vous pouvez en modifier le comportement par défaut en spécifiant la variable osdlevel=
dans le fichier config.
2.1. Formats vidéo, codecs audio & vidéo
2.2. Périphérique vidéo & audio
fichier |
mplayer [options] [path/]filename | ||
VCD |
mplayer [options] -vcd trackno /dev/cdrom | ||
DVD |
mplayer [options] -dvd titleno [/dev/dvd] | ||
net |
mplayer [options] http://site.com/file.[mpg|avi] | ||
mplayer -vo x11 /mnt/Films/Contact/contact2.mpg mplayer -vcd 2 /dev/cdrom mplayer -afm 3 /mnt/DVDtrailers/alien4.vob mplayer -dvd 1 /dev/dvd mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
<- or -> | avance/recule de 10 secondes | ||
haut ou bas | avance/recule de 1 minute | ||
pgup/pgdown | avance/recule de 10 minutes | ||
p ou espace | pause (presser une touche pour quitter la pause) | ||
q ou echap | arrête la lecture et quitte le programme | ||
+ ou - | ajuste le délai audio de +/- 0.1 seconde | ||
/ ou * | augmente/diminue le volume | ||
o | affichage OSD: aucun / barre d'avancement rapide / barre + compteur | ||
m | utilise le contôle du volume master ou pcm | ||
z ou x | ajuste le sous-titre des DVD de +/- 0.1 seconde | ||
(les touches suivantes sont valides uniquement pour le codec DivX DirectShow) | |||
1 ou 2 | ajuste le contraste | ||
3 ou 4 | ajuste la luminosité | ||
5 ou 6 | ajuste la colorisation | ||
7 ou 8 | ajuste la saturation | ||
Contôle clavier avec l'interface graphique
, et . | canal précédent/suivant | ||
- ou + | augmente/diminue le volume | ||
entrée | commencer la lecture | ||
espace | pause | ||
s | stop | ||
a | A propos | ||
l | charger fichier | ||
b | navigateur de revêtements | ||
e | affiche l'equalizer | ||
p | affiche la playlist | ||
f | mode plein écran | ||
m | muet | ||
Linux Infrared Remote Control - utilisez un récepteur infrarouge fait maison, une télécommande, et controlez votre linux à distance ! Plus d'infos sur www.lirc.org.
Si vous avez installé le paquetage LIRC, vous pouvez compiler MPlayer en spécifiant ./configure --enable-lirc
Si tout se passe bien, MPlayer affichera un message du type :
LIRC init was successful.
au démarrage. Si une erreur se produit il vous préviendra. Si rien ne se passe, le support de LIRC n'a pas été inclu à la compilation. C'est tout :-)
Le nom de l'application a lancer avec MPlayer est mplayer_lirc. Il comprend les commandes suivantes :
PAUSE | Met en pause. Tout autre touche relance la lecture | ||
QUIT | Quitte MPlayer | ||
RWND | 10 secs en arrière | ||
FRWND | 60 secs en arrière | ||
FWD | 10 secs en avant | ||
FFWD | 60 secs en avant | ||
INCVOL | augmente le volume de un pour cent | ||
DECVOL | diminue le volume de un pour cent | ||
MASTER | utilise le mixer principal | ||
PCM | utilise le mixer PCM | ||
N'oubliez pas de préciser l'option de répétition pour RWND/FWD dans .lircrc. Un exemple de .lircrc :
begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Play repeat = 1 config = FFWD end begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Stop config = QUIT end
Pour spécifier un autre emplacement que celui par défaut (~/.lircrc) du fichier lirc-config, utilisez l'option -lircconf <filename>.
3.3. Lecture depuis le réseau ou les pipes
MPlayer peut lire depuis le réseau, en utilisant le protocole HTTP, et même le streaming ASF est supporté. La configuration en est simple, recompilez MPlayer avec l'option
./configure
--enable-streaming
MPlayer ne lit pas les fichiers ASF depuis le réseau, ni par HTTP ni par MMS.
MPlayer peut lire depuis l'entrée standard stdin (pas pour les pipes nominatifs). Cela peut être par exemple utilisé pour lire depuis le FTP :
wget
ftp://micorsops.com/something.avi -O - | mplayer -
Pour créer un paquetage Debian, récupérez la version CVS ou tarball, et exécutez dans le répertoire principal :
cd main fakeroot debian/rules binary
(... mplayer detecte l'environnement matériel/logiciel, se compile, puis... )
dpkg-deb
crée la paquetage `mplayer' dans `../mplayer_0.18-1_i386.deb'.
Maintenant vous pouvez l'installer (en tant que root) :
dpkg -i ../mplayer_0.18-1_i386.deb.
Cela doit ressembler à :
eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.18-1_i386.deb Password: (Reading database ... 26946 files and directories currently installed.) Preparing to replace mplayer 0.17a-1 (using ../mplayer_0.18-1_i386.deb) Unpacking replacement mplayer ... Setting up mplayer (0.18-1) ...
Pour compiler vous aurez besoin de GNU make (gmake, /usr/ports/devel/gmake), le compilateur BSD natif ne fonctionnera pas.
Pour lancer MPlayer vous devrez recompiler le kernel avec l'option "options USER_LDT" (à moins que vous n'utilisiez le -CURRENT, qui l'intègre par défaut). Si votre processeur accepte les instructions SSE utilisez également l'option "options CPU_ENABLE_SSE" (FreeBSD-STABLE nécessaire, ou bien un noyau patché).
Si MPlayer affiche "CD-ROM Device '/dev/cdrom' not found!" créez un lien symbolique :
ln -s /dev/(your_cdrom_device) /dev/cdrom
Il n'existe pas encore de support DVD pour FreeBSD. (??? libdvdread?)
MPlayer peut fonctionner sur Solaris 2.6 ou supérieur.
La lecture des AVI fonctionne mieux sur Solaris x86, grâce à l'option permettant d'utiliser les codecs win32 des plates-formes x86. Vous pouvez également utiliser les instructions MMX/MMX2/3DNow/etc pour les fichiers MP3/DivX/DVD/etc. Sur Solaris SPARC, vous trouverez quelques fichiers AVI sans son et/ou vidéo,du au fait que les codecs utilisant les DLLs Win32 ne sont pas disponibles. Cependant, les vidéos au format DivX/OpenDivX devraient fonctionner, en utilisant libavcodec.
Sur les UltraSPARCs, MPlayer profite de leurs extensions VIS (équivalent de MMX), actuellement uniquement pour libmpeg2, libvo et libavcodec, mais pas dans mp3lib. Vous pourrez lire un fichier VOB sur une machine à 400Mhz. Il faudra installer les mLibs.
Pour compiler vous aurez besoin de GNU make (gmake, /opt/sfw/gmake), le make natif de Solaris ne fonctionnera pas. Erreur typique quand vous utlisez le make natif au lieu de GNU make :
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
Sur Solaris SPARC, vous aurez besoin du GNU Compiler Collection; cela ne change rien que le GCC soit configuré avec ou sans l'assembleur GNU.
Sur Solaris x86, vous aurez besoin de l'assembleur GNU et du GCC, configuré pour utiliser l'assembleur GNU ! Le code de mplayer sur les plates-formes x86 utilise pleinement les instructions MMX, SSE et 3DNOW! qui ne peuvent pas être employées avec l'assembleur de Sun.
/usr/ccs/bin/as
.
Le script "configure" essaie de déterminer quel assembleur est utilisé par votre GCC, (en cas d'erreur pour l'autodétection, utilisez l'option "--as=/ou/vous/avez/installé/gnu-as" pour indiquer au script où trouver le GNU "as"sur votre système).
Error message from configure on a Solaris x86 system using GCC without GNU assembler:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Solution: installer et utiliser gcc avec l'option "--with-as=gas")
Erreur typique quand vous compilez avec un GCC qui n'utilise pas GNU "as":
% gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... more "Illegal mnemonic" and "Syntax error" errors ...
Pour le support des DVD vous devez avoir une version patchée de libcss. Patch: http://www.tools.de/solaris/mplayer/.
Suite a deux bogues dans solaris 8 x86, vous ne pouvez pas décement lire des DVDs d'une capacité supérieure à 4GB :
Sur Solaris avec un processeur UltraSPARC, vous pouvez obtenir une accélération conséquente en utilisant les instructions VIS pour certaines opérations couteuses en temps CPU. L'accélération VIS peut être utilisée dans MPlayer en faisant appel aux fonction du mediaLib de Sun.
Les accélérations VIS de mediaLib sont utilisées pour le décodage des vidéos mpeg2 et dans la conversion de palette des drivers de sortie.
MPlayer a été compilé avec succès sur StrongARM. Utilisez la commande suivante :
./configure --target=arm-linux --disable-css --with-x11libdir=/usr/arm/lib --with-x11incdir=/usr/arm/lib --disable-gcc-checking
6.5. Silicon Graphics Indigo / IRIX
Parais fonctionner. Vous devrez probablement utiliser le driver ao sgi. Quelqu'un a t'il plus d'infos ?
NOTE: N'envoyez *PAS* de rapports de bogues, de demande d'aide et de fonctionnalités directement aux auteurs !
Lisez l'appendice C et souscrivez à la liste de diffusion mplayer-users.
Le projet MPlayer :
Principaux testeurs :
Les librairies et codecs:
Leur codec n'est pas utilisé dans la version actuelle, mais j'ai une aide technique de :
Appendice A/2 - code de MPlayer et documentation maintainers
Page d'acceuil
Documentation en englais
Traductions documentation
Ports/plates-formes
code MPlayer :
drivers libvo:
drivers libao2 :
TOOLS:
Appendice B - Listes de diffusion
Il existe plusieurs listes de diffusion publiques pour MPlayer. Vous pouvez y souscrire aux addresses suivantes :
Liste sur le développement de MPlayer ! Discussions sur les changements d'interface/API, les nouvelles librairies, optimisation du code , changements dans ./configure, et envoi des patches. N'envoyez pas de rapports de bogues, de questions sur l'utilisation, de demande de fonctionnalités ici ! Le trafic sur cette liste doit rester faible.
Envoyez les questions relatives aux cartes matrox ici
Relatif à la carte décodeur hardware nommée DVB.
Envoyez uniquement les questions sur les changements CVS ici. Assurez vous que le développeur que vous voulez joindre est sur cette liste !
NOTE: le langage utilisé dans les listes ci-dessus est l'ANGLAIS, sauf dérogation explicite. Merci de ne pas envoyer de messages dans d'autres langages!
Appendice C - Comment reporter les bogues
Bogues/problèmes spécifiques au CPU/système:
Divers problèmes de synchronisation A-V et autre problèmes audio :
Délai audio ou mauvais son (avec plusieurs/tous les fichiers):Problèmes de sortie vidéo:
Note: les options -fs -vm and -zoom sont justes des recommendations, pas (encore) supportées par tous les drivers. Ce n'est donc pas un bogue si cela ne fonctionne pas. Seulement quelques drivers supportent le zoom/redimensionnement, n'attendez pas cela de x11 ou dga.
clignotement OSD/sub :
- x11 driver: désolé, cela ne peut pas être résolu maintenant
- xv driver: utilisez l'option -double