원본 판독기

원본 판독기는 미디어 세션 및 Microsoft Media Foundation 파이프라인을 사용하여 미디어 데이터를 처리하는 대안입니다.

원본 판독기를 사용하는 이유는 무엇인가요?

Media Foundation은 재생에 최적화된 파이프라인을 제공합니다. 파이프라인은 엔드 투 엔드(end-to-end)이므로 원본(예: 비디오 파일)에서 대상(예: 그래픽 표시)으로의 데이터 흐름을 처리합니다. 그러나 파이프라인을 통과할 때 데이터를 읽거나 수정하려면 사용자 지정 플러그 인을 작성해야 합니다. 이를 위해서는 Media Foundation 파이프라인에 대한 상당히 깊은 지식이 필요합니다. 특정 작업의 경우 새 플러그 인을 만드는 데 너무 많은 오버헤드가 있습니다. 원본 판독기는 전체 파이프라인의 오버헤드 없이 원본에서 원시 데이터를 가져올 때 이러한 유형의 상황에 맞게 설계되었습니다.

내부적으로 원본 판독기는 미디어 원본에 대한 포인터를 보유합니다. 미디어 원본은 미디어 파일 또는 비디오 캡처 디바이스와 같은 외부 원본에서 미디어 데이터를 생성하는 Media Foundation 개체입니다. 원본 판독기는 미디어 원본에 대한 모든 메서드 호출을 관리합니다. (미디어 원본에 대한 자세한 내용은 미디어 원본을 참조하세요.)

미디어 원본이 압축된 데이터를 제공하는 경우 원본 판독기를 사용하여 데이터를 디코딩할 수 있습니다. 이 경우 원본 판독기는 올바른 디코더를 로드하고 미디어 원본과 디코더 간의 데이터 흐름을 관리합니다. 소스 판독기는 몇 가지 제한된 비디오 처리를 수행할 수도 있습니다. 즉, YUV에서 RGB-32로의 색 변환 및 소프트웨어 디인터레이싱은 실시간 비디오 렌더링에는 권장되지 않습니다. 다음 이미지는 이 프로세스를 보여 줍니다.

원본 판독기의 다이어그램

원본 판독기는 대상에 데이터를 보내지 않습니다. 데이터를 사용하는 것은 애플리케이션에 달려 있습니다. 예를 들어 원본 판독기는 비디오 파일을 읽을 수 있지만 비디오를 화면으로 렌더링하지는 않습니다. 또한 원본 판독기는 프레젠테이션 시계를 관리하거나, 타이밍 문제를 처리하거나, 비디오를 오디오와 동기화하지 않습니다.

다음과 같은 경우 원본 판독기를 사용하는 것이 좋습니다.

  • 기본 파일 구조에 대해 걱정하지 않고 미디어 파일에서 데이터를 가져오려고 합니다.
  • 오디오 또는 비디오 캡처 디바이스에서 데이터를 가져올 수 있습니다.
  • 데이터 처리 작업은 시간에 민감하지 않거나 프레젠테이션 시계가 필요하지 않습니다.
  • Media Foundation을 기반으로 하지 않는 미디어 파이프라인이 이미 있으며 Media Foundation 미디어 원본을 사용자 고유의 파이프라인에 통합하려고 합니다.

다음과 같은 경우에는 원본 판독기를 사용하지 않는 것이 좋습니다.

  • 보호된 콘텐츠의 경우. 원본 판독기는 DRM(디지털 권한 관리)을 지원하지 않습니다.
  • 기본 파일 구조의 세부 정보에 관심이 있는 경우 원본 판독기는 해당 유형의 세부 정보를 숨깁니다.

섹션 내용

항목 설명
원본 판독기를 사용하여 미디어 데이터 처리
이 항목에서는 원본 판독기를 사용하여 미디어 데이터를 처리하는 방법을 설명합니다.
비동기 모드에서 원본 판독기 사용
이 항목에서는 비동기 모드에서 원본 판독기를 사용하는 방법을 설명합니다.
자습서: 오디오 디코딩
이 자습서에서는 원본 판독기를 사용하여 미디어 파일에서 오디오를 디코딩하고 오디오를 WAVE 파일에 쓰는 방법을 보여줍니다.

 

미디어 파운데이션 아키텍처

Media Foundation 프로그래밍 가이드

IMFSourceReader