Freigeben über


Informationen zu den Render-Engines

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

[Diese API wird nicht unterstützt und kann in Zukunft geändert oder nicht mehr verfügbar sein.]

In diesem Artikel wird beschrieben, wie DirectShow Editing Services (DES) ein Videobearbeitungsprojekt rendert.

In DES wird ein Projekt als Zeitleiste dargestellt. Die Zeitleiste ist nützlich, da sie die gängigsten Aufgaben in der Videobearbeitung vereinfacht, z. B. das Neuanordnen von Quellclips und das Hinzufügen von Videoeffekten. Für die DirectShow-Streamarchitektur ist dagegen ein Filterdiagramm erforderlich. Daher müssen Sie zum Rendern Ihres Projekts eine Zeitleiste in ein Filterdiagramm übersetzen. Die Komponente, die dies tut, wird als Render-Engine bezeichnet. DirectShow bietet zwei Render-Engines:

  • Grundlegende Render-Engine: Erstellt ein Filterdiagramm, das eine nicht komprimierte Ausgabe liefert.
  • Intelligente Render-Engine: Erstellt ein Filterdiagramm, das eine komprimierte Ausgabe liefert.

Die Intelligente Render-Engine verwendet die intelligente Neukomprimierung, um die Leistung zu verbessern. Bei der intelligenten Neukomprimierung werden Quelldateien nur dann erneut komprimiert, wenn sich das ursprüngliche Dateiformat vom endgültigen Ausgabeformat unterscheidet. Wenn die Formate übereinstimmen, wird die Quelle nie dekomprimiert. Die intelligente Neukomprimierung wird nur für die Videokomprimierung und nicht für die Audiokomprimierung unterstützt.

Verwenden Sie für die Vorschau die grundlegende Render-Engine. Die Intelligente Render-Engine kann auch eine Vorschau anzeigen, aber weniger effizient, da sie den komprimierten Stream dekomprimieren muss. Verwenden Sie zum Schreiben von Dateien die Intelligente Render-Engine, wenn Sie eine intelligente Neukomprimierung wünschen. Verwenden Sie andernfalls die einfache Render-Engine. Durch eine intelligente Neukomprimierung kann die Zeit, die zum Schreiben der Datei benötigt wird, erheblich reduziert werden.

Wichtig

Verwenden Sie die Intelligente Render-Engine nicht zum Lesen oder Schreiben von Windows Media-Dateien.

 

Wichtig

Beide Render-Engines erstellen ein unsichtbares Fenster, das Nachrichten verarbeitet. Der Thread, der die Render-Engine erstellt, muss über eine Nachrichtenschleife verfügen, um Nachrichten zu senden. Außerdem darf dieser Thread erst beendet werden, wenn die Render-Engine und der Filter Graph-Manager freigegeben werden. Andernfalls könnte die Anwendung einen Deadlock haben.

 

Erstellen des Filterdiagramms

Das Filterdiagramm ist in zwei Phasen aufgebaut. In der ersten Phase erstellt die Render-Engine ein "Front-End", bei dem es sich um ein partielles Filterdiagramm handelt. Das folgende Diagramm veranschaulicht ein typisches Front-End:

Filterdiagramm-Front-End

Die Subsysteme enthalten verschiedene spezialisierte Filter, die die Render-Engine automatisch zusammenstellt. Das Front-End enthält einen Ausgabenadel für jede Gruppe im Zeitleiste. Die Ausgabepins liefern unkomprimierte Daten, wenn Sie die grundlegende Render-Engine verwenden, oder komprimierte Daten, wenn Sie die intelligente Render-Engine verwenden.

Im zweiten Schritt werden die Ausgabepins mit Renderingfiltern verbunden. Für die Vorschau sind die Renderingfilter Video- und Audiorenderer. Beim Schreiben von Dateien sind die Renderingfilter Multiplexerfilter (Mux)-Filter und Dateischreiberfilter.

Abschließen des Filterdiagramms

Vorschau eines Projekts

Schreiben eines Projekts in eine Datei