DirectShow編程(3.1)- 關於DirectShow - DirectShow體系概述

3. 關於DirectShow
3.1. DirectShow體系概述
    多媒體的難題
    處理多媒體有幾個主要的難題:
    *多媒體流包含了巨大的數據量,而這些數據都必須非常快地被處理
    *音頻和視頻必須同步,因此它們必須在同一時間開始或停止,並以同一速率播放
    *數據可能來自很多的源,如本地文件、網絡、電視廣播和視頻攝像機
    *數據有各種各樣的格式,如AVI、ASF、MPEG和DV
    *程序員無法預知最終用戶使用什麼樣的硬件設備
    DirectShow的解決方案
    DirectShow被設計成用來解決所有這些難題,它主要的設計目的就是通過將複雜的數據轉輸、硬件的多樣性和同步問題從應用程序中獨立出來,從而簡化在windows平臺上數字媒體應用程序的開發任務。
    要實現數據高效地被處理,需要流化音視頻數據,而DirectShow會儘可能地使用DirectDraw和DirectSound,從而高效地將數據送到用戶的聲音和圖形設備中進行播放。同步則是通過在媒體數據中加入時間戳來實現。而DirectShow模塊化的架構,使其可以輕鬆操縱變化多端的源、格式和硬件設備,在這樣的架構裏,應用程序只需組合和匹配多個filter來實現功能。
    DirectShow提供的filter支持基於WDM的採集和調諧設備,也支持早先的VFW採集卡和爲ACM和VCM接口編寫的編碼器。
    下圖顯示了應用程序、DirectShow組件和DirectShow支持的硬件和軟件組件之間的關係:

如圖,DirectShow將應用程序與衆多複雜的設備隔離開來,通信和控制這些設備均出DirectShow的filter來完成。DirectShow同樣爲某種文件格式提供與之對應的編解碼器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章