À propos des moteurs de rendu

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]

[Cette API n’est pas prise en charge et peut être modifiée ou indisponible à l’avenir.]

Cet article explique comment DirectShow Editing Services (DES) affiche un projet d’édition vidéo.

Dans DES, un projet est représenté sous la forme d’un chronologie. Le chronologie est utile, car il simplifie les tâches les plus courantes dans l’édition vidéo, telles que le réorganisage des clips sources et l’ajout d’effets vidéo. L’architecture de flux DirectShow, en revanche, nécessite un graphique de filtre. Ainsi, pour afficher votre projet, vous devez traduire un chronologie en graphe de filtre. Le composant qui effectue cette opération est appelé moteur de rendu. DirectShow fournit deux moteurs de rendu :

  • Moteur de rendu de base : génère un graphique de filtre qui fournit une sortie non compressée.
  • Moteur de rendu intelligent : génère un graphique de filtre qui fournit une sortie compressée.

Le moteur de rendu intelligent utilise la recompression intelligente pour améliorer les performances. Avec la recompression intelligente, les fichiers sources sont compressés uniquement lorsque le format de fichier d’origine diffère du format de sortie final. Si les formats correspondent, la source n’est jamais décompressée. La recompression intelligente est prise en charge uniquement pour la compression vidéo, pas pour la compression audio.

Pour la préversion, utilisez le moteur de rendu de base. Le moteur de rendu intelligent peut également afficher un aperçu, mais moins efficacement, car il doit décompresser le flux compressé. Pour écrire des fichiers, utilisez le moteur de rendu intelligent si vous souhaitez une recompression intelligente. Sinon, utilisez le moteur de rendu de base. La recompression intelligente peut considérablement réduire le temps nécessaire à l’écriture du fichier.

Important

N’utilisez pas le moteur de rendu intelligent pour lire ou écrire des fichiers Windows Media.

 

Important

Les deux moteurs de rendu créent une fenêtre invisible qui traite les messages. Le thread qui crée le moteur de rendu doit avoir une boucle de message pour distribuer les messages. En outre, ce thread ne doit pas se fermer tant que le moteur de rendu et le gestionnaire de graphe de filtres ne sont pas libérés. Sinon, l’application risque d’être bloquée.

 

Construction du graphe de filtres

Le graphe de filtres est généré en deux étapes. Dans la première étape, le moteur de rendu construit un « front-end », qui est un graphique de filtre partiel. Le diagramme suivant illustre un front-end classique :

front-end de graphe de filtre

Les sous-systèmes contiennent différents filtres spécialisés, que le moteur de rendu assemble automatiquement. Le serveur frontal contient une broche de sortie pour chaque groupe du chronologie. Les broches de sortie fournissent des données non compressées si vous utilisez le moteur de rendu de base, ou des données compressées si vous utilisez le moteur de rendu intelligent.

Dans la deuxième étape, les broches de sortie sont connectées aux filtres de rendu. Pour la préversion, les filtres de rendu sont des convertisseurs vidéo et audio. Pour l’écriture de fichiers, les filtres de rendu sont des filtres de multiplexeur (mux) et des filtres d’enregistreur de fichiers.

exécution du graphe de filtres

Aperçu d’un projet

Écriture d’un projet dans un fichier