Compartir a través de


Procesador de vídeo MFT

El procesador de vídeo MFT es una transformación de Microsoft Media Foundation (MFT) que realiza la conversión de espacios de colores, la asignación de tonos, el cambio de tamaño de vídeo, la desinterlacación, la conversión de velocidad de fotogramas, la rotación, el recorte, el desempaquetado de vista espacial izquierda y derecha, la creación de reflejos, el procesamiento de efectos del representador y la asignación de esferas.

CLSID

CLSID_VideoProcessorMFT

Interfaces

Formatos de entrada

Los siguientes formatos son valores admitidos para el valor MF_MT_SUBTYPE del tipo de medio establecido a través de IMFTransform::SetInputType

  • 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

Formatos de salida

Los siguientes formatos son valores admitidos para el valor MF_MT_SUBTYPE del tipo de medio establecido a través de IMFTransform::SetOutputType

  • 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

No se admite ninguna combinación de formatos de entrada y salida. Para probar si se admite una conversión, establezca el tipo de entrada y, a continuación, llame a IMFTransform::GetOutputAvailableType.

Para obtener más información sobre estos formatos, vea Guid de subtipo de vídeo.

Transformaciones de espacio de colores

Los atributos siguientes se pueden establecer en los tipos de entrada o salida para cambiar el espacio de color del contenido:

  • 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

Transformaciones de imagen

Los atributos siguientes se pueden establecer en los tipos de entrada o salida para realizar transformaciones espaciales en el vídeo:

  • 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

Transformaciones de velocidad de fotogramas

Los atributos siguientes se pueden establecer en los tipos de entrada o salida para realizar transformaciones temporales en el vídeo:

  • MF_MT_INTERLACE_MODE
  • MF_MT_FRAME_RATE

Tenga en cuenta que si MF_XVP_DISABLE_FRC se establece en TRUE, se deshabilita la conversión de velocidad de fotogramas, pero se seguirá realizando la desinterlacación.

Transformar atributos

Los atributos siguientes se pueden establecer en la transformación mediante 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

Observaciones

Se puede crear una instancia del procesador de vídeo de una de las maneras siguientes:

  • Llamando a MFTEnumEx. El procesador de vídeo se registra en la categoría MFT_CATEGORY_VIDEO_PROCESSOR .
  • Al llamar a la función COM CoCreateInstance pasando el CLSID_VideoProcessorMFT CLSID.

Los comentarios siguientes se refieren a trabajar con rectángulos de origen y rectángulos de destino en el MFT del procesador de vídeo. Los rectángulos de origen y destino se establecen con IMFVideoProcessorControl::SetDestinationRectangle y SetSourceRectangle y a veces con IMFMediaEngineEx::UpdateVideoStream.

  • El rectángulo de origen debe alinearse y redondearse para que coincida con los requisitos del formato de color del fotograma introducido en el procesador de vídeo. Esto es importante porque los formatos como 420 y 422 tienen requisitos sobre las dimensiones y desplazamientos que se pueden crear y acceder a ellos. Por ejemplo, un rectángulo de origen de {1, 0, 319, 240} (izquierda, superior, derecha, inferior) se redondeará a {2, 0, 320, 240} cuando el formato de entrada sea 420.
  • Tanto el destino como el rectángulo de origen siempre se fijarán para ajustarse dentro de sus respectivos marcos: el rectángulo de origen al marco de origen y el rectángulo de destino al marco de destino. Esto significa que los valores negativos no son significativos, siempre se sujetarán a 0.
  • El rectángulo de origen está en el sistema de coordenadas del marco de destino, menos en cualquier rectángulo de destino. Esto significa que las transformaciones como la rotación se "deshacen" en el rectángulo de origen. Por lo tanto, no es necesario saber si el vídeo se ha girado o desempaquetado 3D. Por ejemplo, podría dibujar un rectángulo encima de la etiqueta de vídeo, tomar las coordenadas relativas (relativas a la etiqueta de vídeo), normalizarlas (de 0 a 1) y pasarlas como rectángulo de origen y deberían funcionar según lo previsto, incluso si se gira el vídeo.

El procesador de vídeo admite el procesamiento de vídeo acelerado por GPU, mediante Microsoft Direct3D 11 o Direct3D 12. Para obtener más información, consulte MF_SA_D3D11_AWARE y MF_SA_D3D12_AWARE.

El procesador de vídeo se usa como convertidor de front-end para la representación de vídeo cuando se usa SVR, que se expone mediante los componentes MediaPlayer y IMFMediaEngine . Descodificadores, complementos o orígenes usados por cualquiera de estos componentes

Efectos del representador

El procesador de vídeo MFT es el componente host para los efectos del representador. Los efectos del representador permiten que las aplicaciones se pluginen al proceso normal de transformación y representación de vídeo. Para las aplicaciones típicas, un complemento de vídeo (consulte: IMFMediaEngineEx::InsertVideoEffect) es suficiente. Pero algunos escenarios requieren más información sobre las condiciones exactas en las que se representa un vídeo. Considere un efecto de representador para las siguientes situaciones:

  • El complemento debe conocer la resolución en la que se representa el vídeo (por ejemplo, para realizar una operación de escalado especial, como la super resolución).
  • El complemento debe conocer las propiedades de la pantalla en las que se representa el vídeo (por ejemplo, para realizar una asignación de tono precisa).
  • El complemento debe conocer exactamente el formato de salida final del vídeo presentado.

Para cargar un efecto de representador, configure el atributo MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE en el tipo de entrada del procesador de vídeo MFT.

Vídeo estereoscópico

El procesador de vídeo admite la operación de desempaquetado de vistas en fotogramas de vídeo 3D:

Si el marco de entrada contiene dos vistas empaquetadas en el mismo fotograma, el procesador de vídeo puede dividir las vistas en búferes independientes, o extraer la vista base y descartar la segunda vista. Para habilitar la desempaquetación de vistas, establezca el atributo MF_ENABLE_3DVIDEO_OUTPUTen MF3DVideoOutputType_Stereo o MF3DVideoOutputType_BaseView.

Requisitos

Requisito Importancia
Cabecera
Camerauicontrol.h

Consulte también

procesadores de señal digital