비디오 프로세서 MFT는 색 영역 변환, 톤 매핑, 비디오 크기 조정, 디인터레이싱, 프레임 속도 변환, 회전, 자르기, 공간 왼쪽 및 오른쪽 보기 압축 풀기, 미러링, 렌더러 효과 처리 및 구 매핑을 수행하는 MFT(Microsoft Media Foundation 변환)입니다.
CLSID
CLSID_VideoProcessorMFT
인터페이스
- IMFRealTimeClientEx
- IMFTransform
- IMFVideoProcessorControl
- IMFVideoProcessorControl2
- IMFVideoProcessorControl3
- IMFVideoRendererEffectControl
입력 형식
다음 형식은 IMFTransform::SetInputType을 통해 설정된 미디어 형식의 MF_MT_SUBTYPE 값에 대해 지원되는 값입니다.
- MFVideoFormat_ABGR32
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- MFVideoFormat_IYUV
- MFVideoFormat_NV11
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_RGB8
- MFVideoFormat_UYVY
- MFVideoFormat_v410
- MFVideoFormat_Y216
- MFVideoFormat_Y41P
- MFVideoFormat_Y41T
- MFVideoFormat_Y42T
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_YVYU
- MFVideoFormat_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
- MFVideoFormat_L8
- MFVideoFormat_L16
- MFVideoFormat_D16
출력 형식
다음 형식은 IMFTransform::SetOutputType을 통해 설정된 미디어 형식의 MF_MT_SUBTYPE 값에 대해 지원되는 값입니다.
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_UYVY
- MFVideoFormat_Y216
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
입력 및 출력 형식의 모든 조합이 지원되는 것은 아닙니다. 변환이 지원되는지 여부를 테스트하려면 입력 형식을 설정한 다음 IMFTransform::GetOutputAvailableType을 호출합니다.
이러한 형식에 대한 자세한 내용은 비디오 하위 유형 GUID를 참조하세요.
색 공간 변환
다음 특성을 입력 또는 출력 형식에 설정하여 콘텐츠의 색 공간을 변경할 수 있습니다.
- MF_MT_VIDEO_PRIMARIES
- MF_MT_TRANSFER_FUNCTION
- MF_MT_YUV_MATRIX
- MF_MT_VIDEO_CHROMA_SITING
- MF_MT_VIDEO_NOMINAL_RANGE
- MF_MT_MAX_MASTERING_LUMINANCE
- MF_MT_MAX_LUMINANCE_LEVEL
- MF_MT_CUSTOM_VIDEO_PRIMARIES
- MF_MT_PALETTE
이미지 변환
다음 특성을 입력 또는 출력 형식에 설정하여 비디오에서 공간 변환을 수행할 수 있습니다.
- MF_MT_PIXEL_ASPECT_RATIO
- MF_MT_VIDEO_ROTATION
- MF_MT_PAN_SCAN_APERTURE
- MF_MT_GEOMETRIC_APERTURE
- MF_MT_MINIMUM_DISPLAY_APERTURE
- MF_MT_VIDEO_3D
- MF_MT_VIDEO_3D_FORMAT
프레임 전송률 변환
다음 특성을 입력 또는 출력 형식에 설정하여 비디오에서 임시 변환을 수행할 수 있습니다.
- MF_MT_INTERLACE_MODE
- MF_MT_FRAME_RATE
MF_XVP_DISABLE_FRC TRUE로 설정된 경우 프레임 속도 변환은 사용하지 않도록 설정되지만 디인터레이싱은 계속 수행됩니다.
변환 특성
IMFTransform::GetAttributes를 사용하여 변환에서 다음 특성을 설정할 수 있습니다.
- MF_XVP_DISABLE_FRC
- MF_XVP_CALLER_ALLOCATES_OUTPUT
- MF_LOW_LATENCY
- MF_XVP_SAMPLE_LOCK_TIMEOUT
- MF_ENABLE_3DVIDEO_OUTPUT
- MF_VIDEO_PROCESSOR_ALGORITHM
비고
비디오 프로세서의 인스턴스는 다음 방법 중 하나로 만들 수 있습니다.
- MFTEnumEx를 호출합니다. 비디오 프로세서는 MFT_CATEGORY_VIDEO_PROCESSOR 범주에 등록됩니다.
- COM 함수 CoCreateInstance 를 호출하여 CLSID CLSID_VideoProcessorMFT 전달합니다.
다음 설명은 비디오 프로세서 MFT에서 원본 사각형 및 대상 사각형 작업과 관련이 있습니다. 원본 및 대상 사각형은 IMFVideoProcessorControl::SetDestinationRectangle 및 SetSourceRectangle 및 경우에 따라 IMFMediaEngineEx::UpdateVideoStream으로 설정됩니다.
- 소스 사각형은 비디오 프로세서에 입력된 프레임의 색 형식 요구 사항에 맞게 정렬되고 반올림되어야 합니다. 420 및 422와 같은 형식에는 만들고 액세스할 수 있는 차원 및 오프셋에 대한 요구 사항이 있기 때문에 중요합니다. 예를 들어 입력 형식이 420이면 {1, 0, 319, 240}(왼쪽, 위쪽, 오른쪽, 아래쪽)의 원본 사각형이 {2, 0, 320, 240}으로 반올림됩니다.
- 대상 및 원본 사각형은 항상 원본 프레임의 원본 사각형과 대상 프레임에 대한 대상 사각형의 각 프레임 내에 맞게 고정됩니다. 즉, 음수 값은 의미가 없으므로 항상 0으로 고정됩니다.
- 원본 사각형은 대상 프레임의 좌표계에 있으며 대상 사각형을 뺀 값입니다. 즉, 회전과 같은 변환은 원본 사각형에서 "실행 취소"됩니다. 따라서 비디오가 회전되었는지 또는 3D 압축을 풉니까 알 필요가 없습니다. 예를 들어 비디오 태그 위에 직사각형을 그리고, 상대 좌표를 가져와서(비디오 태그를 기준으로) 정규화하고(0~1 범위) 원본 사각형으로 전달하면 비디오가 회전되더라도 예상대로 작동합니다.
비디오 프로세서는 Microsoft Direct3D 11 또는 Direct3D 12를 사용하여 GPU 가속 비디오 처리를 지원합니다. 자세한 내용은 MF_SA_D3D11_AWARE 및 MF_SA_D3D12_AWARE 참조하세요.
비디오 프로세서는 MediaPlayer 및 IMFMediaEngine 구성 요소에 의해 노출되는 SVR을 사용할 때 비디오 렌더링을 위한 프런트 엔드 변환기로 사용됩니다. 이러한 구성 요소 중 하나에서 사용하는 디코더, 플러그 인 또는 원본
렌더러 효과
비디오 프로세서 MFT는 렌더러 효과의 호스트 구성 요소입니다. 렌더러 효과를 사용하면 애플리케이션이 일반 비디오 변환 및 렌더링 프로세스에 연결할 수 있습니다. 일반적인 애플리케이션의 경우 비디오 플러그 인(참조: IMFMediaEngineEx::InsertVideoEffect)으로 충분합니다. 그러나 일부 시나리오에서는 비디오가 렌더링되는 정확한 조건에 대한 자세한 정보가 필요합니다. 다음 상황에 대한 렌더러 효과를 고려합니다.
- 플러그 인은 비디오가 렌더링되는 해상도를 알고 있어야 합니다(예: 슈퍼 해상도와 같은 특수 크기 조정 작업을 수행하려면).
- 플러그 인은 비디오가 렌더링되는 디스플레이의 속성을 알고 있어야 합니다(예: 정확한 톤 매핑 수행).
- 플러그 인은 제공된 비디오의 최종 출력 형식을 정확히 알고 있어야 합니다.
렌더러 효과를 로드하려면 비디오 프로세서 MFT의 입력 형식에서 MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE 특성을 구성합니다.
스테레오스코픽 비디오
비디오 프로세서는 3D 비디오 프레임에서 뷰 압축 풀기 작업을 지원합니다.
입력 프레임에 동일한 프레임에 압축된 두 개의 보기가 포함된 경우 비디오 프로세서는 보기를 별도의 버퍼로 분할하거나 기본 뷰를 추출하고 두 번째 보기를 삭제할 수 있습니다. 뷰 압축 풀기를 사용하도록 설정하려면 MF_ENABLE_3DVIDEO_OUTPUT 특성을 MF3DVideoOutputType_Stereo 또는 MF3DVideoOutputType_BaseView 설정합니다.
요구 사항
요구 사항 | 가치 |
---|---|
헤더 |
|
참고하십시오