7.1. Codecs vidéo
Précédent | Chapitre 7. Codecs Supportés | Suivant

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

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

### 7.1.2. 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):

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/vers/`libxvidcore.a` `--with-xvidincdir=`/chemin/vers/`xvid.h`.

### 7.1.3. x264

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

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

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

#### 7.1.3.4. 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`.

Précédent | Niveau supérieur | Suivant
Chapitre 7. Codecs Supportés | Sommaire | 7.2. Codecs audio