Share via


Erstellen von Filterdiagrammen zum Schreiben von ASF-Dateien

[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.]

Beim Erstellen von Windows Media-basierten Inhalten verwenden Anwendungen in der Regel eines der folgenden Szenarien:

  • Konvertieren oder Transcodierung von Inhalten aus einem anderen Format in Windows Media Format.
  • Einfügen von Inhalten, die nicht auf Windows Media basieren (native Streamformate) in ASF-Dateien.
  • Erfassen von Livedaten und sofortiges Codieren im Windows Media-Format.

Transcodierung von ASF-Dateien

Sie können ein Dateitranscodierungsfilterdiagramm mit dem WM ASF Writer auf unterschiedliche Weise erstellen. Am einfachsten können Sie den WM ASF Writer zum Filterdiagramm hinzufügen und dann die IGraphBuilder::RenderFile-Methode verwenden, um das Diagramm automatisch zu erstellen.

Eine alternative Möglichkeit besteht darin, jeden Filter manuell zum Diagramm hinzuzufügen und die Pins zu verbinden. Nachdem Sie den WM ASF Writer hinzugefügt haben, konfigurieren Sie ihn mithilfe der IConfigAsfWriter-Methoden, wenn das Standardprofil nicht geeignet ist, und verbinden Sie die Eingabepins des WM ASF Writer mit den entsprechenden Ausgabepins auf den Upstream-Filtern.

Die folgende Abbildung zeigt die typischen Konfigurationen des WM ASF Writer-Transcodierungsfilterdiagramms.

Transcodierungsfilterdiagramm

Einfügen nativer Streamformate in ASF-Dateien

Standardmäßig erwartet der WM ASF Writer-Filter unkomprimierte Audio- und Videodatenströme an den Eingabepins und verwendet die Codecs Windows Media Audio und Windows Media Video, um die Streams zu komprimieren. Der ASF-Dateicontainer kann jedoch für jeden Datentyp verwendet werden. Indem Sie digitale Mediendaten in einen ASF-Dateicontainer platzieren, können Sie von ASF bereitgestellte Funktionen wie Metadaten und digitale Rechteverwaltung (DRM) hinzufügen, ohne Ihre Inhalte transcodieren zu müssen.

Um eine ASF-Datei zu erstellen, die Inhalte enthält, die nicht auf Windows Media basieren, muss die Anwendung den Stream im Filterdiagramm Upstream des WM ASF Writer komprimieren und den Komprimierungsmechanismus des WM ASF Writer umgehen, indem sie IConfigAsfWriter2::SetParam wie folgt aufruft:

pConfigAsfWriter2->SetParam(AM_CONFIGASFWRITER_PARAM_DONTCOMPRESS,TRUE,0)

Konfigurieren Sie dann den Filter mit dem gewünschten Profil. Es ist wichtig, dass der Medientyp des Eingabestreams genau mit dem Format im Profil übereinstimmt. In einigen Fällen kann es erforderlich sein, das Format des Eingabestreams zu untersuchen und ein benutzerdefiniertes Profil zu erstellen, das diesem entspricht.

Wenn Sie den WM ASF Writer mit dem Upstream-Filter verbinden, verwenden Sie die IGraphBuilder::ConnectDirect-Methode. Verwenden Sie keine "intelligent connect"-Methoden wie IGraphBuilder::Connect oder IGraphBuilder::RenderFile, um den Filter zu verbinden, da dadurch der "Komprimierungsmodus umgehen" des Filters deaktiviert wird.

Direktes Erfassen von einem Gerät in eine ASF-Datei

Wenn Audio- oder Videodaten direkt in einer ASF-Datei erfasst werden, sieht das Filterdiagramm in Abhängigkeit vom Typ des verwendeten Aufnahmegeräts wie folgt aus.

Windows Media Video Capture Graph

Weitere Informationen zum Erstellen von Video- und Audioaufnahmegraphen finden Sie in den folgenden Themen:

Der WM ASF Writer wird nur ausgeführt, wenn alle zugehörigen Pins verbunden sind. Wenn Sie den WM ASF Writer mit dem Standardsystemprofil (nicht empfohlen) oder einem beliebigen Profil mit Audio- und Videostreams konfigurieren, wird eine Eingabenadel für jeden Stream erstellt, und jeder dieser Pins muss verbunden sein. Wenn Sie z. B. keine Audioaufnahme beabsichtigen, konfigurieren Sie den Filter mit einem reinen Videoprofil, sodass keine Audioanheftung erstellt wird.

Erstellen von ASF-Dateien in DirectShow