Elección del representador de vídeo correcto

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, 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.

DirectShow proporciona varios filtros de representador de vídeo, resumidos en la tabla siguiente.

Filter Observaciones
Representador de vídeo mejorado (EVR) Usa Direct3D 9. Requiere Windows Vista o posterior.
Representador de mezcla de vídeo 9 (VMR-9) Usa Direct3D 9. Requiere Windows XP o posterior.
Filtro de mezcla de vídeo 7 (VMR-7) Usa DirectDraw. Requiere Windows XP o posterior.
Mezclador de superposición Admite superposiciones de hardware a través de DirectDraw.
Filtro de representador de vídeo heredado. Usa DirectDraw o GDI (rara vez)

 

El representador que se va a usar depende en gran medida de las versiones de Windows que necesite admitir.

  • En Windows Vista y versiones posteriores, las aplicaciones deben usar el EVR si el hardware lo admite. De lo contrario, vuelva a VMR-9 o VMR-7. El EVR ofrece un mejor rendimiento y una mejor calidad de vídeo que los representadores anteriores. Además, está diseñado para trabajar con el Administrador de ventanas de escritorio (DWM).
  • Antes de Windows Vista, use VMR-9 si el hardware lo admite y no se requiere la funcionalidad de puerto de vídeo. De lo contrario, use VMR-7.
  • En sistemas anteriores, es posible que tenga que usar el mezclador de superposición (para la compatibilidad con superposición de hardware o puerto de vídeo) o el filtro heredado de Video Renderer.

Los métodos IGraphBuilder::Render y RenderFile usan VMR-7 de forma predeterminada. Si el hardware no admite VMR-7, estos métodos se revierten al filtro heredado de Video Renderer. El EVR y VMR-9 nunca son los representadores predeterminados.

Representación de vídeo