Scelta del renderer video corretto

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

DirectShow offre diversi filtri del renderer video, riepilogati nella tabella seguente.

Filtra Commenti
Renderer video avanzato (EVR) Usa Direct3D 9. Richiede Windows Vista o versioni successive.
Renderingr di mix video 9 (VMR-9) Usa Direct3D 9. Richiede Windows XP o versioni successive.
Filtro di combinazione video 7 (VMR-7) Usa DirectDraw. Richiede Windows XP o versioni successive.
Mixer di sovrapposizione Supporta sovrimpressione hardware tramite DirectDraw.
Filtro Renderer video legacy. Usa DirectDraw o (raramente) GDI

 

Quale renderer da usare dipende in gran parte da quali versioni di Windows è necessario supportare.

  • In Windows Vista e versioni successive, le applicazioni devono usare EVR se l'hardware lo supporta. In caso contrario, tornare a VMR-9 o VMR-7. EVR offre prestazioni migliori e qualità video migliori rispetto ai renderer precedenti. Inoltre, è progettato per lavorare con Desktop Window Manager (DWM).
  • Prima di Windows Vista, usare VMR-9 se l'hardware lo supporta e la funzionalità della porta video non è necessaria. In caso contrario, usare VMR-7.
  • Nei sistemi meno recenti, potrebbe essere necessario usare Il mixer di sovrapposizione (per il supporto della porta video o della sovrapposizione hardware) o il filtro del renderer video legacy.

Per impostazione predefinita, i metodi IGraphBuilder::Render e RenderFile usano vmR-7. Se l'hardware non supporta vmR-7, questi metodi vengono restituiti al filtro del renderer video legacy. Il renderer EVR e VMR-9 non sono mai i renderer predefiniti.

Video Rendering