여러 파일로 캡처
[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, 그리고 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngine 및 Audio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
파일에 대한 일부 비디오를 캡처한 후 그래프를 중지하고 파일 기록기 필터에서 파일 이름을 설정하여 새 파일로 전환할 수 있습니다. 파일 작성기에서 IFileSinkFilter::SetFileName 메서드를 호출합니다. SetOutputFileName 메서드의 pSink 매개 변수를 통해 그래프를 작성할 때 IFileSinkFilter 인터페이스에 대한 포인터를 가져올 수 있습니다. 다음 코드는 이 작업을 수행하는 방법을 보여줍니다.
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();
}
관련 항목