2.2. Codecs Supportés
Précédent | Chapitre 2. Fonctionnalités | Suivant

## 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. Très peu de codecs sont disponibles en téléchargement sur notre page web. Récupérez-les depuis notre page des codecs.

Les plus importants d'entre eux:

- vidéo MPEG1 (VCD) et MPEG2 (DVD)
- décodeurs natifs pour DivX ;-), OpenDivX (DivX4), DivX 5.01, 3ivX, MS MPEG4 v1, v2 et autres variantes MPEG4
- décodeur natif pour Windows Media Video 7/8 (WMV1/WMV2), et décodeur DLL Win32 pour Windows Media Video 9 (WMV3), utilisés tous les deux dans les fichiers `.wmv`
- décodeur Sorenson 1 (SVQ1) natif
- décodeur Sorenson 3 (SVQ3) natif
- décodeur 3ivx v1, v2
- codecs Cinepak et Intel Indeo (3.1,3.2,4.1,5.0)
- MJPEG, AVID, VCR2, ASV2 et autres formats matériels
- VIVO 1.0, 2.0, I263 et autres variantes H.263(+)
- FLI/FLC
- RealVideo 1.0 & 2.0 de `libavcodec`, et RealVideo 3.0 & 4.0 en utilisant les librairies RealPlayer
- décodeur natif pour HuffYUV
- vieux et simples formats variés similaires à RLE

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. La première version (alpha) disponible fût OpenDivX 4.0 alpha 47 et 48. Son support était inclu 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 MPEG-1/2. Maintenant nous utilisons notre propre code, pour tous les types de fichiers.

La 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éconseillé. Cependant, il est utile pour l'encodage. Un désavantage de ce codec est que ses sources ne sont pas disponibles sous une licence Open Source.

DivX4 fonctionne dans deux modes:

`-vc odivx`
  Utilise le codec à 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.

Le codec binaire de DivX4/5 peut être téléchargé depuis avifile ou divx.com 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 l'ANCIENNE librairie principale OpenDivX 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. Hé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/libdivxencore.so /usr/local/lib/libdivxencore.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. FFmpeg/libavcodec

FFmpeg contient un codec open source, qui est capable de décoder des flux encodés avec des codecs audio et vidéo variés. Il offre également un confort d'encodage impressionnant et une plus grande vitesse que les codecs Win32 ou les librairies DivX4/5 de DivX.com !

Il contient plein de bons codecs, les plus importants étant les variantes MPEG-4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Le décodeur WMA est également très intéressant.

Le codec le plus récent est le codec Sorenson 3 (SVQ3). C'est la première implémentation complètement opensource de ce codec. Il est même plus rapide que l'original. Assurez-vous d'utiliser celui-ci à la place du codec binaire !

Pour avoir la liste complète des codecs supportés veuillez vous reporter à la page web de FFmpeg. Codecs video et audio supportés.

Si vous utilisez une version officielle, vous avez `libavcodec` directement dans le paquet, 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 sont très rares. Le CVS est pratiquement stable et offre plus de fonctions. Pour y arriver faites:

1.     cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login

2.     cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec

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. Si vous préférez que `libavcodec` soit mis à jour en même temps que vous mettez à jour le CVS de MPlayer, indiquez la ligne suivante dans le fichier `main/CVS/Entries`:

       D/libavcodec////

5. Compilez. `configure` devrait détecter les problèmes avant la compilation.

### Note

La version CVS de MPlayer 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

### Note

Soyez prévenu que les codecs binaires XAnim sont packagées avec 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.

INSTALLATION ET UTILISATION. 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. OU téléchargez le pack de codecs depuis notre page des codecs.

3. Utilisez l'option `--with-xanimlibdir` pour dire à `configure` où trouver les codecs XAnim. Par défaut, il les cherche dans `/usr/local/lib/codecs`, `/usr/local/lib/xanim/mods`, `/usr/lib/xanim/mods` et `/usr/lib/xanim`. Vous pouvez également définir la variable d'environnement `XANIM_MOD_DIR` avec le répertoire des codecs XAnim.

4. 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 `xanim`, donc vous pouvez utiliser l'option `-vfm xanim` pour dire à MPlayer de les utiliser si possible.

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

#### 2.2.1.4. vidéo VIVO

MPlayer peut lire les vidéos Vivo (1.0 and 2.0). Le codec le plus approprié pour les fichiers 1.0 est le décodeur H.263 de FFmpeg, vous pouvez l'utiliser avec l'option `-vc ffh263`. Pour les fichiers 2.0, utilisez la DLL Win32 par l'intermédiaire de l'option `-vc vivo`. Si vous ne fournissez pas d'options en ligne de commande,MPlayer sélectionne le meilleur codec automatiquement.

#### 2.2.1.5. vidéo MPEG-1/2

MPEG-1 et MPEG-2 sont décodés 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 le `Signal 11` (`segmentation 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, Cinepak CVID, et autres vieux codecs

MPlayer est capable de lire la plupart des vieux codecs utilisés dans les fichiers AVI et MOV. Dans le passé ces fichiers étaient décodés par des codecs Win32 binaires, mais maintenant nous avons des codecs natifs pour la plupart d'entre eux en utilisant `libavcodec`.

#### 2.2.1.7. RealVideo

MPlayer décode toutes les versions de RealVideo:

- RealVideo 1.0, 2.0 (fourcc RV10, RV20) - en/décodage supporté par `libavcodec`
- RealVideo 3.0, 4.0 (fourcc RV30, RV40) - décodage supporté par les librairies RealPlayer

Téléchargez les codecs sur http://www.mplayerhq.hu/MPlayer/releases/codecs/. Extrayez-les dans le répertoire `/usr/local/lib/codecs`. Si vous voulez les placer à un endroit différent, passez l'option `--with-reallibdir` à configure.

### Note

Les librairies RealPlayer ne fonctionnent actuellement qu'avec Linux, FreeBSD, NetBSD et Cygwin sur les plateformes x86, Alpha et PowerPC (Linux/Alpha et Linux/PowerPC ont été testés), et avec Mac OS X.

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

- open source
- son API est compatible avec DivX4 donc en inclure le support est facile
- encodage en 2 passes
- bonne qualité d'encodage, plus grande vitesse que DivX4 (vous pouvez l'optimiser pour votre machine pendant la compilation)

DÉSAVANTAGES

- actuellement il ne décode pas correctement tous les fichiers DivX/DivX4 (ce n'est pas un problème puisque `libavcodec` peut les lire)
- en développement

INSTALLATION DE LA VERSION CVS DE XVID

XviD n'est actuellement disponible que depuis le CVS. Voici les instructions de téléchargement et d'installation (vous aurez besoin d'au moins autoconf 2.50, automake et libtool) :

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.     ./bootstrap.sh

5.     ./configure

   Vous pouvez avoir à ajouter des options (examinez la sortie de

       ./configure --help

   ).

6.     make && make install

7. Si vous avez spécifié `--enable-divxcompat`, copiez `../../src/divx4.h` dans `/usr/local/include/`.

8. Recompilez MPlayer avec `--with-xvidlibdir=`/chemin/de/`libxvidcore.a` `--with-xvidincdir=`/chemin/de/`xvid.h`

#### 2.2.1.9. Sorenson

Sorenson est un codec vidéo développé 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:

- Sorenson Video v1 (fourcc SVQ1) - décodage supporté par un codec natif (`libavcodec`)
- Sorenson Video v3 (fourcc SVQ3) - décodage supporté par un codec natif (`libavcodec`)

COMPILATION DE MPLAYER AVEC LE SUPPORT DES LIBRAIRIES QUICKTIME

### Note

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

1. téléchargez le CVS de MPlayer

2. téléchargez le pack de DLL QuickTime sur http://www.mplayerhq.hu/MPlayer/releases/codecs/

3. décompressez le pack de DLL QuickTime dans votre répertoire de codecs Win32 (par défaut: `/usr/local/lib/codecs/`)

4. compilez MPlayer

### 2.2.2. Codecs audio

Les plus importants d'entre eux:

- MPEG layer 1/2/3 (MP1/2/3) audio (code natif, avec optimisation MMX/SSE/3DNow!)
- Windows Media Audio 7 et 8 (alias WMAv1 et WMAv2) (code natif, avec `libavcodec`)
- Windows Media Audio 9 (WMAv3) (en utilisant la DLL DMO)
- AC3 Dolby audio (code natif, avec optimisation MMX/SSE/3DNow!)
- AC3 par l'intermédiaire de la carte son
- AAC
- codec audio Ogg Vorbis (librairie native)
- RealAudio: DNET (AC3 bas débit), Cook, Sipro et ATRAC3
- QuickTime: codecs audio Qualcomm et QDesign
- VIVO audio (g723, Vivo Siren)
- Voxware audio (en utilisant la DLL DirectShow)
- alaw et ulaw, formats divers gsm, adpcm, pcm et autres vieux codecs audio simples

#### 2.2.2.1. Décodage AC3 logiciel

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

Le décodeur AC3 peut créer des sorties 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és - 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 (S/PDIF). Le pilote de la carte doit supporter correctement le format AFMT_AC3 (C-Media le fait). Connectez le décodeur AC3 à la sortie S/PDIF, 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 multi-plateforme de décodage MPEG audio entière (24bit PCM interne) uniquement. Elle ne gère pas très bien les fichiers endommagés, et elle a parfois des problèmes pour le déplacement, mais elle peut mieux se comporter que mp3lib sur des plateformes sans FPU (tel que ARM).

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

#### 2.2.2.5. RealAudio

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

- RealAudio DNET - décodage supporté par `liba52`
- RealAudio Cook/Sipro/ATRAC3 - décodage supporté par les librairies RealPlayer

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

#### 2.2.2.6. Codecs QDesign

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

#### 2.2.2.7. Codec Qualcomm

Les flux audio Qualcomm (fourcc:Qclp) se trouvent dans les fichiers MOV/QT. Pour les instructions d'installation merci de voir la section codec vidéo Sorenson.

#### 2.2.2.8. Codec AAC

AAC (Advanced Audio Coding) est un codec parfois présent dans les fichiers MOV et MP4. Un décodeur open source appelé FAAD est disponible sur http://www.audiocoding.com. MPlayer inclus libfaad 2.0RC1, vous n'avez donc pas à l'obtenir séparemment.

Si vous utilisez gcc 3.2 qui ne peut pas compiler notre FAAD interne, ou si vous voulez utiliser une librairie externe pour d'autres raisons, téléchargez la librairie dpuis la page de téléchargements et passez `--enable-external-faad` à `configure`. Vous n'avez pas besoin de tout faad2 pour décoder les fichiers AAC, libfaad suffit. Construisez comme ceci:

    cd faad2/
    chmod +x bootstrap
    ./bootstrap
    ./configure
    cd libfaad
    make
    make install

Les binaires ne sont pas disponibles sur audiocoding.com, mais vous pouvez obtenir les paquets Debian sur la page web de Christian Marillat, les RPMs Mandrake sur le P.L.F et les RPMS Red Hat sur Grey Sector.

### 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 (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 = codec HuffYUV, 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

Nous aurons donc 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

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

#### 2.2.3.2. Codecs DirectShow

DirectShow est une API vidéo récente pour Windows, sans doute plus mauvaise que la précédente. La situation est plus délicate avec DirectShow, puisque

- `system.ini` ne contient aucune information, qui sont désormais placées dans la base de registre et
- nous avons besoin du GUID du codec.

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

Ancienne Méthode

Respirez à fond et fouillez dans la base de registre...

1. Lancez 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 File -> Properties -> Advanced. 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, vous devriez voir un champ FriendlyName et un champ CLSID. Copiez les 16 octets 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]/`

Si vous voulez ajouter un codec vous-même, lisez DOCS/tech/codecs.conf.txt (en anglais).

Précédent | Niveau supérieur | Suivant
2.1. Formats supportés | Sommaire | 2.3. Sorties vidéo