Vue d’ensemble du système DirectShow

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Le défi du multimédia

L’utilisation du multimédia présente plusieurs défis majeurs :

  • Les flux multimédias contiennent de grandes quantités de données, qui doivent être traitées très rapidement.
  • L’audio et la vidéo doivent être synchronisés afin qu’ils démarrent et s’arrêtent en même temps et qu’ils soient lus au même rythme.
  • Les données peuvent provenir de nombreuses sources, notamment des fichiers locaux, des réseaux informatiques, des émissions de télévision et des caméras vidéo.
  • Les données sont disponibles dans différents formats, tels que Audio-Video entrelacés (AVI), ASF (Advanced Streaming Format), Motion Picture Experts Group (MPEG) et Digital Video (DV).
  • Le programmeur ne sait pas à l’avance quels appareils matériels seront présents sur le système de l’utilisateur final.

La solution DirectShow

DirectShow est conçu pour relever chacun de ces défis. Son objectif de conception main est de simplifier la tâche de création d’applications multimédias numériques sur la plateforme Windows, en isolant les applications des complexités des transports de données, des différences matérielles et de la synchronisation.

Pour obtenir le débit nécessaire pour diffuser de la vidéo et de l’audio, DirectShow utilise Direct3D et DirectSound chaque fois que possible. Ces technologies restituent efficacement les données sur les cartes son et graphiques de l’utilisateur. DirectShow synchronise la lecture en encapsulant des données multimédias dans des exemples horodatés. Pour gérer la variété de sources, de formats et d’appareils matériels possibles, DirectShow utilise une architecture modulaire, dans laquelle l’application mélange et met en correspondance différents composants logiciels appelés filtres.

DirectShow fournit des filtres qui prennent en charge les appareils de capture et de réglage basés sur le modèle de pilote Windows (WDM), ainsi que des filtres qui prennent en charge les anciennes cartes de capture vidéo pour Windows (VfW), et des codecs écrits pour les interfaces ACM (Audio Compression Manager) et Video Compression Manager (VCM).

Le diagramme suivant montre la relation entre une application, les composants DirectShow et certains des composants matériels et logiciels pris en charge par DirectShow.

architecture de haut niveau

Comme illustré ici, les filtres DirectShow communiquent avec et contrôlent un large éventail d’appareils, notamment le système de fichiers local, le tuner TV et les cartes de capture vidéo, les codecs VfW, l’affichage vidéo (via DirectDraw ou GDI) et le carte sonore (via DirectSound). Ainsi, DirectShow isole l’application de la plupart des complexités de ces appareils. DirectShow fournit également des filtres de compression et de décompression natifs pour certains formats de fichiers.

À propos de DirectShow