Freigeben über


Erfassen in mehreren Dateien

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Nachdem Sie ein Video zu einer Datei aufgenommen haben, können Sie zu einer neuen Datei wechseln, indem Sie das Diagramm beenden und den Dateinamen im Filter Dateischreiber festlegen. Rufen Sie die IFileSinkFilter::SetFileName-Methode für den File Writer auf. Sie können einen Zeiger auf die IFileSinkFilter-Schnittstelle abrufen, wenn Sie das Diagramm über den pSink-Parameter der SetOutputFileName-Methode erstellen. Dies wird im folgenden Code veranschaulicht:

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();
}

Videoaufnahme in einer Datei