WM ASF 寫入器篩選 (DirectShow)
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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 檔案。
標籤 | 值 |
---|---|
篩選介面 | IAMFilterMiscFlags、 IBaseFilter、 IConfigAsfWriter、 IConfigAsfWriter2、 IFileSinkFilter2、 IMediaSeeking、 IPersistStream、 IServiceProvider、 ISpecifyPropertyPages此外,篩選也會公開下列 Windows 媒體格式 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();
}
}
應用程式不應該使用IWMWriterAdvanced 方法的任何 IWMWriterAdvanced2介面繼承。 呼叫任何這些方法可能會與篩選的作業交錯。
此篩選所支援的唯一檔案寫入模式是AM_FILE_OVERWRITE。 請參閱 IFileSinkFilter2::GetMode。
當 Windows Media Format SDK 執行時間將WMT_STATUS訊息傳送至 WM ASF 寫入器篩選時,篩選會將它們轉送為 EC_WMT_EVENT 事件。
相關主題
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應