Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK-ist ein Legacyfeature. Es wurde von Source Reader und Sink Writerersetzt. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code Source Reader und Sink Writer- anstelle Windows Media Format 11 SDK-verwendet werden soll. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Der WM ASF Writer-Filter akzeptiert eine variable Anzahl von Eingabedatenströmen und erstellt eine ASF-Datei. Der Filter behandelt alle Komprimierung und Multiplexing (obwohl der Komprimierungsmechanismus umgangen werden kann). Sie können den WM ASF Writer-Filter in verschiedenen Szenarien verwenden, z. B. digital video(DV)-Aufnahme, Audiokomprimierung und Konvertierung von Audio-Video Interleaved (AVI) oder MPEG digital media files for network streaming. Dieser Filter bietet die einzige Möglichkeit zum Erstellen von Microsoft Windows Media Audio- und Windows Media Video-Dateien in DirectShow.
Weitere Informationen finden Sie unter Erstellen von ASF-Dateien in DirectShow.
Die folgende Tabelle enthält Informationen zum WM ASF Writer-Filter, z. B. die Schnittstellen und Medientypen, die unterstützt werden.
Filterinformationen | Arten |
---|---|
Filterschnittstellen | IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPages, IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2 |
Eingabe-Pin-Medientypen | Abhängig vom Profil. Normalerweise nicht komprimierte Typen wie MEDIATYPE_Audio oder MEDIATYPE_Video, obwohl komprimierte Typen akzeptiert werden können, wenn sie mit dem Profil übereinstimmen |
Eingabe-Pin-Schnittstellen | IPin, IMemInputPin, IAMStreamConfig, IServiceProvider, IAMWMBufferPass, IWMStreamConfig2 (bis IServiceProvider) |
Ausgabe-Pinmedientypen | Nicht zutreffend |
Ausgabeheftschnittstellen | Nicht zutreffend |
Filter CLSID | CLSID_WMAsfWriter |
Eigenschaftenseite CLSID | CLSID_WMAsfWriterProperties |
Ausführbar | Qasf.dll |
Verdienst | MERIT_DO_NOT_USE |
Filterkategorie | Nicht angegeben |
Bemerkungen
Die Anzahl der Eingabenadeln für den Filter hängt vom Profil ab, das an den Filter übergeben wird. Für jeden im Profil definierten Datenstrom wird ein Pin des entsprechenden Medientyps erstellt.
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 Profil definiert wird. Verwenden Sie die IConfigAsfWriter Schnittstelle, um das Profil festzulegen.
Die IServiceProvider--Schnittstelle des Filters ermöglicht Anwendungen das Abrufen der IWMWriterAdvanced2--Schnittstelle, die im Windows Media Format SDK definiert ist. Die IWMWriterAdvanced2 Schnittstelle steuert videodeinterlacing und ist nützlich, wenn die Eingabe eine interlaced Quelle ist, z. B. DV (digitales Video). Verwenden Sie die methoden GetInputSetting und SetInputSetting zum Steuern von Deinterlacing. Es wird nicht empfohlen, dass Clients eine der anderen Methoden auf dieser Schnittstelle verwenden. Diese Schnittstelle kann nur abgerufen werden, nachdem der Filter dem Filterdiagramm hinzugefügt wurde. Das folgende Beispiel zeigt, wie Sie diese Schnittstelle abfragen:
// Assume that m_pGraph is a valid IGraphBuilder interface pointer,
// and that pAsfWriter points to the IBaseFilter interface
// on the WM ASF Writer filter.
IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;
hr = m_pGraph->AddFilter(pAsfWriter, L"WM ASF Writer");
...
hr = pAsfWriter->QueryInterface(IID_IServiceProvider, (void**)&pProvider)
if (SUCCEEDED(hr))
{
hr = pProvider->QueryService(IID_IWMWriterAdvanced2,
IID_IWMWriterAdvanced2, (void**)&pWMWA2);
pProvider->Release();
}
Verwandte Themen