인코더 MFT 인스턴스화

Microsoft Media Foundation에서 인코더는 MFT(Media Foundation 변환)로 구현됩니다. 인코더를 만들기 전에 먼저 요구 사항에 가장 적합한 인코더를 찾아야 합니다.

  • Windows Media 오디오 코덱

    범주: MFT_CATEGORY_AUDIO_ENCODER

    주 형식: MFMediaType_Audio

    SubType: MFAudioFormat_WMAudioV9, MFAudioFormat_WMAudioV8, MFAudioFormat_WMAudio_Lossless, MFAudioFormat_WMASPDIF

  • Windows Media 비디오 코덱

    범주: MFT_CATEGORY_VIDEO_ENCODER

    주 형식: MFMediaType_Video

    SubType: MFVideoFormat_WVC1, MFVideoFormat_WMV3, MFVideoFormat_WMV2, MFVideoFormat_WMV1

Media Foundation은 애플리케이션이 시스템에서 사용할 수 있는 다양한 인코더를 열거하기 위해 호출할 수 있는 몇 가지 함수를 제공합니다. 인코더는 COM 개체로 등록되고 레지스트리 항목은 COM 클래스 팩터리의 표준 형식을 따릅니다. 레지스트리는 기본 미디어 형식(오디오 또는 비디오)으로 분류되는 인코더에 대한 CLSID를 포함합니다. Windows Media 인코더의 클래스 식별자는 wmcodecdsp.h 헤더 파일에서 상수로 정의됩니다. Media Foundation에서 범주, 지원되는 입력 형식 및 지원되는 출력 형식을 지정하여 MFTRegisterLocal 또는 MFTRegisterLocalByCLSID 호출을 통해 인코더를 등록할 수 있습니다. 이러한 함수를 성공적으로 등록하면 Media Foundation 열거형 함수에서 MFT를 고려합니다.

인코더 MFT의 인스턴스를 만들기 위해 애플리케이션에는 다음과 같은 선택 항목이 있습니다.

  • 인코더 MFT를 직접 만들고 IMFTransform 인터페이스에 대한 포인터를 받습니다. 자세한 내용은 CoCreateInstance를 사용하여 인코더 만들기를 참조 하세요.
  • 인코더 MFT에 대한 활성화 개체의 인스턴스를 만들고 IMFActivate 인터페이스에 대한 포인터를 받습니다. 자세한 내용은 인코더의 활성화 개체 사용을 참조 하세요.

애플리케이션이 파이프라인 계층 ASF 구성 요소를 사용하여 파일을 ASF 형식으로 인코딩하는 경우 인코더 MFT를 파이프라인에 변환 노드로 삽입해야 합니다. 인코딩 토폴로지에서 변환 노드를 만드는 동안 개체 형식을 IMFTransform 인터페이스 또는 IMFActivate 개체에 대한 포인터로 설정할 수 있습니다. Media Foundation은 인코딩 토폴로지에서 변환 노드로 편리하게 설정할 수 있도록 Windows Media 인코더에 대한 활성화 개체를 제공합니다. 토폴로지를 확인하면 미디어 세션에서 활성화 개체를 사용하여 인코더 MFT의 인스턴스를 만듭니다.

Windows Media 인코더