Eliminer les conflits de codecs, se passer de packs : FFdshow

On installe, on désinstalle, on met à jour, le fichier xyz ne passe pas, pas de son, plus de vidéo. Le conflit de codec est une plaie. Les packs de codecs proposent d'installer tellement de choses qu'on s'y perd, à la longue et le système s'encroute... voici quelques mises au point, et une manière de s'en sortir, avec l'excellent ensemble de filtres FFdshow.

Et FFdshow est multi-thread, donc tire partie des CPU multi-coeurs, et saura décoder le H246, He-AAC, et les formats dits "exotiques" (lisez : "moins courants").  ;-)

Filtre, codec, conteneur.

Avant toute chose, quelques clarifications, car les termes sont souvent confondus, et on lit des erreurs un peu partout. Ca se corse lorsque un mot désigne un codec et conteneur (MPEG par exemple), ou est utilisé à tort de cette manière.
Norme vidéo : la norme est la façon de traiter les données, le codec l'implémente. Mpeg4 est une norme, Xvid (et autres) est un codec qui implémente cette norme. Par norme on veut dire la façon de travailler avec les images, il y a des familles.
Codec : le codec (codeur-decodeur) est ce qu'on est tenté d'appeler "format" : la manière ("langage") dont on stocke et écrit les données. H264 est une norme vidéo, le codec est X264 : il réalise les règles fixées par la norme. Dans la norme Mpeg4, on trouve ainsi le Divx, le Xvid. Les deux respectent les règles fixées par la norme, mais chacun l'interprète de façons différentes, plus ou moins optimisées.
Conteneur : le conteneur, c'est la boite dans laquelle on range les flux audio, vidéo, et les sous titres. MKV, AVI par exemple sont des conteneurs. Un conteneur AVI peut contenir un flux vidéo Divx ou Xvid avec un son MP3 ou AC3. Le conteneur MKV a d'autres caractéristiques (chapitrage, sous titres inclus, etc...). Le conteneur détermine l'extension du fichier.

Lire un fichier audio-vidéo

Pour lire un fichier audio vidéo, contrairement à ce que l'on lit, un codec n'est pas obligatoire. Un filtre suffira. Le filtre contrairement au codec ne se charge que du décodage des formats. Le logiciel que vous utilisez décode le conteneur, et fait l'interface entre les données et les décodeurs. S'il dispose de filtres installés sur le système il pourra lire le fichier, si des codecs sont installés également, et parfois, le logiciel contient ses propres filtres ou codecs (VLC et Gom player par exemple).

Si vous en avez marre des conflits de codecs, des packs, installez FFdshow (après avoir désinstallé tous vos packs et codecs, pour repartir à zéro) : tous les filtres nécessaires sont mis à votre disposition. Un codec permettra d'encoder des fichiers. Dans 99% des cas, seule la lecture compte, et pour transcoder (convertir d'un codec et/ou conteneur à un autre), vous utilisez déjà des logiciels qui contiennent leurs propres modules et n'utilisent pas les codecs installés et disponibles.

Fonctionnement de FFdshow

Une fois installé, vous pourrez trouver cette interface dans le menu démarrer. Une partie vidéo ET une partie audio, si vous avez installé celui qui est proposé en fin de billet, la version officielle de base ne propose pas la partie audio ni les derniers raffinements vidéo.

Pour que le décodage de tel ou tel format soit pris en charge, vous devez le sélectionner dans la colonne décodeur. La partie 4CC désigne les indicateurs contenus dans vos fichiers, que les programmes reconnaissent.

Ici par exemple, pour décoder le format DivX, vous pouvez passer par FFdshow en validant libavcodec (la librairie de FFdshow), ou bien XviD, qui désigne le codec s'il est encore installé chez vous. FFdshow n'étant pas intrusif, il peut ne pas être associé à tel ou tel format.

Répétez l'opération pour autant de formats qu'il le faut, dans la partie vidéo comme audio.

Comment vérifier que FFdshow décode mon fichier ?

Simple : regardez dans la systray, vous devez avoir ces icônes, une pour la vidéo, l'autre pour l'audio (tant que vous avez bien assigné à FFdshow le décodage des formats, et que vous avez laissé ceci coché :

Vous utilisez VLC ou un autre programme qui utilise ses propres librairies ? Il faut à ce moment désactiver ce réglage du côté du programme. Dans Gom Player, par exemple, cela se fait ici :

Cela désactive donc l'utilisation des modules inclus dans Gom et laisse le champ libre à FFdshow. VLC utilise ses librairies mais ne laisse pas le choix, il n'exploitera donc pas l'installation de FFdshow, mais ses librairies le remplacent, donc si vous utilisez VLC, FFdshow ne vous intéressera guère. sur ce principe, il est logique que Media Player Classic (MPC) soit associé à FFdshow, qui le dote de ses capacités de décodage...

Installation

Vous pouvez dès l'installation associer FFdshow à certains formats, la configuration restera possible après coup (voir début du billet).

Plus intéressant, une liste des programmes compatibles (utilisant les filtres directshow), vous pouvez limiter si besoin, par défaut, laissez comme suit :

Enfin, la configuration des haut parleurs, modifiable après coup, mais cette interface est plus intuitive :

Que ceci... (cochez GRV pour caisson de graves).

On notera que pour la partie audio comme pour la partie vidéo, FFdshow propose des filtres dynamiques, activables et désactivables à souhait et en direct.

Le forum est ouvert pour tout problème de codecs.  ;-)

OS: Windows
Langue: Multilingue
Licence: Open Source

Téléchargement version tryout (testée ici, décodage audio, etc)
Page d'accueil et téléchargement (Site officiel, version de base)