Profiles

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Ein Profil ist eine Sammlung von Daten, die die Konfiguration einer ASF-Datei beschreibt. Ein Profil muss mindestens Konfigurationseinstellungen für einen einzelnen Stream enthalten.

Die Datenstrominformationen in einem Profil enthalten die Bitrate, das Pufferfenster und die Medieneigenschaften für den Stream. Die Streaminformationen für Audio und Video beschreiben genau, wie die Medien in der Datei konfiguriert werden, einschließlich des Codecs (falls vorhanden), der zum Komprimieren der Daten verwendet wird.

Ein Profil enthält auch Informationen zu den verschiedenen ASF-Dateifeatures, die in dateien verwendet werden, die damit erstellt wurden. Dazu gehören gegenseitige Ausgrenzung, Streampriorisierung, Bandbreitenfreigabe und Dateneinheitserweiterungen.

In früheren Versionen des Windows Media Format SDK wurden vorkonfigurierte Systemprofile bereitgestellt, die zum Erstellen gängiger Dateitypen verwendet oder leicht an die Anforderungen Ihrer Anwendung angepasst werden konnten. Systemprofile werden für die Codecs der Windows Media 9-Serie nicht unterstützt. Dies liegt daran, dass die Anzahl der "allgemeinen" Dateitypen exponentiell gestiegen ist, indem neue Features hinzugefügt wurden. Es wird erwartet, dass praktisch jeder Inhaltsersteller Anforderungen hat, die über die einfachen Lösungen hinausgehen, die von Systemprofilen bereitgestellt werden. Sie können weiterhin die alten Systemprofile als Ausgangspunkt verwenden. Weitere Informationen finden Sie unter Verwenden von Systemprofilen.

Sie müssen dem Writer ein Profil für jede Datei bereitstellen, die Sie schreiben. Sie können ein Profil angeben, das mit dem Writer verwendet werden soll, indem Sie IWMWriter::SetProfile aufrufen.

Profildaten sind in verschiedenen Formen vorhanden, die vom Windows Media Format SDK verwendet werden können. Auf Profilinformationen kann auch auf verschiedene Arten zugegriffen werden. Dies kann zu Verwirrung darüber führen, was ein Profil ist und wie es verwendet wird.

Das folgende Diagramm zeigt, wie Profildaten im SDK verwendet werden.

Diagramm, das den Fluss von Profilinformationen zeigt.

Profildaten haben drei verschiedene Formen: Daten, die in einem Profilobjekt in einer Anwendung enthalten sind, einer XML-Datei auf dem Datenträger und Daten im Header einer ASF-Datei. Jede dieser Datenformen wird im Diagramm als schattiertes Rechteck dargestellt.

Daten in einem Profile-Objekt

Wenn Sie ein Profil bearbeiten, verwenden Sie ein Profilobjekt, das alle Profildaten kapselt. Sie können ein leeres Profilobjekt erstellen, indem Sie das Profil-Manager-Objekt verwenden. Sie können auch das Profil-Manager-Objekt verwenden, um vorhandene Profildaten in ein Profilobjekt zu laden.

Die meisten Profildaten müssen mithilfe von Objekten hinzugefügt und bearbeitet werden, die einzelne Teile des Profils darstellen. Dazu gehören Streamkonfigurationsobjekte, Objekte für gegenseitigen Ausschluss, Bandbreitenfreigabeobjekte und ein Streampriorisierungsobjekt. Jeder dieser Objekttypen kann mithilfe von Methoden im Profilobjekt erstellt werden. Änderungen an diesen Objekten wirken sich erst auf das Profilobjekt aus, wenn Sie eine Methode im Profilobjekt verwenden, um die aktualisierten Daten aus dem anderen Objekt einzuschließen.

Daten in einer XML-Datei

Profildaten werden auf dem Datenträger in Form einer XML-Datei mit der Prx-Dateinamenerweiterung gespeichert. Das Windows Media Format SDK enthält eine Sammlung von Profilen, die als Systemprofile bezeichnet werden und die gängigsten Arten von ASF-Dateien abdecken. Systemprofile werden in einer Datei namens WMSysPr9.prx gespeichert. (Beachten Sie, dass diese Datei tatsächlich keine Systemprofile für die Windows Media 9-Serie enthält, da das Konzept der Systemprofile nicht mehr verwendet wird.) Wenn Sie Ihre eigenen benutzerdefinierten Profile speichern, müssen Sie sie in Ihren eigenen Dateien speichern.

Sie können das Profil-Manager-Objekt verwenden, um die Daten aus einem Profilobjekt in einer Zeichenfolge mit XML-Text zu speichern. Anschließend können Sie die gewünschten Datei-E/A-Funktionen verwenden, um die Zeichenfolge in einer Datei auf dem Datenträger zu speichern.

Daten im Header einer ASF-Datei

Der Writer verwendet die Informationen aus dem Profil, um die Datenströme zu erstellen, die in den Datenabschnitt der ASF-Datei eingehen. Der Großteil der Profildaten wird im Headerabschnitt der Datei gespeichert, wenn eine Datei geschrieben wird. Bei der Wiedergabe kann das Reader-Objekt (oder das synchrone Leserobjekt) auf die Informationen im Header der Datei zugreifen. In diesem Fall erstellt das Leseobjekt ein Profilobjekt und füllt es mit den Daten aus dem Header auf.

Wenn Sie mit dem Reader (oder synchronen Reader) auf die Profildaten zugreifen, können Sie Änderungen an den Profilinformationen vornehmen, aber es gibt keine Möglichkeit, diese Änderungen auf die Datei im Reader anzuwenden. Sie können die Profilinformationen aus einer Datei in einem Reader auf ein Profil in einem Writer anwenden, um eine neue Datei mit den gleichen Einstellungen wie die Datei im Reader zu erstellen. In diesem Fall werden alle Änderungen, die Sie vor dem Festlegen des Profils im Writer an den Profilinformationen vornehmen, in den Profilinformationen wider, die vom Writer registriert wurden.

Verwenden des Profil-Editors

Anstatt Profile mit dem Windows Media Format SDK zu erstellen, können Sie den Profil-Editor verwenden, ein Hilfsprogramm, das in Windows Media Encoder enthalten ist. Verwenden Sie in Ihrer Codierungsanwendung die IWMProfileManager::LoadProfileByData-Methode , um das gespeicherte Profil zu laden. In einigen Szenarien, z. B. wenn Sie eine begrenzte Anzahl von Profilen verwenden, die nie dynamisch geändert werden, ist es möglicherweise bequemer, den Profil-Editor zum Erstellen Ihrer Profile zu verwenden.

Wenn Sie jedoch den Profil-Editor verwenden, wird empfohlen, die Einstellung "Videogröße: Gleiche Videoeingabe" nicht zu verwenden. Wenn dieses Kontrollkästchen aktiviert ist, erstellt der Profil-Editor ein Profil, in dem die Höhe und Breite der Videoausgabe auf 0 (null) festgelegt ist. Wenn Windows Media Encoder auf diese Profile trifft, legt es die richtigen Werte fest, um der Videoeingabe zu entsprechen. Der Writer im Windows Media Format SDK tut dies jedoch nicht automatisch, sodass Sie sicherstellen müssen, dass Ihre Anwendung die Videoframegröße in Fällen festlegt, in denen das Profil keine hat.

Hinweis Einige Streamkonfigurationselemente werden nicht im Profil gespeichert. Die Daten im Profil beschreiben das Format der fertigen ASF-Datei. Eingabemedieneigenschaften und andere Konfigurationsdaten, die vom Writer-Objekt zum Konfigurieren der Codecs verwendet werden, werden nicht im Profil gespeichert. Dies schließt alle Eigenschaften ein, die mithilfe der IWMPropertyVault::SetProperty-Methode festgelegt werden.

Bandbreitenfreigabeobjekt

Konzepte

IWMProfile-Schnittstelle

IWMProfileManager-Schnittstelle

Mutual Exclusion-Objekt

Profil-Manager-Objekt

Stream-Konfigurationsobjekt

Streampriorisierungsobjekt

Arbeiten mit Profilen