Capture d’un cadre d’affiche

[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.]

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

Cet article explique comment afficher un cadre d’affiche à partir d’un fichier multimédia numérique, à l’aide de l’objet Media Detector (MediaDet) fourni avec DirectShow Editing Services.

Le détecteur de médias est un objet d’assistance qui peut obtenir des informations de format à partir d’un fichier source multimédia. Il peut également récupérer une image bitmap à partir d’un flux vidéo dans le fichier source. En supposant que le fichier est recherché, vous pouvez obtenir l’image à partir de n’importe quel point du fichier. L’image retournée est toujours au format RVB 24 bits.

Le détecteur de médias n’est pas un filtre et l’application n’a pas besoin d’utiliser le Gestionnaire de graphe de filtre ou de créer un graphe de filtre. En interne, le détecteur de médias crée un graphique de filtre qui contient l’exemple de filtre De capture. Pour obtenir une bitmap, le détecteur de médias recherche et interrompt le graphe de filtre, puis récupère l’image bitmap à partir du filtre Sample Grabber. L’application communique avec media detector via l’interface IMediaDet . Le détecteur de médias est un bon exemple d’encapsulation d’un graphique de filtre à l’intérieur d’un objet d’assistance, afin de protéger les applications contre les détails liés au graphique.

Le détecteur de médias fonctionne en deux modes. Lorsque vous le créez pour la première fois, le détecteur de médias est en mode « collecte d’informations ». Vous pouvez spécifier le nom d’un fichier multimédia et obtenir des informations sur chacun des flux du fichier, comme le type de format, la fréquence d’images ou la durée. Si le fichier contient un flux vidéo, vous pouvez basculer le détecteur de médias en mode « capture bitmap » et récupérer des bitmaps à partir de la source. Toutefois, une fois que vous l’avez fait, vous ne pouvez pas revenir au mode d’origine du détecteur de médias . il est attaché de façon permanente à ce flux vidéo. Pour utiliser un autre flux ou un autre fichier, vous devez créer une nouvelle instance du détecteur de médias.

Notes

Les exemples de code de ce didacticiel utilisent la classe CComPtr ATL, qui gère automatiquement le nombre de références. Si vous préférez utiliser des pointeurs d’interface bruts, n’oubliez pas de libérer chaque interface lorsque vous en avez terminé. En outre, par souci de concision, les exemples de code omettent une grande partie de la vérification des erreurs qu’une application doit effectuer. Dans le code de travail, case activée toujours les valeurs HRESULT.

 

Ce didacticiel comprend les étapes suivantes :

Utilisation de DirectShow Editing Services