capture vidéo sur un fichier multimédia Windows

pour capturer une vidéo et l’encoder dans un fichier Windows Media Video (WMV), connectez le code confidentiel de capture au filtre d' enregistreur ASF WM , comme indiqué dans le diagramme suivant.

graphique de capture Windows Media

Le moyen le plus simple de créer ce graphique est de spécifiez MEDIASUBTYPE _ ASF dans la méthode ICaptureGraphBuilder2 :: SetOutputFileName :

IBaseFilter* pASFWriter = 0;
hr = pBuild->SetOutputFileName(
    &MEDIASUBTYPE_Asf,   // Create a Windows Media file.
    L"C:\\VidCap.wmv",   // File name.
    &pASFWriter,         // Receives a pointer to the filter.
    NULL);  // Receives an IFileSinkFilter interface pointer (optional).

la valeur MEDIASUBTYPE _ Asf indique à l’Graph de Capture que le générateur utilise le filtre d’enregistreur asf WM comme récepteur de fichiers. le générateur de Graph de Capture crée le filtre, l’ajoute au graphique et appelle IFileSinkFilter :: SetFileName pour définir le nom du fichier de sortie. Elle retourne un pointeur vers le filtre en tant que paramètre sortant (

pASFWriter

dans l’exemple précédent).

utilisez l’interface IConfigAsfWriter sur le Writer WM ASF pour définir le profil de média Windows. Vous devez effectuer cette opération avant de connecter des broches sur le writer WM ASF.

IConfigAsfWriter *pConfig = 0;
hr = pASFWriter->QueryInterface(IID_IConfigAsfWriter, (void**)&pConfig);
if (SUCCEEDED(hr))
{
     // Configure the ASF Writer filter.
    pConfig->Release();
}

Pour plus d’informations sur la définition du profil, consultez création de fichiers ASF dans DirectShow.

Appelez ICaptureGraphBuilder2 :: RenderStream pour connecter le filtre de capture à l’enregistreur ASF :

hr = pBuild->RenderStream(
    &PIN_CATEGORY_CAPTURE,   // Capture pin.
    &MEDIATYPE_Video,        // Video. Use MEDIATYPE_Audio for audio.
    pCap,                    // Pointer to the capture filter. 
    0, 
    pASFWriter);             // Pointer to the sink filter (ASF Writer).

chaque broche d’entrée sur le filtre de l’enregistreur ASF WM correspond à un flux dans le profil de média Windows. Vous devez connecter chaque code confidentiel afin que le contenu du fichier corresponde au profil.

Capture vidéo dans un fichier