Eingaben, Datenströme und Ausgaben
[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK-ist ein Legacyfeature. Es wurde von Source Reader und Sink Writerersetzt. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code Source Reader und Sink Writer- anstelle Windows Media Format 11 SDK-verwendet werden soll. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Bei einer "Eingabe" in dieser Dokumentation handelt es sich um einen beliebigen digitalen Mediendatenstrom (z. B. Audio oder Video), den Ihre Anwendung über entsprechende APIs an das Writer-Objekt aus einer Quelle übermittelt. Eingaben müssen in einem unterstützten Format übermittelt werden. Verschiedene RGB- und YUV-Standardformate werden als Eingabe unterstützt, und die Audiocodecs unterstützen PCM. Wenn ein angegebenes Eingabeformat vom Codec nicht nativ unterstützt wird, instanziiert das Writer-Objekt entweder ein Audio- oder Videohilfsobjekt, das eine Vielzahl von Formaten in Formate konvertieren kann, die der Codec akzeptieren kann. Bei Audioeingaben passt das Hilfsobjekt die Bittiefe, die Samplerate und die Anzahl der Kanäle bei Bedarf an. Bei Videoeingaben führt das Videohilfsobjekt Farbraumkonvertierungen und Anpassungen der Rechteckgröße durch. In einigen Fällen können komprimierte Audio- und Videodaten in einem Eingabedatenstrom übergeben werden. Eine Eingabe kann ein anderer Medientyp sein, neben Audio und Video, z. B. Text, Skriptbefehle, Stillbilder oder beliebige Dateidaten.
Eine "Ausgabe" in dieser Dokumentation bezieht sich auf Daten, die das Leserobjekt an eine Anwendung zum Rendern übergibt. Eine Ausgabe entspricht einem einzelnen Stream zum Zeitpunkt der Wiedergabe. Wenn Sie einen gegenseitigen Ausschluss verwenden, teilen sich alle sich gegenseitig ausschließenden Datenströme eine einzelne Ausgabe. In der Regel befinden sich Ausgabedaten in Form von nicht komprimierten Audio- oder Videodaten, obwohl sie einen beliebigen Datentyp enthalten kann. Unterstützte Videoausgabeformate werden an anderer Stelle in dieser Dokumentation aufgeführt.
Der Begriff "Stream" in dieser Dokumentation bezieht sich auf Daten in einer ASF-Datei, im Gegensatz zu (1) den Eingabequelldaten, bevor sie vom Writer-Objekt verarbeitet werden, und (2) die Ausgabedaten, nachdem sie vom Leserobjekt dekomprimiert wurden. Ein ASF-Datenstrom enthält Daten, die aus einer einzelnen Eingabe für das Writer-Objekt stammen, obwohl mehrere Datenströme aus derselben Eingabe erstellt werden können. Ein Datenstrom hat die gleichen Format- und Komprimierungseinstellungen von Anfang bis Ende. Eine einfache ASF-Datei verfügt über zwei Datenströme, eine für Audio und eine für Video. Eine komplexere Datei kann zwei Audiostreams und mehrere Videostreams aufweisen. Die Audiodatenströme verfügen möglicherweise über die gleichen Komprimierungseinstellungen, enthalten jedoch unterschiedliche Inhalte, z. B. einen Kommentar in verschiedenen Sprachen. Die Videodatenströme enthalten möglicherweise denselben Inhalt, weisen jedoch unterschiedliche Komprimierungseinstellungen auf. Die Medienformat- und Komprimierungseinstellungen, die vom Writer-Objekt auf jeden Datenstrom angewendet werden, werden im Profil angegeben.
Die Beziehung zwischen Eingaben, Datenströmen und Ausgaben kann von drei grundlegenden Typen sein. Die folgenden drei Diagramme veranschaulichen die Beziehungen.
In der grundlegendsten Beziehung, bei der es sich um ein Profil ohne gegenseitigen Ausschluss handelt, wird jede Eingabe vom Writer verarbeitet und als einzelner Datenstrom in die ASF-Datei eingefügt. Bei der Wiedergabe liest der Leser den Datenstrom und liefert unkomprimierte Beispiele als einzelne Ausgabe, wie im folgenden Diagramm dargestellt.
Eine komplexere Beziehung tritt auf, wenn mehrere Bitraten-Gegenseitigkeitsausschlüsse verwendet werden. In diesem Fall wird eine einzelne Eingabe vom Writer verarbeitet und mit mehreren Bitraten codiert. Jede Codierung der Daten wird in die ASF-Datei als separater Datenstrom eingefügt. Bei der Wiedergabe bestimmt der Leser, welcher Stream basierend auf der verfügbaren Bandbreite dekomprimiert werden soll. Der Leser liest dann den ausgewählten Datenstrom und liefert unkomprimierte Beispiele als einzelne Ausgabe, wie im folgenden Diagramm dargestellt.
Der dritte Beziehungstyp kann auftreten, wenn ein sprachbasierter oder benutzerdefinierter gegenseitiger Ausschluss verwendet wird. In dieser Beziehung werden mehrere Eingaben vom Leser verarbeitet und jeweils als einzelner Datenstrom in die ASF-Datei eingefügt. Bei der Wiedergabe wählt Ihre Anwendung manuell aus, welcher Stream basierend auf der von Ihnen bereitgestellten Logik dekomprimiert werden soll. Der Leser liest dann den ausgewählten Datenstrom und liefert unkomprimierte Beispiele als einzelne Ausgabe. Dieser Prozess kann für das Einschließen von Soundtracks in mehreren Sprachen verwendet werden. Das folgende Diagramm veranschaulicht diesen Prozess.
Es gibt einige Abweichungen in den zuvor beschriebenen Beziehungen. Beispielsweise kann eine Datei alle drei Beziehungen oder ein oder zwei davon enthalten. Es ist auch möglich, dass einige Eingaben komprimiert werden, in diesem Fall führt der Writer keine zusätzliche Komprimierung durch. Der Leser kann auch komprimierte Beispiele liefern. Wenn dies der Fall ist, müssen Sie jedoch nach Datenstromnummer und nicht nach Ausgabenummer darauf zugreifen.
Anmerkung
Eingaben, Dampfe und Ausgaben werden allen Nummern durch die Objekte des Windows Media Format SDK zugewiesen. Datenströme weisen eine Datenstromnummer auf, die 1 basiert, die Sie im Profil definieren. Jedem Datenstrom wird auch ein Datenstromindex zugewiesen, der zum Aufzählen von Datenströmen in einem Profil verwendet werden kann. Keiner dieser Nummern ist garantiert miteinander konsistent. Das heißt, die Eingabenummer 1 entspricht möglicherweise nicht der Datenstromnummer 1, die Datenstromnummer 1 entspricht möglicherweise nicht dem Datenstromindex 1 usw.
Verwandte Themen