Representador de vídeo mejorado

[El componente descrito en esta página, Enhanced Video Renderer es una característica heredada. Se ha reemplazado por Simple Video Renderer (SVR) que se expone mediante 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 las API de IMFMediaEngine de nivel inferior para reproducir elementos multimedia de vídeo en Windows en lugar de 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 interfaces.

El EVR puede mezclar hasta 16 secuencias de vídeo. La primera secuencia de entrada se denomina secuencia de referencia. La secuencia de referencia siempre aparece primero en el orden Z. Las secuencias adicionales se denominan substreams y se mezclan sobre la secuencia de referencia. La aplicación puede cambiar el orden Z de las substreams, pero ninguna substream puede estar primero en el orden Z.

El controlador de gráficos determina qué formatos de vídeo se admiten, pero normalmente se limitan a los siguientes:

  • Secuencia de referencia: YUV progresivo o entrelazado sin alfa por píxel (como NV12 o YUY2); o RGB progresivo.
  • 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 las secuencias de entrada en una superficie para su representación. El mezclador también realiza la desentrelazado 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 la secuencia de referencia. Cada vez que las substreams reciben nuevos fotogramas, el mezclador los retiene. Cuando la secuencia de referencia recibe un nuevo fotograma, el mezclador los compone con los fotogramas de las substreams. (Si la secuencia de referencia está entrelazada, un fotograma de referencia completo puede requerir más de una muestra de medio). Es posible que una substream reciba más de un fotograma mientras el mezclador espera un fotograma de referencia. En ese caso, el mezclador simplemente descarta el fotograma 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 usa los servicios de procesamiento de vídeo DXVA para desentrelazar y mezclar el vídeo. Externos al EVR, los descodificadores de software pueden usar DXVA para la descodificación de vídeo acelerada. El moderador comparte el dispositivo Direct3D mediante el 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).

architectural diagram showing the evr.

Interfaces del EVR

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 pines 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 fotograma 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 en el vídeo.
IMFVideoMixerControl Controla cómo el representador de vídeo mejorado (EVR) combina substreams de vídeo.
IMFVideoMixerControl2 Controla las preferencias para desentrelazar el 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
Uso del filtro DirectShow EVR Cómo usar el EVR en una aplicación DirectShow.
Uso del receptor de medios EVR Cómo usar el EVR en una aplicación de Media Foundation.
Uso de los 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.
Uso de los controles del mezclador de vídeo Cómo controlar el funcionamiento del mezclador EVR.
Negociación de tipos de medios EVR 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.
Procedimiento para escribir un presentador de EVR Cómo escribir un moderador personalizado para el EVR.

 

Reproducción de audio y vídeo