WM ASF 寫入器篩選器 (DirectShow)
[與此頁面相關聯的功能, DirectShow 是舊版功能。 它已被媒體播放程式、IMFMediaEngine 和媒體基金會的音訊/視訊擷取所取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
WM ASF 寫入器是 Windows 媒體™格式 SDK 所提供寫入器對象的包裝函式篩選。 篩選會接受可變數目的輸入數據流,並建立進階系統格式 (ASF) 檔案。 篩選會處理所有壓縮和多任務處理(雖然可以略過壓縮機制)。 您可以在各種案例中使用 WM ASF 寫入器,包括數位視訊 (DV) 擷取、音訊重新壓縮,以及音訊-視訊交錯 (AVI) 或 MPEG 多媒體檔案以進行網路串流轉換。 此篩選器提供在 Microsoft DirectShow 中建立Microsoft® Windows Media Audio 和 Windows Media™ Video 檔案的唯一方法。
如需詳細資訊,請參閱 在 DirectShow 中建立 ASF 檔案。
標籤 | 值 |
---|---|
篩選介面 | IAMFilterMiscFlags、IBaseFilter、IConfigAsfWriter、IConfigAsfWriter2、IFileSinkFilter2、IMediaSeeking、IPersistStream、IServiceProvider、ISpecifyPropertyPages此外,篩選條件也會公開下列 Windows Media Format SDK 接口:IWMIndexer2、IWMHeaderInfo、 IWMWriterAdvanced2 |
輸入釘選媒體類型 | 取決於 ASF 設定檔。 通常未壓縮的音訊和視訊類型,但如果篩選條件符合 ASF 配置檔,則會接受壓縮的類型。 |
輸入針腳介面 | IAMStreamConfig、IAMWMBufferPass、IMemInputPin、IPin、IServiceProvider此外,針腳也會公開下列 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();
}
}
應用程式不應該使用 IWMWriterAdvanced2 介面繼承的任何 IWMWriterAdvanced 方法。 呼叫這些方法可能會干擾篩選的作業。
此篩選唯一支援的檔案寫入模式是AM_FILE_OVERWRITE。 請參閱 IFileSinkFilter2::GetMode。
當 Windows 媒體格式 SDK 運行時間將WMT_STATUS訊息傳送至 WM ASF 寫入器篩選器時,篩選會將訊息轉送為 EC_WMT_EVENT 事件。
相關主題