WM ASF 寫入器篩選器 (Windows Media Format 11 SDK)
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器 和 接收寫入器已取代它。 來源讀取器 和 接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 來源讀取器 和 接收寫入器,而不是 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
WM ASF 寫入器篩選器會接受可變數目的輸入數據流,並建立 ASF 檔案。 篩選會處理所有壓縮和多任務處理(雖然可以略過壓縮機制)。 您可以在各種案例中使用 WM ASF 寫入器篩選器,包括數位視訊 (DV) 擷取、音訊重新壓縮,以及用於網路串流 Audio-Video 交錯式 (AVI) 或 MPEG 數位媒體檔案的轉換。 此篩選器提供在 DirectShow 中建立Microsoft Windows Media Audio 和 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、IWMStreamConfig2IServiceProvider) |
輸出釘選媒體類型 | 不適用 |
輸出釘選介面 | 不適用 |
篩選 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();
}
相關主題