MPlayer - Movie Player for LINUX (C) 2000-2001 Arpad Gereoffy (A'rpi/ESP-team)
http://www.mplayerhq.hu
[ Anglais ] [ Hongrois ] [ Allemand ] [ Français ]

Table des Matières

- 1. Introduction
  - 1.1 Aperçu
  - 1.2 Histoire
  - 1.3 Installation
  - 1.4 A propos de l'interface graphique ?
  - 1.5 Sous-titres et OSD
- 2. Fonctionnalités
  - 2.1 Formats vidéo, codecs audio & vidéo
  - 2.1.1 Formats d'entrée supportés
  - 2.1.2 Codecs audio & vidéo supportés
  - 2.1.2.1 DivX4
  - 2.1.2.2 DivX/libavcodec avec ffmpeg
  - 2.1.2.3 Décodage matériel AC3
  - 2.1.4 Comment importer un codec
  - 2.1.4.1 Codecs VFW
  - 2.1.4.2 Codecs DirectShow
  - 2.2 Sorties vidéo & audio
    - 2.2.1 Sorties vidéo
      - 2.2.1.1 MTRR
      - 2.2.1.2 Xv
        - 2.2.1.2.1 Cartes 3dfx
        - 2.2.1.2.2 Cartes S3
        - 2.2.1.2.3 Cartes nVidia
        - 2.2.1.2.4 Cartes ATI
        - 2.2.1.2.5 Cartes NeoMagic
      - 2.2.1.3 DGA
        - 2.2.1.3.1 A propos de ce document
        - 2.2.1.3.2 Qu'est-ce que DGA
        - 2.2.1.3.3 Installer un support DGA pour MPlayer
        - 2.2.1.3.4 Changer la résolution
        - 2.2.1.3.5 DGA & MPlayer
        - 2.2.1.3.6 Fonctionnalités du driver DGA
        - 2.2.1.3.7 Problèmes de vitesse
        - 2.2.1.3.8 Bogues connus
        - 2.2.1.3.9 Améliorations prévues
        - 2.2.1.3.A Quelques modelines
        - 2.2.1.3.B Rapport de bogue
      - 2.2.1.4 SDL
      - 2.2.1.5 SVGAlib
      - 2.2.1.6 Sortie framebuffer (FBdev)
      - 2.2.1.7 Framebuffer Matrox (mga_vid)
      - 2.2.1.8 Framebuffer SiS 6326 (sis_vid)
      - 2.2.1.9 Support de YUV avec la 3dfx
      - 2.2.1.10 Sortie OpenGL
      - 2.2.1.11 AAlib - affichage en mode texte
      - 2.2.1.A TVout
      - 2.2.1.A.1 Matrox Dualhead
      - 2.2.1.A.2 ATI cards
      - 2.2.1.A.3 Voodoo 3
      - 2.2.2 Cartes son, matériel de sortie audio
      - 2.2.2.1 Trucs, astuces et recommendations sur les cartes son
- 3. Usage
  - 3.1 Contrôle avec le clavier
  - 3.2 Contrôle avec LIRC (Linux Infrared Remote Control)
  - 3.3 Streaming depuis le réseau ou les pipes
- 4. Section CD/DVD
  - 4.1 Lecteurs CD
  - 4.2 Lecture DVD
  - 4.3 FAQ lecture DVD
- 5. Section FAQ
  - 5.1 Compilation
  - 5.2 Questions génériques
  - 5.3 Problèmes de lecture des fichiers
  - 5.4 Problèmes de drivers vidéo/audio
  - 5.5 Demande de fonctionnalités
- 6. Autres OS
  - 6.1 Paquetages Debian
  - 6.2 FreeBSD
  - 6.3 Solaris
  - 6.4 StrongARM
- A. Auteurs

- A/2. Maintainers

- B. Mailing lists
- C. Comment reporter un bogue
  - C/2. Comment envoyer les patches
- D. Bogues connus
- X. Comment devenir un SkinMaker en 5 minutes !

1. Introduction

1.1. Aperçu

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.

1.2. Histoire

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...

- mpg12play v0.1-v0.3:
  Le premier essai, réalisé en une demi-heure ! J'ai utilisé libmpeg3 de www.heroinewarrior.com dans sa version 0.3, mais il présentait des problèmes de vitesse/qualité d'images.
- mpg12play v0.5-v0.87:
  Le codec Mpeg a été remplacé par DVDview de Dirk Farin, du bon boulot, mais c'était lent et écrit en C++ (je déteste le C++!!!)
- mpg12play v0.9-v0.95pre5:
  Le codec mpeg était libmpeg2 (mpeg2dec) par Aaron Holtzman & Michel Lespinasse. Il est excellent, un code C rapide et bien optimisé avec une qualité d'image parfaite et 100% compatible avec les standards MPEG.
- MPlayer v0.3-v0.9:
  Un condensé de deux programmes: mpg12playv0.95pre6 et mon nouveau lecteur de AVI 'avip' basé sur le chargeur de DLL Win32 de avifile.
- MPlayer v0.10:
  Les lecteurs MPEG et AVI dans un seul binaire !
- MPlayer v0.11:
  De nouveaux développeurs ont joint le projet et depuis la version 0.11 le projet mplayer est un travail d'équipe ! Ajouté le support des fichiers .ASF, et de l'encodege/décodage OpenDivX (c.f. ProjectMayo).
- MPlayer v0.17 "The IdegCounter"
  La finalisation de la version 0.11pre après 4 mois de développement intensif ! Essayez la, et soyez conquis ! Des dizaines de nouvelles fonctionnalités... et bien sûr le code existant a été amélioré, les bogues fixés, etc...
- MPlayer 0.18 "The BugCounter"
  Deux mois après la 0.17, une nouvelle parution.. Complété le support ASF, plus de formats pour les sous-titres, introduction de libao (similaire à libvo pour l'audio), encore plus stable et performant.... C'est un MUST !
- MPlayer 0.50 "The Faszom(C)ounter"
  Hmm. Une nouvelle sortie. Des tonnes de nouvelles fonctionnalités, une GUI en version bêta, des bogues fixés, de nouveaux drivers vo et ao,porté sur de nombreux systèmes, incluant les codecs DivX Open-Source, et bien plus encore... Essayez le !

1.3. Installation

Vous aurez besoin des paquetages et des versions suivant pour éviter tout problème :

- binutils - version conseillée : 2.11.x . Ce programme génère les instructions spécifiques MMX/3DNow!, donc très important.
- gcc - version conseillée : entre la 2.95.2 et la 2.95.4. N'utilisez JAMAIS 2.96 ou 3.x.x !!! Il génèrent des erreurs de code.
- XFree86 - version conseillée : toujours la plus récente (4.1.0). Normalement tout le monde veut ça. Si vous ne savez pas pourquoi, c'est que vous devez vraiment en avoir besoin.
- make - version conseillée : toujours la plus récente (au minimum 3.79.x). Mais la version a peu d'importance.
- SDL - pas obligatoire, mais peut s'avérer utile dans certains cas. Utilisez toujours la dernière version.

Lisez ce qui suit avant de compiler MPlayer :

- Si vous avez gcc 2.96 sur votre système, LISEZ CECI !!!
- Si vous prévoyez d'utiliser MPlayer sur une architecture x86, vous voudrez peut être utiliser les librairies Win32. Téléchargez et dézippez w32codecs.zip dans le répertoire /usr/lib/win32 . Note: le projet avifile a un paquetage de codecs équivalent, mais différent du notre, donc si vous voulez profiter de tous les codecs supportés, utilisez notre paquetage! Cependant, vous pouvez également utiliser notre paquetage de codecs avec avifiles.
- Si vous avez une carte Matrox G200/G400/G450, lisez la section 2.2.1.7 pour obtenir une accélération optimale. C'est important de réaliser ces étapes avant de compiler MPlayer, sinon aucun support spécifique à la Matrox ne sera fait.
- Si vous avez une carte 3DFX (quel modèle ?), lisez la section 2.2.1.9 pour obtenir une accélération optimale. C'est important de réaliser ces étapes avant de compiler MPlayer, sinon aucun support spécifique à la 3DFX ne sera fait.
- Si vous avez une carte ATI, lisez la section 2.2.1.A.2 Pour connaitre les fonctions de votre carte supportés par Linux/MPlayer.
- Si vous voulez utiliser le codec DivX4 de ProjectMayo, lisez la section 2.1.2.1 avant de compiler. Ce codec peut lire les vidéos DivX beaucoup plus rapidement que les librairies Win32 et ffmpeg. Le code source en est fermé, et uniquement la version x86 est disponible.
- Si vous voulez utiliser le libavcodec de ffmpeg, lisez la section 2.1.2.2 avant de compiler. Vous en aurez besoin pour lire les vidéos DivX sur des plates-formes non-x86, ou désirez des performances meilleures qu'avec les librairies Win32.
- Pour le support du DVD, vous devrez compiler libdvdread et libcss. Lisez la section 4.2 pour plus d'informations.

- Si vous désirez uitliser la GUI (interface graphique), lisez la section 1.4 avant de compiler.

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 :

- utiliser l'option `-gui`
- specifier `gui=yes` dans votre fichier de configuration
- `ln -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`.

1.5. Sous-titres et OSD

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 :

- téléchargez des paquetages de plices prêtes à l'emploi depuis le site de MPlayer. Note: les polices actuellement disponibles sont limitées a l'iso 8859-1/2, ainsi que des versions pour le coréen et le russe. Les polices devront disposer du fichier font.desc approprié qui associe les positions maps unicode au code actuel du texte sous-titré. Une autre solution est d'avoir des sous-titres encodés en utf8 et d'utiliser l'option -utf8 ou de renommer le fichier des sous-titres en .utf et de le placer dans le même répertoire que le film. Enregistrer de codepages différents en utf8 peut se faire en utilisant les programmes konwert (debian) ou iconv (RedHat).
  Quelques liens:
  - ftp://ftp.mplayerhq.hu/MPlayer/releases/ - polices ISO
  - ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ - contributions d'utilisateurs
  - http://realtime.ssu.ac.kr/~lethean/mplayer - polices coréeenes et plugin RAW
- utilisez le générateur de polices TOOLS/subfont-c C'est un outil complet pour convertir les polices TTF/Type1/etc vers des paquetages de polices mplayer. (lisez TOOLS/subfont-c/README pour plus de détails)
- Utilisez le plugin générateur de polices de GIMP situé dans TOOLS/subfont-GIMP (note: vous devez également avoir le plugin HSI RAW)

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')

- compteur + barre de volume + barre d'avancement + sous-titres (defaut)
- barre de volume + barre d'avancement + sous-titres
- uniquement les sous-titres

Vous pouvez en modifier le comportement par défaut en spécifiant la variable `osdlevel=` dans le fichier config.

2. Fonctionnalités

2.1. Formats vidéo, codecs audio & vidéo

2.2. Périphérique vidéo & audio

3. Utilisation

| 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

3.1. Controle du clavier

| <- 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

3.2. Contrôle depuis LIRC

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 -`

4. Section FAQ

5. Section CD/DVD

6. Autres OS

6.1. Packaging Debian

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) ...

6.2. FreeBSD

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?)

6.3. Solaris

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 :

- Le driver sd(7D) sur solaris 8 x86 provoque un bogue quand il accède a un bloc disque supérieur à 4GB sur un lecteur utilisant un bloc logique différent de DEV_BSIZE (i.e. CDROM et lecteurs DVD). A cause d'un dépassement de tampon sur entier 32bits, c'est l'adresse disque d'un modulo de 4GB qui est appelée. (http://groups.yahoo.com/group/solarisonintel/message/22516)
- Un bogue similaire est présent dans le système de fichiers hsfs(7FS) (aka ISO9660), hsfs ne supporte actuellement pas les partitions de plus de 4GB, toutes les données sont appelées via modulo 4GB .(http://groups.yahoo.com/group/solarisonintel/message/22592)

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.

6.4. StrongARM

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 ?

Appendice A - Auteurs

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 :

- Árpád Gereöffy (A'rpi/ESP-team):
  - code du lecteur (demultiplexeur du flux mpeg et parser avi/asf, synchronisation A-V, seek...)
  - mp3lib, basé sur les sources de mpglib [MP3 audio decoder]
  - getch2 [fonctions clavier]
  - certaines modifications dans le code de libmpeg2 (frames progressives, support bitrate & fps)
  - améliorations de libvo: ajout du support OpenGL, bugfix pour les drivers mga...
  - support du triple buffering & YUY2 (pour DivX/MPEG4) dans le driver mga_vid.
  - scripts dans le répertoire TVout (TVout sur Matrox G400DH, c.f. documentation)
  - hacking des codecs DivX/Mpeg4 VfW pour obtenir une sortie YUV.
  - optimisations de la vitesse du décodeur opendivx (c.f. opendivx/ChangeLog)
  - affichage OSD & SUB.
  - intégration de ffmpeg/libavcodec.
  - support de DivX4Linux (ProjectMayo, c.f. documentation)
- Zoltán Ponekker (Pontscho/Fresh!):
  - script configure et Makefiles pour une compilation facile
  - système d'interface graphique
  - support 3DNow! dans mp3lib
  - support 3DNow! dans fastmemcpy.h
  - divers changement pour les drivers X11 (fonctions clavier, plein écran, détection bpp, etc)
  - libvo: ajour du driver xmga, et support du pelin écran pour xv
  - support du mixer audio audio mixer (volume)
- Gábor Lénárt (LGB): <lgb@lgb.hu>
  - amélioration du script ./configure
  - amélioration du Makefile
  - implémentation primaire du support DVD
  - divers bogues fixés pour X11
- Gábor Bérczi (Gabucino):
  - maintainer de la documentation
  - traduction de la documentation en hongrois
  - design de la page web & gfx
  - maintainer de la page web
  - teseur, comparaison de la qualité et de la rapidité des codecs
  - opérateur du channel IRC #MPlayer (devel channel, users earn kickban)
  - port expérimental sur MINIX :)
- Szabolcs Berecz (Szabi): ;
  - parser du fichier codecs.conf
  - parser des fichiers de configuration et de la ligne de commande
  - fixes mga_vid, option du module, etc...
  - support fbdev dans libvo
  - support des sous-titres type #7
- László Megyer (Lez, Laaz):
  - lecteur SUB
  - fixes du screensaver+DPMS pour libvo
- Gyula László (Chass, Tégla):
  - ploices principales (mp_font1.zip)
  - troisième designe page web(current) & gfx
- Zoltán Márk Vicián (Se7en):
  - support SVGAlib dans libvo
- Alex Beregszaszi (Al3x):
  - driver sortie ALSA dans libao2
  - driver sortie vo_ggi dans libvo (www.ggi-project.org)
- Andreas Ackermann (Acki):
  - support LIRC (c.f. documentation)
  - support DGA dans libvo
- Felix Bünemann (Atmos):
  - maintainer du driver SDL
  - fixes des formats additionnels YUV
  - Nouvelles polices (mp_font2.zip)
  - sortie fichier PNG dans libvo
  - support du flipping (pour Indeo 3/4, etc)
  - driver audio SDL pour libao2
  - sortie fichier RAW PCM/WAVE pour libao2
- TeLeNiEkO:
  - traduction de la documentation en espagnol
- Michael Graffam:
  - support XF86VidMode pour vo_x11 et vo_dga
  - switching video mode pour vo_dga
- Jens Hoffmann:
  - support formats YUV additionnels
  - trouvé le gros problème BITMAPINFOHEADER -> résolu pixélisation ASV2
- Nick Kurshev:
  - optimisations memcpypour AMD K7 et Intel Pentium III (fastmemcpy.h)
  - infos tuning CDROM
  - optimisation 3DNow! dans mp3lib et libac3 et ffmpeg
  - traduction de la documentation en russe
- German Gomez Garcia:
  - parser DVD .ifo et sélection de chapitres [pas encore dans le code principal]
  - sortie SPDIF AC3 pour SBLive!
- Dariush Pietrzak (Eyck):
  - support packaging debian (c.f. debian/* et cette documentation)
  - support sous-titres format vplayer
  - support préliminaire pour les sous-titres format .RT
- Marcus Comstedt:
  - support initial solaris8-x86
- Jürgen Keil and Marcus Comstedt:
  - patch MPlayer pour fonctionner sur Solaris 8 x86
  - fixes configure
  - divers fixes (win32, configure, etc)
  - driver SUN audio dans libao2
  - msupport mediaLib dans libavcodec
- Vladimir Kushnir:
  - patch MPlayer pour fonctionner sur FreeBSD x86
- Bertrand BAUDET:
  - support streaming réseau
- Artur Zaprzala:
  - générateur de polices + polices OSD (TOOLS/subfont-c)
- lanzz@lanzz.org :
  - générateur de polices avec GIMP (TOOLS/subfont-gimp)
- Adam Tla/lka:
  - améliorations osd/sub, fixes, optimisation, support utf8
  - divers fixes
- Folke Ashberg:
  - driver AAlib natif (-vo aa)
- Kamil Toman
  - polices czech
- pl
  - ./configure fixes
- Michael Niedermayer
  - postprocessing support
  - software scaling C/MMX/MMX2/3DNow support (swscale.c)
- Sven Goethel
  - libvo driver: vo_gl2
- Bohdan Horst
  - iconv support on FreeBSD
- joy_ping
  - ao_alsa9 fixes
- Eric Anholt
  - runtime CPU detection
- Jiri Svoboda
  - AQT type subtitles support
  - CRTC2 YUV support in mga_vid
- Oliver Schoenbrunner
  - SGI audio driver
  - MIPS support
- Jeroen Dobbelaere
  - libmad support

Principaux testeurs :

- Tibor Balázs (Tibcu)
- Péter Sasi (SaPe)
- Christoph H. Lampert
- Attila Kinali
- Dirk Vornheder

Les librairies et codecs:

- Aaron Holtzman: <aholtzma@engr.uvic.ca>
  - auteur de ac3dec (et libac3) [AC3 audio decoder]
  - driver mga_vid [Matrox G200/G400 YUV Back-end Scaler]
  - mpeg2dec [décodeur vidéo MPEG1/MPEG2rapide, actuellement utilisé dans le lecteur]
- Michel Lespinasse: <walken@zoy.org>
  - importants changements dans libmpeg2 pour de meilleures performances et une plus grande rapidité
- Eugene Kuznetsov: <divx@euro.ru>
  - auteur d'avifile[librarie de lecture AVI pour GNU/Linux, utilisant les codecs Win32 VfW/ACM]
  - aide technique sur les formats AVI et ASF, et sur comment obtenir du YUV avec VfW...
  - support techique divx4linux
- Zdenek Kabelac: <kabi@informatics.muni.cz>
  - maintainer(?) actuel de avifile
  - aide technique sur les librairies win32 et les timers
- Gerard Lantau: <glantau@yahoo.fr>
  - auteur/maintainer de ffmpeg/libavcodec (encodeur/decodeur opensource de mpeg, mjpeg, divx)
- Project Mayo: <http://www.projectmayo.com>
  - auteurs du codec OpenDivX
- Michael Hipp:
  - auteur de mpglib [utilisé en partie dans mp3lib]
- Mark Podlipec:
  - auteur xa_gsm.c [caodec audio MS-GSM] [depuis une librarie GSM de Jutta Degener et Carsten Bormann]

Leur codec n'est pas utilisé dans la version actuelle, mais j'ai une aide technique de :

- John F. McGowan http://www.jmcgowan.com/
  - auteur/collecteur des FAQs AVI. [nombreuses docs et codecs sur AVI et FMT]
- Dirk Farin: <farin@ti.uni-mannheim.de>
  - auteur dedvdview [décodeur MPEG1/MPEG2, utilisé dans v0.5-v0.8]
- Adam Williams: <broadcast@earthling.net>
  - auteur de libmpeg3 (et xmovie) [décodeur vidéo MPEG1/MPEG2, utilisé dans v0.1-v0.4]

Appendice A/2 - code de MPlayer et documentation maintainers

Page d'acceuil

- Design: Chass
- Contenu: Gabucino

Documentation en anglais

- tech-*.txt: A'rpi
- le reste: Gabucino

Traductions documentation

- Hongrois: Gabucino
- Allemand: Johannes Feigl
- Français: MoZ
- Espagnol: TeLeNiEkO (outdated)
- Russe: Nick Kurshev (outdated)
- Polonais: Dariush Pietrzak (outdated)

Ports/plates-formes

- packaging DEBIAN: Dariush Pietrzak
- support FreeBSD: Vladimir Kushnir
- support Solaris 8: Jürgen Keil

code MPlayer :

- détection formats de fichiers, demuxers: A'rpi
- support DVD: (version alpha : LGB) maintenant: ?
- streaming réseau: Bertrand BAUDET
- code sync A-V: A'rpi
- parser fichiers sous-titres/lecteur: Lez (most of them)
- fichiers de config & parser ligne de commande: Szabi
- fastmemcpy: Nick Kurshev
- support LIRC: Acki
- renderer SUB/OSD: Adam Tla/lka

drivers libvo:

- vo_3dfx.c - OBSOLETE, utilise xv
- vo_tdfxfb.c - Zeljko Stevanovic
- vo_aa.c - Folke Ashberg
- vo_dga.c - Acki
- vo_fbdev.c - Szabi
- vo_fsdga.c - OBSOLETE, utilise dga
- vo_ggi.c - al3x
- vo_gl.c - A'rpi
- vo_md5.c - A'rpi
- vo_mga.c - A'rpi
- vo_null.c - A'rpi
- vo_odivx.c - A'rpi
- vo_pgm.c - A'rpi
- vo_png.c - Atmos
- vo_sdl.c - Atmos
- vo_svga.c - se7en
- vo_syncfb.c - OBSOLETE, utilise mga
- vo_x11.c - Pontscho
- vo_xmga.c - Pontscho
- vo_xv.c - Pontscho

drivers libao2 :

- ao_alsa5.c - al3x
- ao_alsa9.c - al3x (BUGGY, utilise oss)
- ao_null.c - A'rpi
- ao_oss.c - A'rpi
- ao_pcm.c - Atmos
- ao_sdl.c - Atmos
- ao_sun.c - Jürgen Keil

TOOLS:

- subfont-c - Artur Zaprzala:
- subfont-GIMP - lanzz@lanzz.org
- *.pl - Atmos
- autres - A'rpi

Appendice B - Listes de diffusion

Il existe plusieurs listes de diffusion publiques pour MPlayer. Vous pouvez y souscrire aux addresses suivantes :

- Liste développeurs de MPlayer :
  http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng

  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.

- MPlayer users list:
  http://lists.sourceforge.net/lists/listinfo/mplayer-users

  - Envoyez les rapports de bogues ici (après avoir lu les DOCS/BUGS, Appendice C)
  - Envoyez les demandes de fonctionnalités ici (après avoir lu les DOCS/TODO)
  - envoyez vos questions ici (après avoir lu cette documentation)
- MPlayer & Matrox G200/G400/G450 users:
  http://lists.sourceforge.net/lists/listinfo/mplayer-matrox

  Envoyez les questions relatives aux cartes matrox ici

  - les questions sur mga_vid
  - les drivers bêta officiels de matrox (pour X 4.x.x)
  - et sur matroxfb-TVout.
- MPlayer & utilisateurs des cartes DVB :
  http://mplayerhq.hu/mailman/listinfo/mplayer-dvb

  Relatif à la carte décodeur hardware nommée DVB.

- MPlayer CVS-log:
  http://mp.dev.hu/mailman/listinfo/mplayer-cvslog

  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

Appendice D - Bogues connus

Bogues/problèmes spécifiques au CPU/système:

- SIGILL (signal 4) dans draw_frame, sur P3 (principalement avec les noyaux 2.2.x):
  Problème: movups plante dans libvo/fastmemcpy.h
  Parade: ./configure --disable-fastmemcpy
  RESOLU: code SSE retiré de fastmemcpy.h ;(
- Pas d'image (image noire) pour les fichiers MPEG ou OpenDivX en RGB 15/16bpp (x11,dga,fbdev,svga) :
  Problème: gcc 2.96 bug
  Parade: ./configure --disable-mmx, ou utilisez gcc 2.95.x
  RESOLU: code fixé
- SIGILL (signal 4) ou erreur au chargement de l3codeca.acm:
  Problème: libraries partagées chargées à l'adresse 0x00xxxxxx au lieu de 0x40xxxxxx
  Parade: mplayer -afm 1 ...
  RESOLU: vous utilisez un patch de sécurité du noyau, comme OpenWall etc.
- SIGILL (signal 4) sur P3 avec un noyau 2.2.x :
  Problème: les noyaux 2.2.x n'ont pas un support valide des instructions SSE
  Solution: upgrader le noyau en 2.4.x
  Parade: ./configure --disable-sse
- General SIGILL (signal 4):
  Problème: mplayer a été compilé sur une machine différente de celle utilisée pour la lecture (par exemple compilé sur P3 et utilisé sur celeron)
  Solution: Compilez mplayer sur la même machine que vous utilisez pour la lecture!
  Parade: ./configure --disable-sse etc.

Divers problèmes de synchronisation A-V et autre problèmes audio :

Délai audio ou mauvais son (avec plusieurs/tous les fichiers):

- problème de buffer audio (mauvaise détection de la taille du buffer)
  Parade: option mplayer -abs
- machine lente (cpu ou vga)
  essayez avec -vo null, si le fichier passe bien, alors vous avez une carte/drivers VGA lents
  Parade: achetez une carte plus rapide ou lisez cette documentation pour accélérer votre config
  RESOLU: essayez l'option -framedrop

Désynchronisation A-V spécifique à quelques fichiers :

- mauvais fichier (merci de l'uploader, que nous puissions vérifier et corriger)
  Parade: option -ni ou option -bps (pour les fichiers erronées et non interlaçés)
  -mc 0 (requis pour les fichiers avec un audio en VBR)
  option -delay ou touches +/- keys au démarrage pour ajuster le délai
- votre carte son ne supporte pas la lecture à 48Khz
  Parade: achetez une meilleure carte son... ou essayez de diminuer les fps de 10% (utilisez -fps 27 pour un film à 30fps)
- machine lente
  (si la ligne A-V n'est pas proche de 0, et que le dernier nombre dans la ligne de status augmente)
  Parade: option -framedrop

Pas de son :

- votre fichier utilise un codec non supporté
  Parade: lisez la documentation et aidez nous a ajouter un support pour ce codec

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