DirectShow 系統概觀
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
多媒體的挑戰
使用多媒體會產生數個主要挑戰:
- 多媒體資料流程包含大量資料,必須非常快速地處理。
- 音訊和視訊必須同步處理,才能同時啟動和停止,並以相同的速率播放。
- 資料可能來自許多來源,包括本機檔案、電腦網路、電視廣播和視訊相機。
- 資料有各種不同的格式,例如Audio-Video交錯 (AVI) 、進階串流格式 (ASF) 、動畫圖片專家群組 (MPEG) ,以及 DV (DV) 。
- 程式設計人員事先不知道終端使用者系統上會出現哪些硬體裝置。
DirectShow 解決方案
DirectShow 的設計目的是要解決這些挑戰。 其主要設計目標是藉由隔離應用程式與資料傳輸、硬體差異和同步處理的複雜性,簡化在 Windows 平臺上建立數位媒體應用程式的工作。
為了達到串流視訊和音訊所需的輸送量,DirectShow 盡可能使用 Direct3D 和 DirectSound。 這些技術會有效率地將資料轉譯給使用者的音效和圖形卡。 DirectShow 會將媒體資料封裝在時間戳記範例中,以同步處理播放。 為了處理可能的各種來源、格式和硬體裝置,DirectShow 會使用模組化架構,其中應用程式會混合並符合稱為 篩選的不同軟體元件。
DirectShow 會根據 Windows 驅動程式模型 (WDM) ,以及支援舊版 Windows (VfW) 擷取卡片的篩選,以及針對 ACM) ACM) 和視訊 ( (壓縮管理員所撰寫的編解碼器,) 介面支援舊版影片的擷取和微調裝置。
下圖顯示應用程式、DirectShow 元件,以及 DirectShow 支援的一些硬體和軟體元件之間的關聯性。
如這裡所述,DirectShow 篩選器會與各種裝置通訊及控制,包括本機檔案系統、電視微調器和視訊擷取卡、VfW 編解碼器、透過 DirectDraw 或 GDI) (的視訊顯示,以及透過 DirectSound) (的音效卡。 因此,DirectShow 會將應用程式與這些裝置的許多複雜度隔離。 DirectShow 也會針對特定檔案格式提供原生壓縮和解壓縮篩選。
相關主題