다음을 통해 공유


Media Foundation 아키텍처 개요

이 항목에서는 Microsoft Media Foundation의 일반적인 디자인에 대해 설명합니다. 특정 프로그래밍 작업에 Media Foundation을 사용하는 방법에 대한 자세한 내용은 Media Foundation 프로그래밍 가이드를 참조하세요.

다음 다이어그램은 Media Foundation 아키텍처의 개략적인 보기를 보여 주는 다이어그램입니다.

미디어 기반 아키텍처의 개략적인 보기를 보여 주는 다이어그램

Media Foundation은 두 가지 고유한 프로그래밍 모델을 제공합니다. 다이어그램의 왼쪽에 표시된 첫 번째 모델은 미디어 데이터에 엔드 투 엔드 파이프라인을 사용합니다. 애플리케이션은 재생할 파일의 URL을 제공하여 파이프라인을 초기화한 다음, 메서드를 호출하여 스트리밍을 제어합니다. 다이어그램의 오른쪽에 표시된 두 번째 모델에서 애플리케이션은 원본에서 데이터를 가져오거나 대상(또는 둘 다)에 푸시합니다. 이 모델은 애플리케이션이 데이터 스트림에 직접 액세스할 수 있으므로 데이터를 처리해야 하는 경우에 특히 유용합니다.

기본 형식 및 플랫폼

다이어그램의 맨 아래에서부터 기본 형식 은 Media Foundation API 전체에서 사용되는 도우미 개체입니다.

  • 특성 은 키/값 쌍 목록으로 개체 내부에 정보를 저장하는 일반적인 방법입니다.
  • 미디어 형식 은 미디어 데이터 스트림의 형식을 설명합니다.
  • 미디어 버퍼는 비디오 프레임 및 오디오 샘플과 같은 미디어 데이터의 청크를 보유하며 개체 간에 데이터를 전송하는 데 사용됩니다.
  • 미디어 샘플 은 미디어 버퍼용 컨테이너입니다. 또한 타임스탬프를 비롯한 버퍼에 대한 메타데이터도 포함됩니다.

Media Foundation Platform API는 비동기 콜백 및 작업 큐와 같이 Media Foundation 파이프라인에서 사용되는 몇 가지 핵심 기능을 제공합니다. 특정 애플리케이션은 이러한 API를 직접 호출해야 할 수 있습니다. 또한 Media Foundation에 대한 사용자 지정 원본, 변환 또는 싱크를 구현하는 경우 필요합니다.

미디어 파이프라인

미디어 파이프라인에는 미디어 데이터를 생성하거나 처리하는 세 가지 유형의 개체가 포함되어 있습니다.

  • 미디어 원본은 파이프라인에 데이터를 도입합니다. 미디어 원본은 비디오 파일과 같은 로컬 파일에서 데이터를 가져올 수 있습니다. 네트워크 스트림에서 또는 하드웨어 캡처 디바이스에서
  • MFT(Media Foundation Transforms )는 스트림에서 데이터를 처리합니다. 인코더 및 디코더는 MFT로 구현됩니다.
  • 미디어 싱크는 데이터를 사용합니다. 예를 들어 디스플레이에 비디오를 표시하거나, 오디오를 재생하거나, 데이터를 미디어 파일에 기록합니다.

타사에서는 자체 사용자 지정 원본, 싱크 및 MFT를 구현할 수 있습니다. 예를 들어 새 미디어 파일 형식을 지원합니다.

미디어 세션은 파이프라인을 통해 데이터 흐름을 제어하고 품질 제어, 오디오/비디오 동기화 및 형식 변경에 응답과 같은 작업을 처리합니다.

원본 판독기 및 싱크 기록기

원본 판독기 및 싱크 작성기는 기본 Media Foundation 구성 요소(미디어 원본, 변환 및 미디어 싱크)를 사용하는 다른 방법을 제공합니다. 원본 판독기는 미디어 원본과 0개 이상의 디코더를 호스트하고 싱크 작성기는 미디어 싱크와 0개 이상의 인코더를 호스트합니다. 원본 판독기를 사용하여 미디어 원본에서 압축되거나 압축되지 않은 데이터를 가져올 수 있으며 싱크 기록기를 사용하여 데이터를 인코딩하고 데이터를 미디어 싱크로 보낼 수 있습니다.

참고

원본 판독기 및 싱크 작성기는 Windows 7에서 사용할 수 있습니다.

 

이 프로그래밍 모델은 애플리케이션이 데이터 흐름을 보다 세세하게 제어할 수 있도록 하며 애플리케이션이 원본의 데이터에 직접 액세스할 수 있도록 합니다.

미디어 파운데이션: 필수 개념

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