# Codecs Supportés

## Codecs vidéo

La table d'état des codecs est une liste complète, générée quotidiennement. Quelques codecs binaires à utiliser avec MPlayer sont disponibles dans la section téléchargement de notre page web.

Les plus importants d'entre eux:

- vidéo MPEG1 (VCD) et MPEG2 (DVD)

- décodeurs natifs pour toutes les versions de DivX 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.

### FFmpeg/libavcodec

FFmpeg contient libavcodec, la bibliothèque de codecs audio et vidéo leader de l'open source. Elle est capable de décoder la plupart des formats multimédia (habituellement plus rapidement que les solutions alternatives) et ambitionne de toutes les décoder un jour. C'est le décodeur par défaut pour la majorité des codecs que MPlayer gère. L'encodage est aussi possible dans certains formats, et est géré par MEncoder.

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

MPlayer contient libavcodec. Lancez juste `./configure` et compilez.

### Xvid

Xvid est un logiciel libre de codec video conforme au MPEG-4 ASP, qui possède des fonctionnalités d'encodage en 2 passes et un support complet du MPEG-4 ASP, rendant la chose beaucoup plus efficace que le bien connu codec DivX. Il donne une très bonne qualité video et obtient de bonnes performances grâce à une optimisation pour les processeurs les plus modernes.

Cela a commencé comme un fork du codec OpenDivX. Quand ProjectMayo a transformé le projet libre OpenDivX en projet propriétaire DivX4, 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.

Notez qu'Xvid n'est pas nécessaire pour décoder des vidéos encodée par Xvid. libavcodec est utilisé par défaut parce qu'il offre une vitesse supérieure.

Installer Xvid

Comme la plupart des logiciels open source, il est disponible en deux parfums: versions officielle et la version CVS. La version CVS est habituellement suffisament stable pour être utilisée, puisqu'elle bénéficie des corrections de bogues existant dans les versions officielles. Voici qui doit être fait pour faire fonctionner la version CVS de Xvid avec MEncoder (vous avez besoin au minimum de autoconf 2.50, automake et libtool):

-     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

-     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

-     cd xvidcore/build/generic

-     ./bootstrap.sh

-     ./configure

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

      ./configure --help

  ).

-     make && make install

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

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

### x264

#### Qu'est ce que le x264?

x264 est une librairie pour créer des flux video H.264. Il n'est pas 100% achevé, mais actuellement il bénéficie d'un minimum de support pour la plupart des fonctionalités du H.264 qui impactent la qualité. Il y a aussi de nombreuses fonctionalités avancées des specifications de H.264 qui n'ont rien avoir avec la qualité vidéo. La plupart d'entre elles ne sont pas encore implémentées dans le x264.

Fonctionnalités de l'encodeur

- CAVLC/CABAC

- Références multiples

- Intra: Tout les types de macrobloc (16x16, 8x8, et 4x4 avec toutes les prédictions)

- Inter P: Toutes les partitions (de 16x16 jusqu'à 4x4)

- Inter B: Les partitions de 16x16 jusqu'à 8x8 (incluant SKIP/DIRECT)

- Control Débit: quantificateur constant, débit constant, ABR simple ou multi-passe, VBV optionnel

- Détection de changement de scène

- Placement d'image B adaptatif

- images B commme références / ordre arbitraire d'image

- 8x8 et 4x4 transformation spaciale adaptative

- Mode sans perte

- Matrices de quantification personnalisées

- Encodage parallèle en multiples tranches

#### Qu'est ce que le H.264?

H.264 est un des noms pour le nouveau codec video numérique développé conjointement par l'ITU et le MPEG. Il peut être aussi correctement référencé avec les noms peu commodes de "ISO/IEC 14496-10" ou "MPEG-4 Part 10". Plus fréquement, on s'y réfère en tant que "MPEG-4 AVC" ou juste "AVC".

Qu'importe la façon de l'appeler, H.264 peut valoir le coup d'être essayé parce qu'il peut typiquement donner une qualité équivalente au MPEG-4 ASP avec 5%-30% de débit en moins. Concrètement, le résultat dépendra de la source d'encodage et de l'efficacité de l'encodeur. Les gains apportés par H.264 ne sont pas gratuits: Décoder un flux H.264 augmente considérablement les besoins en processeur et mémoire. Par exemple, sur un Athlon 1733 MHz, une vidéo H.264 en résolution DVD à 1500kbps demande environ 35% du processeur pour décoder. En comparaison, décoder un flux MPEG-4 ASP en résolution DVD à 1500kbps demande environ 10% du procésseur. Cela signifie que le décodage de flux haute-définition est quasiment hors de question pour la majorité des utilisateurs. Cela signifie aussi que même une vidéo en résolution DVD peut quelque fois être saccadé sur des processeurs plus lent que 2.0 GHz.

Au moins avec x264, les besoins lors de l'encodage ne sont pas bien pire que ce à quoi on est habitué avec le MPEG-4 ASP. Par exemple, sur un Athlon 1733 MHz un encodage DVD typique devrait tourner à 5-15fps.

Ce document n'a pas pour but d'expliquer H.264 en détail, mais si vous êtes intéressé par une brêve vue d'ensemble, vous voudrez peut-être lire (en anglais) The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions.

#### Comment puis-je lire les vidéos H.264 avec MPlayer?

MPlayer utilise le décodeur H264 de libavcodec. libavcodec a eu un décodeur H.264 un minimum utilisable environ juillet 2004, cependant des changements et améliorations majeurs ont été implémentés depuis cette date, à la fois en terme de fonctionalités supportées et d'utilisation du processeur. Pour être sûr de soi, c'est toujours une bonne idée d'utiliser une version récente extraite du dépot Subversion.

Si vous voulez une façon rapide et facile de savoir si il y a eu des changements récents au décodage H.264 de libavcodec, vous devriez garder un oeil sur Interface Web du Subversion de FFmpeg.

#### Comment puis-je encoder des vidéos avec MEncoder et x264?

Si vous avez le client Subversion installé, les dernières sources de x264 peuvent être récupérées avec cette commande:

        svn co svn://svn.videolan.org/x264/trunk x264

Les sources de MPlayer sont mises à jour lorsque survient un changement de l'interface de programmation de x264, donc il est toujours conseillé d'utiliser la version Subversion de MPlayer. Peut-être cette situtation changera quand et si une "release" de x264 survient. En attendant, x264 devra être considéré comme très instable, dans le sens où son interface de programmation est sujet à changement.

x264 est construit et installé de façon standard:

        ./configure && make && sudo make install

Ceci installe libx264.a dans /usr/local/lib et x264.h est placé dans /usr/local/include. Avec la bibliothèqye x264 et l'en-tête aux emplacements standards, construire MPlayer avec le support x264 est facile. il suffit de lancer le standard:

    ./configure && make && sudo make install

Le script `./configure` détectera automatiquement que vous satisfaisez aux conditions requises pour le x264.

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

- AC-3 Dolby audio (code natif, avec optimisation MMX/SSE/3DNow!)

- AC-3 par l'intermédiaire de la carte son

- AAC

- codec audio Ogg Vorbis (librairie native)

- RealAudio: DNET (AC-3 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

- Adaptive Multi-Rate (AMR) codecs de voix

### Décodage logiciel AC-3

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

Le décodeur AC-3 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 AC-3 du pilote son, autorisant la pleine expérience du "son surround" sans le décodeur AC-3 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, un éventuel canal central sera mixé à part égale sur les canaux de devant. `-channels 6` sortira tous les canaux AC-3 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 pilote approprié est emu10k1 (utilisé par la carte Soundblaster Live!) depuis Août 2001 ou un plus récent (Le CVS ALSA est également sensé fonctionner).

### Décodage matériel AC-3

Vous avez besoin d'une carte son gérant l'AC-3, 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 AC-3 à la sortie S/PDIF, et utilisez l'option `-ac hwac3`. C'est expérimental mais cela fonctionne avec les cartes C-Media et Soundblaster Live! + le pilote ALSA (mais pas OSS) et DXR3/Hollywood + les cartes décodeurs MPEG.

### Support libmad

libmad est une librairie multi-plateforme de décodage MPEG audio en nombre entier (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 unité à virgule flottante (tel que ARM).

Si vous avez une installation fonctionnelle de libmad, `./configure` le signalera et compilera le support du décodage du son MPEG audio via libmad automatiquement.

### Codec audio MPEG matériel

Ce codec (sélectionné par `-ac hwmpa`) passe directement les paquets audio MPEG vers les décodeurs matériels, comme ceux trouvés dans les cartes DVB et les adaptateurs DXR2. Ne l'employez pas en combinaison avec n'importe quel autre dispositif de sortie audio (comme OSS et ALSA) qui n'est pas capable de le décoder (vous n'entendriez que du bruit blanc).

### 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 . MPlayer inclus la version CVS de libfaad 2.1 beta, 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 depuis la page de téléchargements et passez `--enable-faad-external` à `./configure`. Vous n'avez pas besoin de tout faad2 pour décoder les fichiers AAC, libfaad suffit. Construisez comme ceci:

    cd faad2/
    sh 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/Mandriva sur le P.L.F et les RPMS RedHat sur Grey Sector.

### codecs AMR

Le dodec de voix Adaptive Multi-Rate est utilisé dans les téléphones mobiles de troisième génération (3G). L'implémentation de référence est disponible depuis Projet d'Association sur la 3ème Génération (gratuit pour un usage privé).

Pour activer le support, télécharger les sources pour les codecs AMR-NB et AMR-WB, mettez les dans le répertoire là où vous avez dézippé le source de MPlayer et lancez les commandes suivantes:

    unzip 26104-610.zip
    unzip 26104-610_ANSI_C_source_code.zip
    mv c-code libavcodec/amr_float
    unzip 26204-600.zip
    unzip 26204-600_ANSI-C_source_code.zip
    mv c-code libavcodec/amrwb_float

Après ça, suivez la procédure dinstallation. habituelle de MPlayer

## Comment importer les codecs Win32

### 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 qui a le HFYU fourcc (HFYU = codec HuffYUV, DIV3 = DivX Low Motion, etc...). Maintenant que vous savez cela, vous devez déterminer quelle DLL Windows utilise pour lire ce fichier. Dans votre cas, le fichier `system.ini` fournit cette information à une ligne comme:

    VIDC.HFYU=huffyuv.dll

Vous avez donc besoin du fichier `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. Maintenant que vous avez toutes les informations nécessaires (fourcc, fichier codec, fichier AVI). Demandez le support de votre codec par mail, et envoyez ces fichiers sur le site FTP : ftp://upload.mplayerhq.hu/MPlayer/incoming/[nomcodec]/

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

### Codecs DirectShow

DirectShow est la plus récente interface de programmation vidéo, encore pire que sa prédécesseur. Les choses snot encore plus difficiles avec DirectShow puisque

- `system.ini` ne contient pas les informations nécessaires 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)

- Obtenez GraphEdit depuis le SDK DirectX ou sur doom9.

- Exécutez `graphedit.exe`.

- Dans le menu sélectionnez Graph -> Insert Filters.

- Dépliez l'élément DirectShow Filters.

- Sélectionnez le bon nom de codec et dépliez l'élément.

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

- Le binaire du codec est le fichier spécifié dans l'entrée Filename.

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 commencez à fouiller dans la base de registre...

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

- Si le GUID 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.

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://upload.mplayerhq.hu/MPlayer/incoming/[nomcodec]/

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