WM ASF 编写器筛选器 (Windows Media Format 11 SDK)

[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

WM ASF 编写器筛选器接受可变数量的输入流,并创建 ASF 文件。 筛选器处理所有压缩和多路复用 (尽管可以在) 绕过压缩机制。 可以在各种方案中使用 WM ASF 编写器筛选器,包括数字视频 (DV) 捕获、音频重压以及Audio-Video交错 (AVI) 或 MPEG 数字媒体文件的转换,以便进行网络流式处理。 此筛选器提供了在 DirectShow 中创建 Microsoft Windows Media 音频和 Windows Media 视频文件的唯一方法。

有关详细信息,请参阅 在 DirectShow 中创建 ASF 文件

下表包含有关 WM ASF 编写器筛选器的信息,例如它支持的接口和媒体类型。

筛选器信息 类型
筛选器接口 IAMFilterMiscFlagsIBaseFilterIConfigAsfWriterIFileSinkFilter2、IMediaSeeking、IPersistStream、IServiceProvider、ISpecifyPropertyPages、 IWMIndexer2IWMHeaderInfoIWMWriterAdvanced2
输入引脚媒体类型 取决于配置文件。 通常为未压缩类型(如 MEDIATYPE_Audio 或 MEDIATYPE_Video),但如果压缩类型与配置文件匹配,则可以接受这些类型
输入引脚接口 IPinIMemInputPinIAMStreamConfigIServiceProviderIAMWMBufferPassIWMStreamConfig2 (通过 IServiceProvider)
输出引脚媒体类型 不适用
输出引脚接口 不适用
筛选器 CLSID CLSID_WMAsfWriter
属性页 CLSID CLSID_WMAsfWriterProperties
可执行文件 Qasf.dll
优点 MERIT_DO_NOT_USE
筛选器类别 未指定

 

备注

筛选器上的输入引脚数取决于传递给筛选器的配置文件。 为配置文件中定义的每个流创建一个相应媒体类型的引脚。

输入引脚支持 IAMStreamConfig 接口中的一种方法: IAMStreamConfig::GetFormat。 所有其他方法返回E_NOTIMPL。 调用 GetFormat 方法以查询引脚的目标压缩格式,该格式由当前配置文件定义。 使用 IConfigAsfWriter 接口设置配置文件。

筛选器的 IServiceProvider 接口使应用程序能够检索 Windows Media Format SDK 中定义的 IWMWriterAdvanced2 接口。 IWMWriterAdvanced2 接口控制视频去交错,如果输入是交错源(如 DV (数字视频) ),则非常有用。 使用 GetInputSettingSetInputSetting 方法来控制反交错。 不建议客户端在此接口上使用任何其他方法。 只有在将筛选器添加到筛选器图后,才能获取此接口。 以下示例演示如何查询此接口:

// 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();
}

DirectShow QASF 参考