Windows et DirectShow :
Les filtres indispensables

Objectifs

Ce guide a pour but de présenter les différents éléments indispensables à installer pour lire une vaste gamme de fichiers multimédias sous Windows, au travers de son API dédiée, DirectShow. Il ne s'adresse donc pas en premier lieu aux débutants ou aux utilisateurs en quête de simplicité, mais plus aux utilisateurs exigeants, ayant des besoins spécifiques ou simplement curieux. Ici, pas de lecteur tout-en-un ou de pack de codecs, le but est d'installer un par un tous les éléments, tout en conservant une configuration propre, simple et efficace. Cette méthode manuelle est bien sûr un peu plus longue, mais reste plus puissante et polyvalente.

Introduction

Commençons par quelques définitions pour pouvoir bien suivre la suite de ce guide. Sous Windows, la lecture des fichiers multimédias se fait le plus souvent via le système DirectShow. Cette lecture est possible grâce à un ensemble de filtres, chacun étant chargé d'une partie du travail suivant le schéma ci-dessous. On peut donc voir que sous le nom très connu de codecs se cache en fait souvent de nos jours des splitters ou de simples décodeurs. Les codecs existent bien sur toujours (Xvid par exemple) mais de plus en plus, de nombreux filtres DirectShow sont abusivement appelés codecs alors qu'ils n'ont plus vraiment ce rôle.

Quand on ouvre un fichier, le premier filtre utilisé est le splitter. Il va prendre le fichier et en extraire ses différentes parties : flux audio, vidéo, sous-titres, chapitres... Ensuite, viennent les fameux codecs (CODeurs-DECompresseurs), ce sont ceux qui décodent les flux audio ou video compressés. De plus en plus souvent, cependants, ils ne sont que des décodeurs, étant séparé des encodeurs. Puis en dernier viennent les renderers, qui se chargent d'afficher l'image sur l'écran ou de fournir le son aux hauts-parleurs.

Les filtres peuvent hélas interférer entre eux et causer des conflits : DirectShow n'est pas du tout efficace dans la prévention de tels problèmes. Il est donc crucial de n'en installer que le minimum vital, et de ne prendre que ceux venant d'une source fiable. C'est pour cette raison que la quasi-totalité des packs de codecs sont à éviter. Ces derniers, se voulant universels, installent une multitude de filtres souvent redondants, buggés ou inutiles, et multiplient ainsi les risques de conflits et de ralentissement du système. Les rares packs de codecs acceptables (et uniquement pour un utilisateur débutant ou manquant de temps) sont ceux déployant une stratégie inverse, en installant le moins de filtres possibles. Un des rares packs répondant à ces critères se nomme CCCP. Son but est en effet essentiellement d'automatiser la création d'une configuration très proche de ce que je présente de façon détaillée dans cette page.

Avant de poursuivre et d'installer les filtres conseillé plus bas il est fortement conseillé de désinstaller tout codec et tout "pack de codecs" installés sur l'ordinateur, en particulier si l'on observe déjà des problèmes. Il faut partir de la configuration la plus propre possible (la plus proche possible d'un Windows fraichement installé) pour optimiser les performances et la stabilité. Pour tout savoir de cette étape, lire la section nettoyer DirectShow. Il est aussi très fortement recommandé de mettre à jour DirectX pour avoir la dernière version possible.

Les filtres DirectShow indispensables

Ces trois filtres sont sans conteste le cœur inévitable de toute installation digne de ce nom, quelque soit les besoins de l'utilisateur.

FFDShow

Ce filtre est un indispensable couteau suisse : il supporte quasiment tout les principaux formats vidéos (DivX, XviD, h364, MPEG-4 divers) et audios (MP3, AAC, OGG, AC3...), du moment qu'il existe des décodeurs open-source les gérant. Ce n'est pas un pack de codec, comme on pourrait le croire en voyant sa grande polyvalence, mais bel et bien un filtre unique, un logiciel libre basé sur de nombreuses bibliothèques de décodage dont libavcodec issu de FFMPEG (tout comme MPlayer). Contrairement aux packs qui sont le plus souvent un assemblage branlant de codecs créés par différents auteurs, c'est un tout cohérent qui n'a que très peu de chance de causer des conflits.

Au moment de l'installation, FFDShow vous demandera quels formats vidéo et audio vous voulez qu'il prenne en charge. Voici un exemple de configuration recommandée. Si vous n'avez pas de besoins spécifiques ou ne connaissez pas tous ces formats, inutile de la changer, mais sinon, n'hésitez pas à mettre vos propres préférences. Dans tous les cas, toute cette configuration peut-être changé facilement après installation en cas de besoin.

Installation de FFDShow - Codecs Vidéos Installation de FFDShow - Codecs Audios

Haali Splitter

De tous les filtres splitters disponibles, celui de Haali est sans doute le plus complet, ce qui en fait le meilleur choix possible. Gratuit (mais non libre), l prend en charge les conteneurs avi, ogm, mkv, mp4 et mpeg. Il est conseillé de garder les options par défaut au moment de l'installation :

Installation de Haali Media Splitter

VS Filter (DirectVobSub)

Ce filtre est quant à lui le couteau suisse pour la lecture de sous-titres de type softsubs. Il permet de lire aussi bien les flux de sous-titres incorporés à des fichiers conteneurs (ogm, mkv...) que les sous-titres dans un fichier externe (ce dernier doit alors avoir exactement le même nom que le fichier video, à l'extension près). Il supporte de nombreux formats dont notamment : SRT (texte simple), SSA/ASS (texte mis en forme et effets spéciaux) et VobSub (sous-titres de DVD). Il est issu du logiciel libre Media Player Classic, et en conséquence existe en plusieurs versions : internes ou externes, chacune existant également en plusieurs versions (projet original et forks)

Les filtres quasi-indispensables

Ces trois filtres sont tout autant inévitables que les précédents, mais pourront être un peu moins utiles en fonction des besoins de l'utilisateur.

Flash Video Splitter

Les fichiers FLV sont les fichiers vidéos inclus dans les présentations Flash. Encore inconnus il y a peu, ils se multiplient très rapidement avec le succès de sites comme YouTube et de logiciels comme Miro. Il est dont très utile de pouvoir les lire. Le filtre FLV Splitter est issu du logiciel libre Media Player Classic, et en conséquence existe en plusieurs versions : internes ou externes, chacune existant également en plusieurs versions (projet original et forks). Notez aussi qu'il n'est utile que si vous utilisez un autre lecteur que MPC-HC, et en combinaison avec FFDShow .

Lecture des DVD

La lecture des DVD sur PC, malgré son statut de standard international et omniprésent, a longtemps été difficile, voire impossible, avec des logiciels libres et/ou gratuits. Cela était du à la présence du système de chiffrement CSS et la nécessité de payer une licence auprès du DVD Consortium. Mais de nos jours, grâce à l'interopérabilité et l'ingéniererie inverse, il est possible de lire ses DVD sans passer par un logiciel payant et propriétaire. Cependant, ils outrepassent de fait le cryptage CSS des DVD, et pour cette raison, leur légalité est parfois fortement mise en question dans certains pays.

Pour lire des DVD via DirectShow, le filtre le plus important à installer est celui permettant de décoder le MPEG-2. En effet, un filtre de navigation est fourni avec Windows, et l'audio (AC3, DTS...) est pris en charge par FFDShow. Un des meilleurs choix est le MPEG-2 Decoder créé à l'origine par Gabest. Il est issu du logiciel libre Media Player Classic, et en conséquence existe en plusieurs versions : internes ou externes, chacune existant également en plusieurs versions (projet original et forks).

Microsoft Windows Media Video 9 VCM

Cet ensemble de filtres gratuits est utile uniquement pour ceux ayant un Windows assez ancien (98, 2000...), et ne voulant pas mettre à jour Windows Media Player. Il permet en effet de lire les vidéos utilisant les codecs Windows Media les plus récents de Microsoft, sans rien installer d'autre. Ils marchent même avec le vieux Windows Media Player 6.4. De nos jours, ces filtres seront cependant déjà installés sur la plupart des ordinateurs.

MediaPlayerConnectivity

Les filtres présentées ci-dessus sont idéaux pour lire un fichier présent sur votre disque dur, avec un lecteur vidéo classique. Cependant, une autre méthode de plus en plus courante pour lire des vidéos est le streaming. La vidéo est intégrée à une page web, ouverte dans un navigateur. Pour éviter d'installer des plugins propriétaires et souvent lourds ou invasifs, la solution idéale est l'extension MediaPlayerConnectivity pour Firefox. Cette dernière permet de créer un lien entre le navigateur et n'importe quel lecteur vidéo (MPC-HC, VLC, MPLayer...). La lecture des streamings en devient facilitée et plus puissante.

Conclusion

En suivant les instructions de cette page, vous devriez avoir une configuration stable et performante capable de lire la plupart des fichiers multimédias du net ou d'ailleurs. Si un fichier d'un format rare vous résiste, ou si vous désirer gérer finement les filtres installés sur votre système, il existe des utilitaires à cet effet. Si vous désirez avoir plus d'informations sur divers filtres alternatifs non-cités sur cette page (redondants, optionnels, moins utiles...), rendez-vous sur la page des filtres alternatifs. Si vous voulez en savoir plus sur le multimédia, revenez à l'index.


Un commentaire ? Une question ?
Venez donc sur le forum dédié.
Avertissement : Ce petit guide est écrit en toute bonne foi et dans le seul but d'aider des utilisateurs, et il ne contient a priori pas de conseils dangereux. Son utilisation se fait cependant entièrement à vos risques et périls. Je ne saurai cependant en aucun cas être tenu responsable de tout problème (perte de données, intrusion, etc...) qui pourrait survenir sur votre ordinateur.
Creative Commons License
Ce tutoriel est mis à disposition sous un contrat Creative Commons.
Version 4.1 - 12 avril 2009