Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Aby przechwycić wideo i zakodować je do pliku Windows Media Video (WMV), połącz pin przechwytywania z filtrem WM ASF Writer, jak pokazano na poniższym diagramie.
Najprostszym sposobem utworzenia tego grafu jest określenie MEDIASUBTYPE_Asf w metodzie 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).
Wartość MEDIASUBTYPE_Asf informuje konstruktora programu Capture Graph o użyciu filtru składnika zapisywania ASF WM jako ujścia pliku. Konstruktor Capture Graph Builder tworzy filtr, dodaje go do grafu i wywołuje IFileSinkFilter::SetFileName, aby ustawić nazwę pliku wyjściowego. Zwraca wskaźnik do filtru jako parametr wychodzący (
pASFWriter
w poprzednim przykładzie).
Użyj interfejsu IConfigAsfWriter w komponencie WM ASF Writer, aby ustawić profil Windows Media. Musisz to zrobić przed podłączeniem jakichkolwiek pinów do modułu WM ASF Writer.
IConfigAsfWriter *pConfig = 0;
hr = pASFWriter->QueryInterface(IID_IConfigAsfWriter, (void**)&pConfig);
if (SUCCEEDED(hr))
{
// Configure the ASF Writer filter.
pConfig->Release();
}
Aby uzyskać więcej informacji, jak ustawić profil, zobacz Tworzenie plików ASF w DirectShow.
Wywołaj ICaptureGraphBuilder2::RenderStream, aby połączyć filtr przechwytywania z modułem zapisywania 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).
Każdy pin wejściowy w filtrze zapisu WM ASF odpowiada strumieniowi w profilu Windows Media. Należy połączyć każdy pin, aby zawartość pliku odpowiadała profilowi.
Tematy pokrewne