Representador de vídeo mejorado
[El componente descrito en esta página, Representador de vídeo mejorado, es una característica heredada. Ha sido reemplazado por simple Video Renderer (SVR) expuesto a través de los componentes MediaPlayer y IMFMediaEngine. Para reproducir contenido de vídeo, debe enviar datos a uno de estos componentes y permitirles crear instancias del nuevo representador de vídeo. Estos componentes se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer o el nivel inferior IMFMediaEngine API para reproducir elementos multimedia de vídeo en Windows en lugar del EVR, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El representador de vídeo mejorado (EVR) es un componente que muestra vídeo en el monitor del usuario. Existen dos versiones del EVR:
- Receptor de medios EVR, para aplicaciones de Media Foundation.
- Filtro EVR para aplicaciones directShow.
Ambas versiones usan los mismos objetos internos para representar vídeo y comparten muchas de las mismas interfaces.
El EVR puede mezclar hasta 16 secuencias de vídeo. El primer flujo de entrada se denomina flujo de referencia de . La secuencia de referencia siempre aparece primero en el orden z. Cualquier secuencia adicional se denomina substreamsy se mezclan sobre la secuencia de referencia. La aplicación puede cambiar el orden z de las substreams, pero ninguna substream puede ser primero en el orden z.
El controlador de gráficos determina qué formatos de vídeo se admiten, pero normalmente se limitan a lo siguiente:
- Flujo de referencia: YUV progresivo o entrelazado sin alfa por píxel (como NV12 o YUY2); o RGB progresiva.
- Substreams: YUV progresivo con alfa por píxel, como AYUV o AI44.
Los formatos de substream disponibles pueden depender del formato de la secuencia de referencia. Para obtener más información, consulte negociación de tipos de medios EVR.
Internamente, el EVR usa un objeto denominado mezclador para componer los fotogramas de los flujos de entrada en una superficie para la representación. El mezclador también realiza la desinterlacación y corrección de color. La salida del mezclador es el fotograma de vídeo compuesto final. Un segundo objeto denominado moderador representa el fotograma de vídeo en la pantalla. El moderador programa cuándo se representan los fotogramas y administra el dispositivo Direct3D. Una aplicación puede proporcionar una implementación personalizada del mezclador o del moderador.
La velocidad de fotogramas de salida está bloqueada en el flujo de referencia. Cada vez que las substreams reciben nuevos fotogramas, el mezclador se mantiene en ellos. Cuando la secuencia de referencia recibe un nuevo marco, el mezclador compone ese marco con los fotogramas de substream. (Si la secuencia de referencia está entrelazada, un marco de referencia completo puede requerir más de un ejemplo multimedia). Es posible que una substream reciba más de un fotograma mientras el mezclador espera un marco de referencia. En ese caso, el mezclador simplemente descarta el marco de substream anterior.
Dado que el moderador crea el dispositivo Direct3D, también es responsable de compartir el dispositivo con otros objetos de canalización que necesitan tener acceso a los servicios de DirectX Video Acceleration (DXVA). En concreto, el mezclador EVR utiliza los servicios de procesamiento de vídeo DXVA para desinterlace y mezclar el vídeo. Externo al EVR, los descodificadores de software pueden usar DXVA para la descodificación de vídeo acelerada. El moderador comparte el dispositivo Direct3D mediante Administrador de dispositivos Direct3D. En el diagrama siguiente se muestra la arquitectura interna del EVR. (El descodificador de software, sombreado en gris, no forma parte del EVR).
EVR Interfaces
El EVR admite las siguientes interfaces. Algunas de estas interfaces las implementa el mezclador o el moderador. Para cada interfaz, el tema de referencia describe cómo obtener un puntero a la interfaz.
Interfaz | Descripción |
---|---|
IEVRFilterConfig | Establece el número de patillas de entrada en el filtro EVR (solo DirectShow). |
IEVRFilterConfigEx | Configura el filtro EVR (solo DirectShow). |
IEVRTrustedVideoPlugin | Permite que un complemento EVR represente vídeo protegido. |
IMFDesiredSample | Permite al moderador de EVR solicitar un marco específico del mezclador. |
IMFQualityAdvise | Permite al administrador de calidad ajustar la calidad del vídeo EVR. |
IMFTopologyServiceLookup | Permite que un mezclador o moderador personalizado obtenga punteros de interfaz del EVR. |
IMFVideoDeviceID | Devuelve el identificador de dispositivo de un mezclador o moderador evR. |
IMFVideoDisplayControl | Controla cómo muestra el vídeo EVR. |
IMFVideoMixerBitmap | Alfa combina una imagen de mapa de bits estática con el vídeo. |
IMFVideoMixerControl | Controla cómo el representador de vídeo mejorado (EVR) combina substreams de vídeo. |
IMFVideoMixerControl2 | Controla las preferencias para la desinterlación de vídeo. |
imfVideoPositionMapper | Asigna una posición en una secuencia de vídeo de entrada a la posición correspondiente en una secuencia de vídeo de salida. |
IMFVideoPresenter | Expuesto por el moderador de EVR. |
IMFVideoProcessor | Controla el procesamiento de vídeo, incluidos los ajustes, los filtros de ruido y los filtros de detalle. |
IMFVideoRenderer | Establece un mezclador o moderador en el EVR. |
IMFVideoSampleAllocator | Asigna muestras de vídeo. |
En esta sección
Tema | Descripción |
---|---|
usar el filtro EVR de DirectShow | Cómo usar el EVR en una aplicación DirectShow. |
usar el receptor de medios EVR | Cómo usar el EVR en una aplicación de Media Foundation. |
usar el controles de visualización de vídeo | Cómo controlar la forma en que el EVR muestra vídeo dentro de la ventana de la aplicación. |
usar el controles mezclador de vídeo | Cómo controlar la forma en que funciona el mezclador EVR. |
de negociación de tipos de medios EVR de | Describe cómo el EVR determina qué formatos de vídeo puede aceptar como entrada. |
mezcladores personalizados | Cómo escribir un mezclador personalizado para el EVR. |
cómo escribir un moderador de EVR | Cómo escribir un moderador personalizado para el EVR. |
Temas relacionados