Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O MFT do processador de vídeo é uma MFT (transformação do Microsoft Media Foundation) que executa conversão de colorspace, mapeamento de tom, redimensionamento de vídeo, desinterlacagem, conversão de taxa de quadros, rotação, corte, desempacotamento de exibição espacial esquerda e direita, espelhamento, processamento de efeitos do renderizador e mapeamento de esfera.
CLSID
CLSID_VideoProcessorMFT
Interfaces
- IMFRealTimeClientEx
- IMFTransform
- IMFVideoProcessorControl
- IMFVideoProcessorControl2
- IMFVideoProcessorControl3
- IMFVideoRendererEffectControl
Formatos de entrada
Os seguintes formatos têm suporte para valores para o valor MF_MT_SUBTYPE do tipo de mídia definido por meio 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 saída
Os seguintes formatos têm suporte para valores para o valor MF_MT_SUBTYPE do tipo de mídia definido por meio 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
Nem todas as combinações de formatos de entrada e saída têm suporte. Para testar se há suporte para uma conversão, defina o tipo de entrada e chame IMFTransform::GetOutputAvailableType.
Para obter mais informações sobre esses formatos, consulte GUIDs de subtipo de vídeo.
Transformações de espaço de cores
Os atributos a seguir podem ser definidos nos tipos de entrada ou saída para alterar o espaço de cor do conteúdo:
- 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
Transformações de imagem
Os seguintes atributos podem ser definidos nos tipos de entrada ou saída para executar transformações espaciais no 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
Transformações de taxa de quadros
Os atributos a seguir podem ser definidos nos tipos de entrada ou saída para executar transformações temporais no vídeo:
- MF_MT_INTERLACE_MODE
- MF_MT_FRAME_RATE
Observe que, se MF_XVP_DISABLE_FRC estiver definido como TRUE, a conversão de taxa de quadros será desabilitada, mas a desinterlacização ainda será executada.
Transformar Atributos
Os seguintes atributos podem ser definidos na transformação usando 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
Observações
Uma instância do processador de vídeo pode ser criada de uma das seguintes maneiras:
- Chamando MFTEnumEx. O processador de vídeo é registrado na categoria MFT_CATEGORY_VIDEO_PROCESSOR .
- Chamando a função COM CoCreateInstance passando a CLSID_VideoProcessorMFT CLSID.
As observações a seguir referem-se ao trabalho com retângulos de origem e retângulos de destino no MFT do Processador de Vídeo. Retângulos de origem e destino são definidos com IMFVideoProcessorControl::SetDestinationRectangle e SetSourceRectangle e, às vezes, com IMFMediaEngineEx::UpdateVideoStream.
- O retângulo de origem deve ser alinhado e arredondado para corresponder aos requisitos do formato de cor do quadro inserido no processador de vídeo. Isso é importante porque formatos como 420 e 422 têm requisitos sobre as dimensões e deslocamentos que podem ser criados e acessados. Por exemplo, um retângulo de origem de {1, 0, 319, 240} (esquerda, superior, direita, inferior) será arredondado para {2, 0, 320, 240} quando o formato de entrada for 420.
- O retângulo de destino e de origem sempre será fixado para caber dentro de seus respectivos quadros: o retângulo de origem para o quadro de origem e o retângulo de destino para o quadro de destino. Isso significa que os valores negativos não são significativos , eles serão sempre fixados a 0.
- O retângulo de origem está no sistema de coordenadas do quadro de destino, menos qualquer retângulo de destino. Isso significa que transformações como rotação são "desfeitas" no retângulo de origem. Portanto, você não precisa saber se o vídeo foi girado ou desempacotado em 3D. Por exemplo, você pode desenhar um retângulo na parte superior da marca de vídeo, pegar as coordenadas relativas (em relação à marca de vídeo), normalizá-las (intervalo de 0 a 1) e passá-las para baixo como o retângulo de origem e elas devem funcionar conforme o esperado, mesmo que o vídeo esteja sendo girado.
O processador de vídeo dá suporte ao processamento de vídeo acelerado por GPU, usando o Microsoft Direct3D 11 ou o Direct3D 12. Para obter mais informações, consulte MF_SA_D3D11_AWARE e MF_SA_D3D12_AWARE.
O processador de vídeo é usado como conversor de front-end para renderização de vídeo ao usar SVR que é exposto pelos componentes MediaPlayer e IMFMediaEngine . Decodificadores, plug-ins ou fontes usadas por qualquer um desses componentes
Efeitos do renderizador
O MFT do Processador de Vídeo é o componente host para efeitos do Renderizador. Os efeitos do renderizador permitem que os aplicativos conectem-se ao processo normal de transformação e renderização de vídeo. Para aplicativos típicos, um plug-in de vídeo (consulte: IMFMediaEngineEx::InsertVideoEffect) é suficiente. Mas alguns cenários exigem mais informações sobre as condições exatas em que um vídeo está sendo renderizado. Considere um efeito de renderizador para as seguintes situações:
- O plug-in precisa saber a resolução em que o vídeo é renderizado (por exemplo, para executar uma operação de dimensionamento especial, como super resolução)
- O plug-in precisa saber as propriedades da exibição em que o vídeo está sendo renderizado (por exemplo, para executar um mapeamento de tom preciso)
- O plug-in precisa saber exatamente o formato de saída final do vídeo apresentado
Para carregar um efeito de renderizador, configure o atributo MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE no tipo de entrada do MFT do Processador de Vídeo.
Vídeo estereoscópico
O processador de vídeo dá suporte à operação de desempacotamento de exibição em quadros de vídeo 3D:
Se o quadro de entrada contiver dois modos de exibição embalados no mesmo quadro, o processador de vídeo poderá dividir as exibições em buffers separados ou extrair a exibição base e descartar a segunda exibição. Para habilitar o desempacotar a exibição, defina o atributo MF_ENABLE_3DVIDEO_OUTPUT como MF3DVideoOutputType_Stereo ou MF3DVideoOutputType_BaseView.
Requisitos
| Requisito | Valor |
|---|---|
| Cabeçalho |
|
Consulte também