WM ASF Writer Filter (DirectShow)

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

Der WM ASF Writer ist ein Wrapperfilter für das Writer-Objekt, das mit dem Windows Media™ Format SDK bereitgestellt wird. Der Filter akzeptiert eine variable Anzahl von Eingabedatenströmen und erstellt eine ASF-Datei (Advanced Systems Format). Der Filter verarbeitet die gesamte Komprimierung und das Multiplexing (obwohl der Komprimierungsmechanismus umgangen werden kann). Sie können den WM ASF Writer in verschiedenen Szenarien verwenden, z. B. digital video (DV), Audiorekomprimierung und Konvertierung von Audio-Video Interleaved (AVI) oder MPEG-Multimediadateien für das Netzwerkstreaming. Dieser Filter bietet die einzige Möglichkeit, Microsoft® Windows Media™ Audio- und Windows Media Video-Dateien in Microsoft DirectShow zu erstellen.

Weitere Informationen finden Sie unter Erstellen von ASF-Dateien in DirectShow.

Bezeichnung Wert
Filterschnittstellen IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPagesAußerdem macht der Filter die folgenden Windows Media Format SDK-Schnittstellen verfügbar: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
Eingabenadelmedientypen Hängt vom ASF-Profil ab. In der Regel unkomprimierte Audio- und Videotypen, obwohl der Filter komprimierte Typen akzeptiert, wenn sie dem ASF-Profil entsprechen.
Eingabenadelschnittstellen IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderDarüber hinaus macht der Pin die folgende Windows Media Format SDK-Schnittstelle verfügbar: IWMStreamConfig2 (über IServiceProvider)
Ausgabeheftmedientypen Nicht zutreffend
Schnittstellen für Ausgabepins Nicht zutreffend
CLSID filtern CLSID_WMAsfWriter
Eigenschaftenseite CLSID CLSID_AsfWriterProperties
Ausführbare Datei Qasf.dll
Verdienst MERIT_DO_NOT_USE
Filterkategorie Nicht angegeben

 

Bemerkungen

Für den Filter ist das Windows Media Format Software Development Kit (SDK) und die zugrunde liegenden Abhängigkeiten erforderlich.

Die Anzahl der Eingabenadeln für den Filter hängt vom Profil- oder Profilbezeichner des ASF-Datenstroms ab.

Die Eingabenadeln unterstützen eine Methode aus der IAMStreamConfig-Schnittstelle : IAMStreamConfig::GetFormat. Alle anderen Methoden geben E_NOTIMPL zurück. Rufen Sie die GetFormat-Methode auf, um das Zielkomprimierungsformat des Pins abzufragen, das durch das aktuelle ASF-Profil definiert wird. Verwenden Sie die IConfigAsfWriter-Schnittstelle , um das Profil festzulegen.

Sie können die IServiceProvider-Schnittstelle des Filters verwenden, um einen Zeiger auf die IWMWriterAdvanced2-Schnittstelle abzurufen, die im Windows Media Format SDK definiert ist. Sie können die IWMWriterAdvanced2-Schnittstelle verwenden, um das Deinterlacing von Videos zu steuern, wenn das Quellvideo interlaced ist. Um den Deinterlacing-Modus festzulegen, rufen Sie IWMWriterAdvanced2::SetInputSetting auf. Verwenden Sie für den dwInputNum-Parameter den nullbasierten Index des Videoeingabenadels, der von der IEnumPins-Schnittstelle aufgezählt wird.

Das folgende Beispiel zeigt, wie Sie diese Schnittstelle abfragen:

// Assume that pAsfWriter is a valid IBaseFilter pointer.
IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;

hr = pAsfWriter->QueryInterface(
    IID_IServiceProvider, 
    (void**)&pProvider
    );
if (SUCCEEDED(hr))
{
    hr = pProvider->QueryService(
        IID_IWMWriterAdvanced2,
        IID_IWMWriterAdvanced2, 
        (void**)&pWMWA2
        );
    pProvider->Release();
    if (SUCCEEDED(hr))
    {
        // Use pWMWA2. (Not shown.)
        pWMWA2->Release();
    }
}

Anwendungen sollten keine der IWMWriterAdvanced-Methoden verwenden, die die IWMWriterAdvanced2-Schnittstelle erbt. Das Aufrufen dieser Methoden kann mit dem Vorgang des Filters interere.

Der einzige von diesem Filter unterstützte Dateischreibmodus ist AM_FILE_OVERWRITE. Siehe IFileSinkFilter2::GetMode.

Wenn die Windows Media Format SDK-Runtime WMT_STATUS Nachrichten an den WM ASF Writer-Filter sendet, leitet der Filter sie als EC_WMT_EVENT Ereignisse weiter.

DirectShow-Filter