Capture dans plusieurs fichiers

Une fois que vous avez capturé une vidéo dans un fichier, vous pouvez basculer vers un nouveau fichier en arrêtant le graphique et en définissant le nom de fichier dans le filtre du writer de fichier . Appelez la méthode IFileSinkFilter :: SetFileName sur le writer de fichier. Vous pouvez obtenir un pointeur vers l’interface IFileSinkFilter lorsque vous générez le graphique, par le biais du paramètre pSink de la méthode SetOutputFileName. Le code suivant illustre comment procéder :

IBaseFilter *pMux;
IFileSinkFilter *pSink
hr = pBuild->SetOutputFileName(&MEDIASUBTYPE_Avi, L"C:\\YourFileName.avi", 
    &pMux, &pSink);
if (SUCCEEDED(hr))
{
    hr = pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, 
        pCap, NULL, pMux);

    if (SUCCEEDED(hr))
    {
        pControl->Run();
        /* Wait awhile, then stop the graph. */
        pControl->Stop();
        // Change the file name and run the graph again.
        pSink->SetFileName(L"YourFileName02.avi", 0);
        pControl->Run();
    }
    pMux->Release();
    pSink->Release();
}

Capture vidéo dans un fichier