포스터 프레임 잡기

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

[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]

이 문서에서는 DirectShow Editing Services와 함께 제공되는 MediaDet(Media Detector) 개체를 사용하여 디지털 미디어 파일에서 포스터 프레임을 표시하는 방법을 설명합니다.

Media Detector는 미디어 소스 파일에서 형식 정보를 가져올 수 있는 도우미 개체입니다. 소스 파일의 비디오 스트림에서 비트맵 이미지를 캡처할 수도 있습니다. 파일을 검색할 수 있다고 가정하면 파일의 모든 지점에서 이미지를 가져올 수 있습니다. 반환된 이미지는 항상 24비트 RGB 형식입니다.

Media Detector는 필터가 아니며 애플리케이션은 필터 그래프 관리자를 사용하거나 필터 그래프를 만들 필요가 없습니다. 내부적으로 Media Detector는 샘플 그래버 필터를 포함하는 필터 그래프를 만듭니다. 비트맵을 가져오기 위해 Media Detector는 필터 그래프를 찾아 일시 중지한 다음 샘플 그래버 필터에서 비트맵을 검색합니다. 애플리케이션은 IMediaDet 인터페이스를 통해 Media Detector와 통신합니다. Media Detector는 애플리케이션을 그래프 관련 세부 정보로부터 보호하기 위해 도우미 개체 내에 필터 그래프를 캡슐화하는 좋은 예입니다.

Media Detector는 두 가지 모드로 작동합니다. 처음 만들 때 Media Detector는 "정보 수집" 모드에 있습니다. 미디어 파일의 이름을 지정하고 형식 형식, 프레임 속도 또는 기간과 같은 파일의 각 스트림에 대한 정보를 가져올 수 있습니다. 파일에 비디오 스트림이 포함된 경우 Media Detector를 "비트맵 잡기" 모드로 전환하고 소스에서 비트맵을 검색할 수 있습니다. 그러나 이렇게 하면 Media Detector를 원래 모드로 다시 전환할 수 없습니다. 해당 비디오 스트림에 영구적으로 연결됩니다. 다른 스트림 또는 다른 파일로 작업하려면 Media Detector의 새 instance 만들어야 합니다.

참고

이 자습서의 코드 예제에서는 참조 수를 자동으로 관리하는 ATL CComPtr 클래스를 사용합니다. 원시 인터페이스 포인터를 사용하려는 경우 완료될 때 모든 인터페이스를 해제해야 합니다. 또한 간결하게 하기 위해 코드 예제는 애플리케이션이 수행해야 하는 오류 검사의 대부분을 생략합니다. 작업 코드에서 항상 HRESULT 값을 검사.

 

이 자습서에는 다음 단계가 포함되어 있습니다.

DirectShow 편집 서비스 사용