WM ASF 寫入器篩選 (Windows 媒體格式 11 SDK)
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
WM ASF 寫入器篩選準則接受可變數目的輸入資料流程,並建立 ASF 檔案。 篩選準則會處理所有壓縮和多工處理 (,不過壓縮機制可以略過) 。 您可以在各種案例中使用 WM ASF 寫入器篩選,包括數位視訊 (DV) 擷取、音訊重新壓縮,以及轉換Audio-Video交錯 (AVI) 或 MPEG 數位媒體檔案以進行網路串流。 此篩選準則提供在 DirectShow 中建立 Microsoft Windows 媒體音訊和 Windows Media Video 檔案的唯一方式。
如需詳細資訊,請參閱 在 DirectShow 中建立 ASF 檔案。
下表包含 WM ASF 寫入器篩選的相關資訊,例如其支援的介面和媒體類型。
篩選資訊 | 類型 |
---|---|
篩選介面 | IAMFilterMiscFlags、 IBaseFilter、 IConfigAsfWriter、 IFileSinkFilter2、IMediaSeeking、IPersistStream、IServiceProvider、ISpecifyPropertyPages、 IWMIndexer2、 IWMHeaderInfo、 IWMWriterAdvanced2 |
輸入釘選媒體類型 | 相依于設定檔。 一般未壓縮的類型,例如MEDIATYPE_Audio或MEDIATYPE_Video,不過如果壓縮類型符合設定檔,則可以接受這些類型 |
輸入針腳介面 | IPin、 IMemInputPin、 IAMStreamConfig、 IServiceProvider、 IAMWMBufferPass、 IWMStreamConfig2 (透過 IServiceProvider) |
輸出釘選媒體類型 | 不適用 |
輸出針腳介面 | 不適用 |
篩選 CLSID | CLSID_WMAsfWriter |
屬性頁 CLSID | CLSID_WMAsfWriterProperties |
可執行檔 | Qasf.dll |
優點 | MERIT_DO_NOT_USE |
篩選類別 | 未指定 |
備註
篩選準則上的輸入針腳數目取決於傳遞至篩選的設定檔。 針對設定檔中定義的每個資料流程,會建立適當媒體類型的一個針腳。
輸入針腳支援 來自 IAMStreamConfig 介面的一種方法: IAMStreamConfig::GetFormat。 所有其他方法都會傳回E_NOTIMPL。 呼叫 GetFormat 方法來查詢釘選的目的地壓縮格式,這是由目前設定檔所定義。 使用 IConfigAsfWriter 介面來設定設定檔。
篩選的 IServiceProvider 介面可讓應用程式擷取 Windows 媒體格式 SDK 中定義的 IWMWriterAdvanced2 介面。 IWMWriterAdvanced2介面可控制視訊反交錯,如果輸入是交錯的來源,例如 DV (數位視訊) ,則很有用。 使用 GetInputSetting 和 SetInputSetting 方法來控制反交錯。 不建議用戶端在此介面上使用任何其他方法。 只有在篩選新增至篩選圖形之後,才能取得此介面。 下列範例示範如何查詢此介面:
// 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();
}
相關主題