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

2.1.1. Formats d'entrée supportés

MPlayer peut lire/écrire depuis les lecteurs/formats suivants :

- VCD (Video CD) directement depuis le CD-ROM ou depuis une image disque .bin crée par CDRwin.
- DVD, directement depuis le lecteur DVD, avec le support de libcss pour le décryptage.
- Les fichiers MPEG 1/2 System Stream (PS/PES/VOB) et Elementary Stream (ES)
- Les fichiers RIFF AVI.
- Les fichiers ASF/WMV 1.0.
- Supporte la lecture depuis un fichier, l'entrée standard, ou le réseau via HTTP

Note : concernant le support de quicktime (.mov/.qt) et realmedia (.ra/.rm) lisez la FAQ!

2.1.2. Codecs audio & vidéo supportés

Voir http://www.mplayerhq.hu/DOCS/codecs-status.html pour une liste complète et actualisée !!!

Les principaux codecs vidéo :

- MPEG1 (VCD) et MPEG2 (DVD)
- DivX ;-), OpenDivX (DivX4) et autre variantes MPEG4
- Windows Media Video 7 (WMV1) et 8 (WMV2) utilisés dans les fichiers .wmv
- Codecs Intel Indeo (3.1,3.2,4.1,5.0)
- MJPEG, ASV2 et autres formats matériels

Les principaux codecs audio :

- MPEG layer 2 et layer 3 (MP3), avec optimisation mmx/sse/3dnow
- AC3 dolby, avec optimisation mmx/sse/3dnow
- Ogg Vorbis (librairie native)
- Voxware (utilisant la DLL directshow)
- alaw, msgsm, pcm et autres formats audio anciens

Si vous utilisez un codec non encore supporté, lisez la section 2.1.4 pour obtenir des informations sur comment nous aider pour ajouter ce support !

2.1.2.1. DivX4

Cette section contient des informations sur le codec DivX4 de ProjectMayo. Leur première version (alpha) disponible est OpenDivX 4.0 alpha 47 et 48. Son support est inclut dans MPlayer, et compilé par défaut. Nous avons fréquemment utilisé son code de postprocessing pour améliorer la qualité visuelle des vidéos MPEG1/2.

La nouvelle génération de ce codec peut même décoder les vidéos créées avec le très mauvais codec DivX ! Il permet même d'obtenir un BIEN MEILLEUR résutat qu'avec les DLLs Win32 DivX traditionnelles. Voir ci-dessous comment le configurer. Le seul défaut de ce codec est de ne pas être Open-Source :(

Ce codec peut être téléchargé depuis l'adresse suivante :

http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip

Aucune installation automatique n'est encore disponible, donc suivez EXACTEMENT la procédure suivante. Décompressez le, et exécutez les commandes suivantes (en tant que root) :

`cp libdivxdecore.so.0.0.0 /usr/local/lib/
ln -s /usr/local/lib/libdivxdecore.so.0.0.0 /usr/local/lib/libdivxdecore.so.0
ln -s /usr/local/lib/libdivxdecore.so.0 /usr/local/lib/libdivxdecore.so
ldconfig
cp decore.h /usr/local/include/`

Note: n'oubliez pas d'ajouter /usr/local/lib a votre fichier /etc/ld.so.conf !

MPlayer détecte si DivX4 est (correctement) installé, donc compilez le normalement. Si le script ./configure ne détecte pas le codec, votre installation est erronée, et/ou votre configuration pas très propre (voir la dernière question de la section 5.1).

Utiliser ce codec est un peu délicat. Il entre en conflit avec l'ancien OpenDivX (leurs APIs sont très proches). Le code OpenDivX code n'est pas chargé, et le driver OpenDivX fait lui aussi appel à cette librarie.

Générallement nous contournont ce problème pour que vous obteniez deux options :

| -vc odivx |  | utilise le codec divx4 comme une nouvelle version d'OpenDivX. Dans ce cas il affiche des images YV12 dans son propre buffer, et MPlayer (libvo) fait la conversion de palette. (RECOMMANDÉ !)
| -vc divx4 |  | utilise la conversion de palette du codec divx4. Dans ce mode, vous pouvez également utiliser le format YUY2/UYVY.

La méthode 'odivx' est généralement plus rapide, grâce au transfert des données d'images au format YV12 (YUV 4:2:0 planaire), nécessitant beaucoup moins de bande passante sur le bus. Pour les modes YUV (YUY2, UYVY) utilisez la méthode 'divx4'. Cela ne présente pas de différence pour le mode RGB, leur vitesse est équivalente et dépend du nombre de bpp.

Note: Il supporte aussi le postprocessing, mais son intervalle de valeurs est particulière :

| 0 |  | pas de postprocessing
| 10 .. 20 |  | postprocessing, normal (équivalent au niveau 2 de divxds)
| 30 .. 60 |  | prostprocessing matériel, utilise beaucoup de temps CPU (équivalent au niveau 4 de divxds)

2.1.2.2. DivX/libavcodec de ffmpeg

Apparu à sa version 0.4.2 , ffmpeg contient un codec DivX opensource, compatible avec le DivX traditionnel. MPlayer supporte ce codec, qui rend possible la lecture de films DivX sur des plates-formes non-x86 ! Il a été retiré des CVS de MPlayer, vous devez le télécharger directement depuis le CVS de FFmpeg :

`cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg`

Note: si vous copiez l'arborescence CVS complète, la prochaine fois il vous suffira de faire un 'cvs update'.

Maintenant, déplacez le répertoire libavcodec des sources de ffmpeg, (avec ses sous-répertoires) vers le répertoire des sources de MPlayer, pour ressembler à ceci:

`main/libavcodec`

Les liens symboliques ne fonctionneront pas, vous devez le déplacer physiquement !!!

./configure détecte si la compilation avec libavcodec est réalisable. Ce codec supporte également le postprocessing.

Pour l'utiliser, mettez à jour votre fichier codecs.conf, et procédez comme expliqué dans la page man et le fichier example.conf (avec l'option -vfm).

Note: libavcodec couvre également d'autres codecs (ffmpeg12 par exemple), mais nous nous concentrons principalement sur ffdivx, jusqu'a nouvel ordre.

2.1.2.3. Decodage hardware AC3

Cela nécessite une carte son compatible AC3, avec sortie numérique (SP/DIF). Le driver de la carte doit supporter le format AFMT_AC3 (comme celui de la SB Live! par exemple). Connectez votre décodeur AC3 sur la sortie SP/DIF, et utilisez le avec l'option '-ac hwac3'. Ceci est encore expérimental, et peut ne pas fonctionner.

2.1.4. Comment importer des codecs

2.1.4.1. Codecs VFW

VfW (Video for Windows) est une ancienne API vidéo pour windows. Ses codecs portent l'extension .DLL ou plus rarement .DRV . Si MPlayer n'arrive pas à lire votre AVI et renvoie :

`UNKNOWN video codec: HFYU (0x55594648)`

Cela signifie que votre AVI est encodé avec un codec HFYU fourcc (HFYU = HuffYUV codec, DIV3 = DivX Low Motion, etc...). Maintenant que nous savons cela, nous devons déterminer quelle DLL windows utilise pour lire ce fichier. Dans votre cas, le fichier system.ini contient (entre autres):

`VIDC.HFYU=huffyuv.dll`

Donc nous aurons besoin de la librarie huffyuv.dll. Notez que les codecs audio sont spécifiés par le préfixe MSACM :

`msacm.l3acm=L3codeca.acm`

C'est le codec MP3. Nous avons désormais toutes les informations nécessaires (fourcc, fichier codec, fichier AVI). Demandez le support de votre codec par mail, et envoyez ces fichiers sur le FTP :

`ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/`

2.1.4.2. Codecs DirectShow

DirectShow est une API vidéo récente pour windows, sans doute plus mauvaise que la précédente :-( La situations est plus délicate avec DirectShow, puisque

- system.ini ne contient aucune information, qui sont désormais placées dans le registre.
- Nous aurons besoin du GUID du codec.

Fouillons donc dans la base de registre :-(.

- Exécutez 'regedit'
- Pressez ctrl-f, décochez les deux premières cases, et cochez la troisième. Entrez le fourcc du codec. (par ex.: TM20)
- vous devriez trouver un champ contenant le chemin et le nom du fichier utilisé (par ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
- Maintenant que nous connaissons ce fichier, nous devons trouver son GUID. Cherchez désormais le nom du codec, pas son fourcc. Son nom peut être trouvé quand Media Player lit le fichier, en regardant dans Fichier/Propriétés/Avancées. Si rien n'apparait, pas de chance ;) Essayez de le deviner. (par ex. cherchez : TrueMotion)
- S'il apparait dans la base de registre, il devrait apparaitre un champ NomDuFichier, et un champ CLSID. Copiez les 16 bits du CLSID, c'est le GUID dont nous avons besoin.

NOTE: si la recherche échoue, cochez toutes les options de la fenêtre de recherche.. vous aurez des mauvaises occurrences, mais finirez par obtenir la bonne...

NOTE: Exportez la clé du registre, et donnez des sous à M$, ils aiment bien ça.

Nous avons désormais toutes les informations nécessaires (fourcc, GUID, fichier codec, fichier AVI). Demandez le support de votre codec par mail, et envoyez ces fichiers sur le FTP :
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/