DirectShow DirectShow 의 사용법 비디오 캡춰 파일에의 비디오의 캡춰 비디오 캡춰와 프리뷰의 편성   [목차열람] [주소복사] [슬롯비우기]
비디오 캡춰와 프리뷰의 편성
 
Microsoft DirectX 9.0

비디오 캡춰와 프리뷰의 편성

지금까지의 설명에서는, 다양한 파일 포맷에 비디오를 캡춰 하는 방법을 채택했다. 「비디오의 프리뷰」에서는, 라이브 프리뷰 그래프를 생성 하는 방법을 설명하고 있다. 그러나, 많은 애플리케이션에서는 양쪽 모두를 동시에 실시할 필요가 있다. 프리뷰와 파일 쓰기를 조합한 그래프를 생성 하려면 ,ICaptureGraphBuilder2::RenderStream 를 2 회 호출하면 좋다.

// 프리뷰 스트림을 비디오 렌더러에 렌더링 한다.
hr = pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, pCap, 
    NULL, NULL);

// 캡춰 스트림을 Mux 에 렌더링 한다.
hr = pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, pCap, 
    NULL, pMux);

Capture Graph Builder 에 의해, 이 코드의 다음과 같은 상세 부분은 안보이게 되고 있다.

스마트티필터에는 캡춰 핀과 프리뷰 핀이 있다. 캡춰 필터로부터 1 개의 비디오 스트림을 받아, 캡춰용과 프리뷰용의 2 개의 스트림에 분할한다. 캡춰 핀의 throughput를 유지하기 위해(때문에), 프리뷰 핀은 필요에 따라서 프레임을 드롭 한다. 또, 「DirectShow 의 비디오 캡춰 필터」로 설명한 이유에 의해, 각 샘플은 타임 스탬프를 제거하고 나서 송신한다.

스마트티는 스트림을 분할하지만, 비디오 데이터를 물리적으로는 복제하지 않는다. 대신에, 버퍼를 공유하는 커스텀 미디어 샘플 개체를 사용한다. 다운 스트림 필터가 데이터에 기입하지 않게, 샘플은 "읽기 전용" 과 마크 된다.

↑TOP