다음을 통해 공유


비디오 미리 보기(DirectShow)

[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, Media Foundation 오디오/비디오 캡처대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngineAudio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

비디오 미리 보기 그래프를 빌드하려면 다음과 같이 ICaptureGraphBuilder2::RenderStream 메서드를 호출합니다.

ICaptureGraphBuilder2 *pBuild; // Capture Graph Builder
// Initialize pBuild (not shown).

IBaseFilter *pCap; // Video capture filter.

/* Initialize pCap and add it to the filter graph (not shown). */

hr = pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, 
    pCap, NULL, NULL);

이 예제에서는 다음을 가정합니다.

  • pBuild캡처 그래프 작성기에 설명된 대로 초기화되었습니다.
  • 캡처 디바이스선택에서 설명한 대로 캡처 필터의 인스턴스를 만들고 필터 그래프에 추가하여 pCap 초기화되었습니다.

ICaptureGraphBuilder2::RenderStream 메서드의 첫 번째 매개 변수는 핀 범주를 지정합니다. 미리 보기 그래프의 경우 PIN_CATEGORY_PREVIEW사용합니다. 두 번째 매개 변수는 미디어 형식을 주 형식 GUID로 지정합니다. 비디오의 경우 MEDIATYPE_Video사용합니다. DV 디바이스는 오디오와 비디오가 인터리브 형태로 제공되며, 이 미디어 유형은 MEDIATYPE_Interleaved입니다. (DV 캡처에 대한 자세한 내용은 DirectShow Digital Video를 참조하세요.)

세 번째 매개 변수는 캡처 필터의 IBaseFilter 인터페이스에 대한 포인터입니다. 이 예제에서는 다음 두 매개 변수가 필요하지 않습니다. 스트림을 렌더링하는 데 필요할 수 있는 추가 필터를 지정하는 데 사용됩니다. 마지막 매개 변수를 NULL 설정하면 캡처 그래프 작성기가 미디어 유형에 따라 스트림의 기본 렌더러를 선택합니다. 비디오의 경우 캡처 그래프 작성기는 항상 Video Renderer 필터를 기본 렌더러로 사용합니다.

메모

Windows XP 이상에서는 VMR(Video Mixing Renderer)이 IGraphBuilder 메서드의 기본 비디오 렌더러이지만 RenderStream 메서드의 기본 렌더러는 아닙니다. 모든 플랫폼에서 캡처 그래프 작성기는 달리 지정하지 않는 한 항상 이전 Video Renderer 필터를 사용합니다.

 

핀 범주는 PIN_CATEGORY_PREVIEW지정되지만 필터에 실제로 미리 보기 핀이 있는지 여부는 중요하지 않습니다. 비디오 포트 핀 또는 캡처 핀만 있을 수 있습니다. 두 경우 모두 캡처 그래프 작성기에서 올바른 그래프를 자동으로 빌드합니다.

다음 다이어그램에서는 비디오를 미리 볼 수 있는 가장 간단한 그래프를 보여 주세요.

비디오 미리 보기 그래프

이 다이어그램에서 캡처 필터에는 비디오 렌더러에 직접 연결하는 미리 보기 핀이 있습니다.

캡처 필터에 캡처 핀만 있는 경우 캡처 그래프 작성기에서 Smart Tee 필터를 삽입하여 스트림을 캡처 스트림 및 미리 보기 스트림으로 분할합니다. 비디오 캡처와 미리 보기를 결합하는 방법은에서 더 자세히 설명합니다.

경우에 따라 비디오 스트림은 오버레이 믹서 필터를 통과해야 합니다. 이 경우 RenderStream 메서드가 그래프에 자동으로 추가됩니다.

비디오 캡처와 미리 보기를 결합하기

비디오 캡처