다음을 통해 공유


Video Encoding 구성(Microsoft Media Foundation)

다음과 같은 단계를 수행하여 비디오 인코더를 구성하세요.

  1. 인코더 DMO에서 속성을 설정하기 위해 IPropertyBag::Write를 사용하세요. CBR 비디오 스트림을 인코딩하기 위해 필요한 최소 속성 집합이 다음 목록에 요약되어 있습니다(이러한 모든 값에는 사용 가능한 기본값이 있습니다).

    • 스트림에 사용할 버퍼 창을 MFPKEY_VIDEOWINDOW 속성이 지정합니다. 인코딩 메서드를 참조하여 버퍼 창 설정 및 콘텐츠에 미치는 영향에 대한 자세한 내용을 확인하세요. 많은 시나리오에 적합한 기본 버퍼 창은 3초입니다.
    • 인코딩된 콘텐츠의 품질과 인코딩에 필요한 시간 사이의 절충을 결정하기 위해 비디오 복잡성이 설정됩니다. 값을 설정하지 않은 경우, 기본값이 사용됩니다. 하지만 특정 코덱에 대한 권장 모드를 찾기 위해, IWMCodecProps::GetCodecProp를 호출하여 g_wszWMVCComplexityExLive, g_wszWMVCComplexityExOffline 및 g_wszWMVCComplexityExMax를 검색할 수 있습니다. 다음으로, 0에서 보고된 최대 복잡성 사이의 값으로 MFPKEY_COMPLEXITYEX를 설정 가능합니다.
    • 비디오 부드러움의 상대적 중요성 및 인코딩된 프레임의 이미지 품질을 MFPKEY_CRISP가 지정합니다. 대부분의 경우, 정상적으로 기본값이 작동합니다.
    • ASF 이외의 컨테이너에 저장된 비디오 콘텐츠의 경우에는 MFPKEY_ASFOVERHEADPERFRAME 속성을 0으로 설정해야 합니다. 이 값은 기본값이 아닙니다.

    VBR 인코딩 사용을 참조하여 VBR 스트림을 구성하는 방법에 대한 자세한 내용을 확인하세요.

  2. 입력 형식에 대한 DMO_MEDIA_TYPE 구조를 구성하거나, Media Foundation SDK를 사용하는 경우에는 MFInitMediaTypeFromVideoInfoHeader 함수를 사용합니다. 압축되지 않은 입력 콘텐츠를 설명하는 VIDEOINFOHEADER 구조를 사용하세요. 코덱은 비디오 크기를 조정하거나 색 공간을 변환하지 않습니다.

  3. 입력 형식을 설정하기 위해 IMediaObject::SetInputType 또는 IMFTransform::SetInputType을 사용합니다.

  4. 인코더의 출력 유형을 구성하세요. 입력 형식이 설정된 뒤, 인코더는 VIDEOINFOHEADER 구조체의 dwBitrate 멤버, 또는 IMFMediaType 인터페이스의 MF_MT_AVG_BITRATE 특성을 제외하고 완료된 출력 형식을 열거합니다. 출력 형식을 입력 형식을 설정하기 전에 검색하는 경우, 전달된 DMO_MEDIA_TYPE 구조체에 연결된 VIDEOINFOHEADER가 없습니다.

  5. 코덱 프라이빗 데이터를 검색한 다음 DMO_MEDIA_TYPE 구조체 또는 IMFMediaType에 전달하는 VIDEOINFOHEADER 구조체에 추가합니다. Video Codec 프라이빗 데이터 사용을 참조하여 자세한 내용을 확인하세요.

  6. 출력 형식을 설정하기 위해 IMediaObject::SetOutputType 또는 IMFTransform::SetOutputType 메서드를 호출하세요. pbFormat 멤버에서 참조된 완성된 VIDEOINFOHEADER 구조체(추가된 프라이빗 데이터 포함)를 사용하여 DMO_MEDIA_TYPE 구조를 전달하거나, MFInitMediaTypeFromVideoInfoHeader를 호출하여 IMFMediaType을 생성합니다.

참고 항목

두 가지 출력을 비디오 인코더 개체가 지원합니다. 인코더 "사후 보기"에 대한 것이 두 번째 출력입니다. 디코더에서 전달 시 압축되지 않은 샘플을 제공합니다. 이를 통해 인코딩 품질을 전체 스트림이 처리될 때까지 기다리지 않고도 모니터링할 수 있습니다. 이러한 출력은 선택 사항입니다. 이를 사용하고자 하는 경우, 인코더 입력 형식을 설정하기 위해 사용되는 것과 동일한 프로세스에 따라 해당 형식을 구성합니다.

비디오 작업