Auswählen des richtigen Videorenderers
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
DirectShow bietet mehrere Videorendererfilter, die in der folgenden Tabelle zusammengefasst sind.
Filtern | Bemerkungen |
---|---|
Erweiterter Videorenderer (EVR) | Verwendet Direct3D 9. Erfordert Windows Vista oder höher. |
Video Mixing Renderer 9 (VMR-9) | Verwendet Direct3D 9. Erfordert Windows XP oder höher. |
Videomischungsfilter 7 (VMR-7) | Verwendet DirectDraw. Erfordert Windows XP oder höher. |
Überlagerungsmixer | Unterstützt Hardwareüberlagerungen über DirectDraw. |
Legacy-Videorendererfilter. | Verwendet DirectDraw oder (selten) GDI. |
Welcher Renderer verwendet werden soll, hängt weitgehend davon ab, welche Windows-Versionen Sie unterstützen müssen.
- In Windows Vista und höher sollten Anwendungen das EVR verwenden, wenn die Hardware dies unterstützt. Andernfalls sollten Sie auf VMR-9 oder VMR-7 zurückgreifen. Der EVR bietet eine bessere Leistung und eine bessere Videoqualität als vorherige Renderer. Außerdem ist es für die Verwendung mit dem Desktopfenster-Manager (DWM) konzipiert.
- Verwenden Sie vor Windows Vista die VMR-9, wenn die Hardware dies unterstützt und die Videoportfunktion nicht erforderlich ist. Verwenden Sie andernfalls VMR-7.
- Auf älteren Systemen müssen Sie möglicherweise den Überlagerungsmixer (für Videoport- oder Hardwareüberlagerungsunterstützung) oder den älteren Video Renderer-Filter verwenden.
Die Methoden IGraphBuilder::Render und RenderFile verwenden standardmäßig VMR-7. Wenn die Hardware VMR-7 nicht unterstützt, greifen diese Methoden auf den älteren Video Renderer-Filter zurück. EVR und VMR-9 sind nie die Standardrenderer.
Zugehörige Themen