2.2 Codecs supportés

2.2.1 Codecs vidéo

Voir la table d'état des codecs pour une liste complète, générée quotidiennement.

Les plus importants par dessus tout:

Si vous avez un codec Win32 non listé ici qui n'est pas encore supporté, veuillez lire Comment importer des codecs et aidez-nous à en ajouter le support.

2.2.1.1 DivX4/DivX5

Cette section contient des informations sur les codecs DivX4 et Divx5 de Project Mayo. 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. Maintenant nous utilisons notre propre code, pour touts les types de fichier.

a nouvelle génération de ce codec est appelée DivX4 et peut même décoder les vidéos créées avec le très mauvais codec DivX ! De plus il est plus rapide que les DLLs Win32 DivX natives mais plus lent que libavcodec. Son utilisation en tant que décodeur est donc DÉCOURAGÉ. Cependant, il est utile pour l'encodage. Un désavantage de ce codec est que ces sources sont ne sont pas disponibles sous une licence Open source.

DivX4Linux fonctionne dans deux modes:

-vc odivx
Utilise le codec divx4 à la manière d'OpenDivX. Dans ce cas il affiche des images YV12 dans son propre buffer, et MPlayer fait la conversion de palette via libvo. (Rapide, recommandé !)
-vc divx4
Utilise la conversion de palette du codec. Dans ce mode, vous pouvez également utiliser le format YUY2/UYVY.(LENT)

La méthode -vc odivx est généralement plus rapide, grâce au fait qu'elle transfert les données des images au format YV12 (planar YUV 4:2:0), nécessitant ainsi moins de bande passante sur le bus. Pour les modes YUV compactés (YUY2, UYVY), utilisez la méthode -vc divx4. Pour les modes RGB la vitesse est la même, au mieux elle peut varier selon votre profondeur de couleur.

Note: Si votre pilote -vo supporte le rendu direct, alors -vc divx4 pourra être plus rapide voir même la solution la plus rapide.

Ce codec peut être téléchargé depuis avifile.

Désarchivez-le, lancez ./install.sh en root et n'oubliez pas d'ajouter /usr/local/lib à votre /etc/ld.so.conf et de lancer ldconfig.

Récupérez la version CVS de la librairie principale comme ceci:

  1. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login
  2. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore
  3. Cette librairie principale est séparée en librairies d'encodage et de décodage qui doivent être compilées séparément. Pour la librairie de décodage, tapez simplement
        cd divxcore/decore/build/linux
        make
        cp libdivxdecore.so /usr/local/lib 
        ln -s /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 
        cp ../../src/decore.h /usr/local/include
        
  4. Élas, pour la librairie d'encodage il n'y a pas de Makefile Linux disponible, et le code optimisé pour MMX ne fonctionne que sous Windows. Vous pouvez quand même le compiler en utilisant ce Makefile.
        cd ../../../encore/build
        mkdir linux
        cd linux
        cp path/Makefile .
        make
        cp libdivxencore.so /usr/local/lib
        ln -s /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
        cp ../../src/encore.h /usr/local/include
        

MPlayer détecte si DivX4/DivX5 est correctement installé, donc compilez le normalement. Si il ne détecte pas le codec, votre installation ou votre configuration n'est pas correcte.

2.2.1.2 DivX/libavcodec de FFmpeg

FFmpeg contient un codec open source, qui est capable de décoder des flux encodés avec des codecs vidéo H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1, ou audio WMA (Windows Media Audio). Mais seuls quelques uns peuvent être encodés avec, mais il offre également une vitesse plus rapide que les codecs Win32 ou que la librairie DivX4/5 de DivX.com!

Il contient plein de bons codecs, les plus importantes étant les variantes MPEG4: DivX 3, DivX 4, DivX 5, Windows Media Video 7 (WMV1). Le décodeur WMA est également très intéressant.

Si vous utilisez une version officielle vous avez libavcodec directement dans le paquetage, construisez comme d'habitude. Si vous utilisez la version CVS de MPlayer vous devrez extraire libavcodec de l'arborescence CVS de FFmpeg car les versions officielles de FFmpeg ne fonctionnent pas. Pour y arriver faites:

  1. cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login
  2. cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
  3. Déplacez le répertoire libavcodec des sources FFmpeg à la racine de l'arborescence CVS de MPlayer. Cela devrait ressembler à cela:

        main/libavcodec

    Faire un lien symbolique n'est pas suffisant, vous devez le copier ou le déplacer!
  4. Compilez. Configure devrait détecter les problèmes avant la compilation.

Note: MPlayer depuis CVS contient un sous-répertoire libavcodec, mais il ne contient pas le source de libavcodec! Vous devez suivre les étapes ci-dessus pour obtenir le source de cette librairie.

Avec FFmpeg et ma Matrox G400, je peut voir des films DivX en haute résolution sans sauter de trames sur mon K6/2 500.

2.2.1.3 Codecs XAnim

Avant-propos:
Soyez prévenu que les codecs binaires XAnim sont packagées avec un un morceau de texte revendiquant être la licence liée au logiciel qui, entre autres restrictions, interdit à l'utilisateur d'utiliser les codecs en conjonction avec n'importe quel autre programme que XAnim. Cependant l'auteur de XAnim n'a encore entrepris d'actions légales contre quiconque pour des problèmes relatifs aux codecs.

MPlayer est capable d'employer les codecs XAnim pour décoder. Suivez les instructions pour les activer:

  1. Téléchargez les codecs que vous désirez utiliser depuis le site d'XAnim. Le codec 3ivx n'y est pas, il est sur le site de 3ivx.
  2. Utilisez l'option --with-xanimlibdir pour dire à configure où trouver les codecs XAnim. Par défaut, il les cherche dans /usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim. Vous pouvez également fixer la variable d'environnement XANIM_MOD_DIR avec le répertoire des codecs XAnim.
  3. Renommez/faites des liens symboliques de ces fichiers, en séparant le reste de l'architecture, ils auront donc des noms comme ceux-ci: vid_cvid.xa, vid_h263.xa, vid_iv50.xa.

XAnim sont des codecs de la famille numéro 10, donc vous pouvez utiliser l'option -vfm 10 pour dire à MPlayer de les utiliser si possible.

Les codecs testés incluent: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263.

2.2.1.4 VIVO video

Mplayer peut lire les vidéos Vivo (1.0 et 2.0). Le codec le plus approprié pour les fichiers 1.0 est le décodeur H263 de FFmpeg, vous pouvez l'utiliser l'option -vc ffh263 (par défaut). Pour les fichiers 2.0, utilisez le fichier DLL Win32 ivvideo.dll, et installez-le sous /usr/lib/win32 ou l'endroit où vous avez placés les codecs Win32.

2.2.1.5 MPEG 1/2 video

MPEG1 et MPEG2 sont décodé par la librairie multiplateforme libmpeg2 native, dont le code source est inclus dans MPlayer. Nous gérons la vidéo MPEG 1/2 boguée en attrapant sig11 (segementation fault), et en réinitialisant rapidement le codec, continuant ainsi exactement où l'erreur c'est produite. Cette technique de récupération n'a pas d'influence mesurable sur la vitesse.

2.2.1.6 MS Video1

C'est un très vieux et très mauvais codec de Microsoft. Dans le passé il était décodé par le codec Win32 msvidc32.dll, maintenant nous avons notre propre implémentation open source (par Mike Melanson).

2.2.1.7 Cinepak CVID

MPlayer utilise son propre décodeur Cinepak, open source et multiplateforme par défaut. Il supporte les sorties YUV, donc le zoom matériel est possible si le pilote de sortie vidéo le permet.

2.2.1.8 RealVideo

MPlayer décode toutes les versions de RealVideo:

Il est recommandé de télécharger et d'installer RealPlayer8 ou RealONE, car MPlayer peut utiliser leurs librairies pour décoder les fichiers contenant de la vidéo RealVideo 2.0 - 4.0. Le script configure de MPlayer devrait détecter les librairies RealPlayer aux emplacements standards d'une installation complète. Si non, dites à configure où chercher avec l'option --with-reallibdir.

Note: Les librairies RealPlayer ne fonctionnent actuellement qu'avec Linux, FreeBSD, NetBSD et Cygwin sur les plateformes x86 et Alpha.

Note2: Nous ne pouvons pas distribuer les librairies RealPlayer, la licence ne nous y autorise pas. Vous devrez le récupérer vous-même.

2.2.1.9 XViD

XViD est un fork du développement du codec OpenDivX. Il est apparu quand ProjectMayo est passé d'OpenDivX au sources-fermées DivX4 (Maintenant DivX5), et les personnes extérieures à ProjectMayo travaillant sur OpenDivX se sont fâchés, et ont démarré XViD. Les deux projets ont donc la même origine.

Avantages:

Désavantages:

XViD n'est actuellement disponible que depuis le CVS. Voici les instructions de téléchargement et d'installation:

  1. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login
  2. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
  3. cd xvidcore/build/generic
  4. Editez le Makefile pour votre architecture (probablement Makefile.linuxx86) pour l'adapter à vos besoins.
  5. make -f Makefile.linuxx86
  6. Copiez les fichiers d'entête divx4.h et xvid.h depuis xvidcore/src/ dans /usr/local/include/.
  7. Prenez encore2.h et decore.h depuis le paquetage DivX4Linux, et copiez-les dans /usr/local/include/.
  8. Recompilez MPlayer avec --with-xvidcore=/chemin/de/libxvidcore.a.

2.2.1.10 Sorenson

Sorenson est une famille de codec vidéo développée par Sorenson Media et licenciée à Apple qui le distribue avec son lecteur QuickTime. Nous sommes actuellement capables de décoder toutes les versions des fichiers Sorenson avec les décodeurs suivants:

Compiler MPlayer avec le support des librairies QuickTime

NOTE: actuellement seules les plateformes Intel 32bit sont supportées.

  1. téléchargez le CVS de MPlayer
  2. compilez MPlayer avec:
    $ ./configure --enable-qtx-codecs
  3. téléchargez le pack de DLL QuickTime sur http://www.mplayerhq.hu/Mplayer/releases/codecs
  4. décompressez le pack de DLL QuickTime dans votre répertoire de codecs Win32(par défaut: /usr/lib/win32)

2.2.2 Codecs Audio

Les plus importants codecs audio par-dessus tout:

2.2.2.1 Décodage AC3 logiciel

C'est le décodeur utilisé par défaut pour les fichier avec de l'audio AC3.

Le décodeur AC3 peut créer des sortie audio mixées pour 2, 4 ou 6 haut-parleurs. Quand il est configuré pour 6 haut-parleurs, ce décodeur fournit des sorties séparées pour tous les canaux AC3 du pilote son, autorisant la pleine expérience du "son surround" sans décodeur AC3 externe requis pour l'usage du codec hwac3.

Utilisez l'option -channels pour sélectionner le nombre de canaux de sortie. Utilisez -channels 2 pour un mix stéréo. Pour un mix 4 canaux (Avant Gauche, Avant Droite, Surround Gauche et Surround Droit), utilisez -channels 4. Dans ce cas, l'éventuel canal du centre sera mixé à part égale sur les canaux de devant. -channels 6 sortira tous les canaux AC3 tels qu'ils ont été encodé - dans l'ordre Gauche, Droite, Surround Gauche, Surround Droit, Centre et LFE.

Le nombre de canaux par défaut est 2.

Pour utiliser plus de 2 canaux de sortie, vous devrez utiliser OSS, et avoir une carte son qui supporte le nombre de canaux de sortie requis via le ioctl SNDCTL_DSP_CHANNELS. Un exemple de driver approprié est emu10k1 (utilisé par la carte Soundblaster Live!) depuis Août 2001 (Le CVS ALSA est également sensé fonctionner).

2.2.2.2 Décodage AC3 matériel

Vous avez besoin d'une carte son gérant l'AC3, avec une sortie numérique (SP/DIF). Le pilote de la carte doit supporter correctement le format AFMT_AC3 (C-Media le fait). Connectez le décodeur AC3 à la sortie SP/DIF, et utilisez l'option -ac hwac3. C'est expérimental mais cela fonctionne avec les cartes C-Media, Soundblaster Live! en utilisant les pilotes ALSA (mais pas OSS) et les décodeurs MPEG DXR3/Hollywood+.

2.2.2.3 support libmad

libmad est une librairie de décodage MPEG audio multiplateforme. Il ne gère pas très bien les fichiers endommagés, et il à parfois des problèmes pour le déplacement.

Pour en activer le support, compilez avec l'option de configuration --enable-mad.

2.2.2.4 VIVO audio

Le codec audio utilisé dans les fichiers VIVO dépends du fait que ce soit un fichier VIVO/1.0 ou VIVO/2.0. Les fichiers VIVO/1.0 ont de l'audio g.723, et les fichiers VIVO/2.0 de l'audio Vivo Siren. Les deux sont supportés. Vous pouvez attraper les DLL Win32 g.723/Siren depuis le site de MPlayer, puis les copier dans le répertoire /usr/lib/win32.

2.2.2.5 RealAudio

MPlayer supporte le décodage de presque toutes les versions de RealAudio:

Pour savoir comment installer les librairies RealPlayer, voyez la section RealVideo.

2.2.2.6 Codecs QDesign

Les flux audio QDesign (fourcc: QDMC, QDM2) sont trouvés dans les fichiers MOV/QT. Les deux versions de ce codec peuvent être décodées avec les librairies QuickTime libraries. Pour les instructions d'installation merci de voir la section codec vidéo Sorenson.

2.2.2.7 Codecs Qualcomm

Le flux audio Qualcomm (fourcc: Qclp) se trouve dans les fichiers MOV/QT. Il peut être décodé par les librairies QuickTime. Pour les instructions d'installation veuillez lire la section codec vidéo Sorenson.

2.2.3 Comment importer des codecs

2.2.3.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 librairie 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/[nomcodec]/

Note: Sur Windows NT/2000/XP cherchez cette info dans la base de registre, c-a-d cherchez "VIDC.HFYU". Pour savoir comment faire cela, regardez la l'ancienne méthode DirectShow ci-dessous.

2.2.3.2 DirectShow codecs

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

Nouvelle Méthode: En utilisant Microsoft GraphEdit (rapide)

  1. Obtenez GraphEdit depuis le SDK DirectX ou sur Doom9.
  2. Exécutez graphedit.exe.
  3. Dans le menu sélectionnez Graph -> Insert Filters.
  4. Dépliez l'élément DirectShow Filters.
  5. Sélectionnez le bon nom de codec et dépliez l'élément.
  6. Dans l'entrée DisplayName regardez le texte entre accolades après le backslash et notez-le (cinq blocs délimités par des tirets, le GUID).
  7. Le binaire du codec binary est le fichier spécifié dans l'entrée Filename.

Note: Si il n'y a pas d'entrée Filename et que DisplayName contient quelque chose comme device:dmo, alors c'est un codec DMO, qui n'est actuellement pas supporté par MPlayer.

Ancienne Méthode: Respirez à fond et fouillez dans la base de registre...

  1. Exécutez regedit.
  2. Pressez Ctrl-f, décochez les deux premières cases, et cochez la troisième. Entrez le fourcc du codec. (par ex.: TM20)
  3. vous devriez trouver un champ contenant le chemin et le nom du fichier utilisé (par ex. C:\WINDOWS\SYSTEM\TM20DEC.AX).
  4. Maintenant que nous avons le 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'apparaît, pas de chance. Essayez de le deviner. (par ex. cherchez : TrueMotion)
  5. S'il apparaît dans la base de registre, il devrait apparaître 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...

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/[nomcodec]/