Capturer un fichier DV type-1
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Elle a été remplacée par MediaPlayer, IMFMediaEngine et Capture audio/vidéo dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Si possible, Microsoft recommande vivement d’utiliser MediaPlayer, IMFMediaEngine et Capture audio/vidéo dans Media Foundation pour le nouveau code, plutôt que DirectShow. Microsoft recommande, si possible, la réécriture du code existant qui utilise les API héritées pour être à jour avec les nouvelles API.]
Un fichier AVI de type 1 contient un flux entrelacé unique. Pour capturer un fichier de type 1 lors de l’aperçu, utilisez le graphique de filtre indiqué dans le diagramme suivant.
Les filtres de ce graphique sont les suivants :
- Le filtre Smart Tee fractionne la DV entrelacée en flux de capture et un flux d’aperçu. Les deux flux contiennent les mêmes données entrelacées.
- Le Mux AVI et l’enregistreur de fichiers écrivent le flux entrelacés sur le disque.
- Le séparateur DV fractionne le flux entrelacé en flux vidéo DV et un flux audio. Les deux flux sont rendus pour la préversion.
- Le décodeur vidéo DV décode le flux vidéo DV pour la préversion.
Générez ce graphique comme suit :
ICaptureGraphBuilder2 *pBuilder; // Capture graph builder.
IBaseFilter *pDV; // DV capture filter (MSDV)
IBaseFilter *pAviMux // Avi Mux filter.
// Initialize pDV (not shown).
// Create and initialize the Capture Graph Builder (not shown).
// Create the file-writing section of the graph.
hr = pBuilder->SetOutputFileName(&MEDIASUBTYPE_Avi,
OLESTR("C:\\Example1.avi"), &pAviMux, 0);
// Render the capture stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Interleaved,
pDV, 0, pAviMux);
// Render the preview stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Interleaved,
pDV, 0, 0);
// Remember to release all interfaces.
- Appelez ICaptureGraphBuilder2 ::SetOutputFileName pour connecter le filtre AVI Mux au filtre Enregistreur de fichiers.
- Appelez ICaptureGraphBuilder2 ::RenderStream avec la catégorie d’épingle PIN_CATEGORY_CAPTURE pour afficher le flux de capture. Le Générateur de graphiques de capture insère automatiquement le filtre Tee intelligent.
- Appelez à nouveau RenderStream, mais avec la catégorie d’épingle PIN_CATEGORY_PREVIEW, pour afficher le flux d’aperçu. Ignorez cet appel si vous ne souhaitez pas afficher un aperçu de la vidéo.
Pour les deux appels à RenderStream, le type de média est MEDIATYPE_Interleaved, ce qui signifie vidéo DV entrelacée. Dans ce code, le Générateur de graphiques de capture ajoute automatiquement chaque filtre nécessaire, à l’exception du filtre de capture MSDV.
Rubriques connexes