다음을 통해 공유


싱크 작성기 사용

개요

파일 컨테이너 형식

싱크 작성기는 여러 파일 컨테이너 형식을 기본적으로 지원합니다. 전체 목록은 MF_TRANSCODE_CONTAINERTYPE 참조하세요. 사용자 지정 미디어 싱크를 작성하여 추가 컨테이너 유형을 지원할 수 있습니다. 싱크 작성기의 새 instance 만들 때 파일 컨테이너가 지정됩니다.

스트림 형식

각 스트림에 대해 애플리케이션은 다음을 지정해야 합니다.

  • 입력 형식은 애플리케이션이 싱크 작성기에 보내는 형식입니다.
  • 출력 형식은 파일에 쓸 형식입니다.

입력 및 출력 형식은 압축되거나 압축되지 않을 수 있습니다. 싱크 작성기는 다음 조합을 지원합니다.

  • 압축된 출력이 있는 압축되지 않은 입력입니다. 일반적인 경우이며 인코딩 또는 코드 변환 시나리오에 사용됩니다. 입력 형식을 허용하고 출력 형식으로 인코딩하는 Microsoft Media Foundation 인코더를 사용할 수 있어야 합니다.
  • 동일한 출력을 사용하여 압축된 입력입니다. 이 조합을 사용하여 코드 변환 없이 파일을 다시 만듭니다.
  • 출력이 동일한 압축되지 않은 입력입니다. 이 조합을 사용하여 압축되지 않은 오디오 또는 비디오를 파일 컨테이너에 씁니다.

싱크 작성기는 인코더에서 이러한 함수를 제공하지 않는 한 비디오 크기 조정, 프레임 속도 변환 또는 오디오 다시 샘플링을 지원하지 않습니다. 그렇지 않으면 애플리케이션은 디지털 신호 프로세서를 사용하여 입력 데이터를 변환한 후 데이터를 로 보낼 수 있습니다.

싱크 작성기 만들기

싱크 작성기를 만드는 두 가지 함수가 있습니다.

  • MFCreateSinkWriterFromURL 은 출력 파일의 URL 또는 바이트 스트림에 대한 포인터를 사용합니다. 이 함수는 내부적으로 미디어 싱크를 만듭니다.
  • MFCreateSinkWriterFromMediaSink 는 애플리케이션에서 이미 만든 미디어 싱크에 대한 포인터를 사용합니다.

기본 제공 미디어 싱크 중 하나를 사용하는 경우 호출자가 미디어 싱크를 구성할 필요가 없으므로 MFCreateSinkWriterFromURL 함수를 사용하는 것이 좋습니다.

MFCreateSinkWriterFromURL 메서드는 파일 컨테이너의 형식을 지정하기 위한 몇 가지 옵션을 제공합니다. 가장 간단한 경우 함수는 URL의 파일 이름 확장명을 사용하여 파일 컨테이너를 선택합니다. 자세한 내용은 함수 참조 페이지를 참조하세요.

예를 들어 다음 코드는 URL의 파일 이름 "output.wmv"를 지정합니다. 파일 이름 확장명을 기반으로 싱크 작성기는 ASF 미디어 싱크 를 로드하여 ASF(Advanced Systems Format) 파일을 만듭니다.

    HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);

MFCreateSinkWriterFromMediaSink의 경우 파일 형식은 미디어 싱크에 의해 결정됩니다.

싱크 작성기