Konfigurieren des ASF Writer
[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.]
Wenn der WM ASF Writer-Filter erstellt wird, wird er automatisch mit dem WMProfile_V80_256Video-Profil konfiguriert. Dieses Profil verwendet die Codecs Windows Media Audio und Windows Media Video, Version 8, die nicht so aktuell sind wie die Codecs der Windows Media 9-Serie. Es wird empfohlen, ein benutzerdefiniertes Profil zu erstellen, das die Codecs der Windows Media 9-Serie verwendet, und den WM ASF Writer mit dem benutzerdefinierten Profil zu konfigurieren, wie unter Konfigurieren von Profilen und anderen ASF-Dateieigenschaften beschrieben. Sie müssen den WM ASF Writer-Filter dem Filterdiagramm hinzufügen, bevor Sie den Filter konfigurieren und den Filter konfigurieren, bevor Sie ihn mit anderen Filtern verbinden.
Alle Eingabedaten müssen zeitstempelt sein, und alle Eingabenadeln müssen verbunden sein, bevor der Filter ausgeführt oder angehalten werden kann. Wenn Sie also den Filter mit einem Profil konfigurieren, das über einen Audio- und einen Videodatenstrom verfügt, erstellt der Filter eine Audio- und eine Videoeingabenadel, und beide Pins müssen verbunden sein, bevor der Filter ausgeführt werden kann. Da das Windows Media Format SDK einen Audiostream benötigt, um zu funktionieren, muss der WM ASF Writer immer über einen Eingabeaudio-Pin verfügen, auch wenn es sich um einen Dummystream handelt, d. h. einen stummgeschalteten Audiodatenstrom mit niedriger Bitrate.
Hinzufügen von Dateneinheitserweiterungen
Sie können einen Profilstream für Dateneinheitserweiterungen konfigurieren, z. B. SMPTE-Zeitcodes, entweder vor oder nach der Verbindung des Filters, sofern Sie die folgende Vorgangsreihenfolge befolgen:
- Fügen Sie dem Stream mithilfe von IWMStreamConfig2::AddDataUnitExtension eine oder mehrere Dateneinheitserweiterungen hinzu.
- Rufen Sie IWMProfile::ReconfigStream auf, um das Profil zu aktualisieren.
- Rufen Sie IConfigAsfWriter::ConfigureFilterUsingProfile mit dem aktualisierten Profilobjekt auf.
- Suchen Sie den Pin für die Videoeingabe, und rufen Sie die IAMWMBufferPass::SetNotify-Methode auf, um Ihre anwendungsdefinierte IAMWMBufferPassCallback-Schnittstelle zu registrieren.
Wenn das Diagramm ausgeführt wird, wird Ihre IAMWMBufferPassCallback::Notify-Methode für jeden Frame aufgerufen, und Sie können Eigenschaften für das Beispiel mithilfe der INSSBuffer3-Schnittstellenmethoden abrufen und festlegen.
Hinweis
In einigen prozessorintensiven Szenarien, z. B. inverse Telecine, erfordert der WM ASF Writer möglicherweise mehr Ausgabepuffer als einige nachgelagerte Filter unterstützen können. Der DV-Decoder akzeptiert beispielsweise nicht mehr als einen Puffer für seinen Ausgabenadel und dasselbe gilt für den AVI-Dekompressor unter bestimmten Bedingungen. Wenn beim Herstellen einer Verbindung mit diesen Filtern oder möglicherweise beim Ausführen des Diagramms Probleme auftreten, muss möglicherweise ein Zwischenfilter geschrieben werden, der eine beliebige Anzahl von Puffern an seinem Ausgabepin akzeptiert.
Zugehörige Themen