DirectShow Editing Services-Architektur
[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.]
Die folgende Abbildung zeigt die Architektur von DirectShow Editing Services (DES).
- Zeitachse: Stellt eine Videoproduktion als Sammlung von Quellclips, Übergängen und Effekten dar, die in einer Gruppe geschachtelter Spuren organisiert sind. Weitere Informationen finden Sie unter Das Zeitachsenmodell.
- XML-Parser: Analysiert den Zeitleiste und generiert eine Ausgabedatei oder liest eine Eingabedatei und generiert eine Zeitleiste. DES unterstützt ein XML-basiertes Persistenzformat.
- Rendermodul: Übersetzt die Zeitleiste in eine Form, die als Streamingmedien gerendert werden kann. Standardmäßig erzeugt die Render-Engine ein DirectShow-Filterdiagramm (siehe nächster Abschnitt).
- Medienlocator: Verwaltet einen Cache mit Speicherorten von Medienelementen. Wenn der Versuch, ein Medienelement zu öffnen, fehlschlägt, verwendet DES den Cache, um das Element basierend auf einem Verlauf der erfolgreichen Öffnung zu suchen.
Die Zeitleiste ist eine abstrakte Beschreibung eines Videobearbeitungsprojekts. Es gibt die im Projekt verwendeten Quellclips, Start- und Stoppzeiten, Effekte und Übergänge usw. an. Die Zeitleiste rendert die Video- und Audiostreams jedoch nicht. Stattdessen übersetzt die Render-Engine die Zeitleiste in ein Filterdiagramm für die Vorschau- oder Dateiausgabe. Eine Anwendung bearbeitet die Zeitleiste, anstatt das Filterdiagramm direkt zu manipulieren, was umständlich und fehleranfällig wäre.
In der folgenden Tabelle sind die Standard Aufgaben aufgeführt, die eine typische Videobearbeitungsanwendung ausführt, sowie die Schnittstellen, die jede Aufgabe unterstützen. In späteren Abschnitten werden diese Aufgaben und die Schnittstellen ausführlicher beschrieben.
Aufgabe | Schnittstellen |
---|---|
Erstellen oder Ändern eines Zeitleiste. | IAMTimeline und die anderen IAMTimelineXXXX-Schnittstellen |
Speichern und Laden von Projektdateien | IXml2Dex |
Zeigen Sie eine Vorschau eines Projekts an, oder schreiben Sie es in eine Datei. | IRenderEngine, ISmartRenderEngine |
Darüber hinaus kann eine Anwendung einige oder alle der folgenden sekundären Aufgaben ausführen.
Aufgabe | Schnittstellen |
---|---|
Rufen Sie Informationen zu Mediendateien ab. (Anzahl der Streams; Format und Dauer jedes Streams.) | IMediaDet |
Legen Sie Eigenschaften für Übergänge und Effekte fest. | IPropertySetter |
Erhalten Sie eine Benachrichtigung, wenn beim Rendern Fehler auftreten. | IAMSetErrorLog, IAMErrorLog |
Rufen Sie Posterrahmen ab. | IMediaDet, ISampleGrabber |