Freigeben über


WM ASF Writer Filter (DirectShow)

[Bei dem dieser Seite zugeordneten Feature DirectShow handelt es sich um ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine sowie der Audio- und Videoaufnahme in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt für neuen Code nach Möglichkeit dringend die Verwendung von MediaPlayer, IMFMediaEngine sowie der Audio- und Videoaufnahme in Media Foundation anstelle von DirectShow. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, wenn möglich umgeschrieben wird, um 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 behandelt alle Komprimierung und Multiplexing (obwohl der Komprimierungsmechanismus umgangen werden kann). Sie können den WM ASF Writer in verschiedenen Szenarien verwenden, einschließlich Digital Video (DV)-Aufnahme, Audio-Rekompression und Konvertierung von Audio-Video Interleaved (AVI) oder MPEG Multimedia-Dateien für Netzwerkstreaming. Dieser Filter bietet die einzige Möglichkeit zum Erstellen von Microsoft® Windows Media™ Audio- und Windows Media Video-Dateien in Microsoft DirectShow.

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

Bezeichnung Wert
Filterschnittstellen IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPagesZusätzlich macht der Filter die folgenden Windows Media Format SDK-Schnittstellen verfügbar: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
Eingabe-Pin-Medientypen Hängt vom ASF-Profil ab. In der Regel nicht komprimierte Audio- und Videotypen, obwohl der Filter komprimierte Typen akzeptiert, wenn sie mit dem ASF-Profil übereinstimmen.
Eingabe-Pin-Schnittstellen IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderDarüber hinaus macht der Pin die folgende Windows Media Format SDK-Schnittstelle verfügbar: IWMStreamConfig2 (über IServiceProvider)
Ausgabe-Pinmedientypen Nicht zutreffend.
Ausgabeheftschnittstellen Nicht zutreffend.
Filter CLSID CLSID_WMAsfWriter
Eigenschaftenseite CLSID CLSID_AsfWriterProperties
Ausführbare Datei Qasf.dll
Verdienst MERIT_DO_NOT_USE
Filterkategorie Nicht angegeben

 

Hinweise

Der Filter erfordert das Windows Media Format Software Development Kit (SDK) und die zugrunde liegenden Abhängigkeiten.

Die Anzahl der Eingabenadeln für den Filter, abhängig vom Profil- oder Profilbezeichner des ASF-Datenstroms.

Die Eingabe-Pins 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 videodeinterlacing zu steuern, wenn das Quellvideo interlaced ist. Rufen Sie zum Festlegen des Deinterlacingmodus IWMWriterAdvanced2::SetInputSetting auf. Verwenden Sie für den dwInputNum-Parameter den nullbasierten Index der Videoeingabenadel, wie sie 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 den Vorgang des Filters beeinträchtigen.

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

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

DirectShow-Filter