WM ASF 寫入器篩選 (DirectShow)

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

WM ASF 寫入器是 Windows 媒體™格式 SDK 所提供寫入器物件的包裝函式篩選。 篩選會接受可變數目的輸入資料流程,並建立進階系統格式 (ASF) 檔案。 篩選準則會處理所有壓縮和多工處理 (,不過壓縮機制可以略過) 。 您可以在各種案例中使用 WM ASF 寫入器,包括數位視訊 (DV) 擷取、音訊重新壓縮,以及轉換Audio-Video交錯 (AVI) 或 MPEG 多媒體檔案以進行網路串流。 此篩選準則提供在 Microsoft DirectShow 中建立 Microsoft® Windows 媒體™音訊和 Windows Media Video 檔案的唯一方式。

如需詳細資訊,請參閱 在 DirectShow 中建立 ASF 檔案

標籤
篩選介面 IAMFilterMiscFlagsIBaseFilterIConfigAsfWriterIConfigAsfWriter2IFileSinkFilter2IMediaSeekingIPersistStreamIServiceProviderISpecifyPropertyPages此外,篩選也會公開下列 Windows 媒體格式 SDK 介面: IWMIndexer2IWMHeaderInfoIWMWriterAdvanced2
輸入釘選媒體類型 取決於 ASF 設定檔。 通常未壓縮的音訊和視訊類型,雖然篩選準則會接受符合 ASF 設定檔的壓縮類型。
輸入針腳介面 IAMStreamConfigIAMWMBufferPassIMemInputPinIPinIServiceProvider此外,針腳也會公開下列 Windows 媒體格式 SDK 介面: IWMStreamConfig2 (透過 IServiceProvider)
輸出釘選媒體類型 不適用。
輸出針腳介面 不適用。
篩選 CLSID CLSID_WMAsfWriter
屬性頁 CLSID CLSID_AsfWriterProperties
可執行檔 Qasf.dll
優點 MERIT_DO_NOT_USE
篩選類別 未指定

 

備註

篩選準則需要 Windows 媒體格式軟體發展工具組 (SDK) 及其基礎相依性。

根據 ASF 資料流程的設定檔或設定檔識別碼,篩選上的輸入針腳數目。

輸入針腳支援 來自 IAMStreamConfig 介面的一種方法: IAMStreamConfig::GetFormat。 所有其他方法都會傳回E_NOTIMPL。 呼叫 GetFormat 方法來查詢釘選的目的地壓縮格式,這是由目前的 ASF 設定檔所定義。 使用 IConfigAsfWriter 介面來設定設定檔。

您可以使用篩選的 IServiceProvider 介面來取得 IWMWriterAdvanced2 介面的指標,此介面定義于 Windows 媒體格式 SDK 中。 您可以使用 IWMWriterAdvanced2 介面來控制來源視訊交錯時進行視訊反交錯。 若要設定反交錯模式,請呼叫 IWMWriterAdvanced2::SetInputSetting。 針對 dwInputNum 參數,請使用視訊輸入針腳的以零起始的索引,如 IEnumPins 介面所列舉。

下列範例示範如何查詢此介面:

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

應用程式不應該使用IWMWriterAdvanced 方法的任何 IWMWriterAdvanced2介面繼承。 呼叫任何這些方法可能會與篩選的作業交錯。

此篩選所支援的唯一檔案寫入模式是AM_FILE_OVERWRITE。 請參閱 IFileSinkFilter2::GetMode

當 Windows Media Format SDK 執行時間將WMT_STATUS訊息傳送至 WM ASF 寫入器篩選時,篩選會將它們轉送為 EC_WMT_EVENT 事件。

DirectShow 篩選準則