Directshow是微軟公司推出的基于COM組件的多媒體開發包,其主要是通過filter(過濾器)的方式進行數據的傳輸與控制,Directshow是目前在windows上最好的多媒體開發包,其提供音、視頻采集、數據轉換、數據傳輸、音、視頻播放等幾乎囊或所有的流媒體開發的功能,而視頻會議系統是一個多媒體實時傳輸系統,因此Directshow在windows的視頻會議系統的開發當中占有非常重要的作用。下面我們列舉一下Directshow在視頻會議系統開發當中有哪些功能值得我們關注的。
1、 音、視頻捕捉功能
Directshow主要是通過capture filter的方式對音、視頻進行捕捉,而這些capture filter都是直接操作硬件設備,因此其捕捉效率非常高,視頻會議系統可以利用這些capture filter實現音、視頻數據的高效捕捉。
2、 數據播放功能
Direcshow的數據播放功能同樣是直接調用硬件設備,其效率也非常高,通常我們用到的數據播放功能是音頻播放和視頻播放,音頻播放通過directsound來實現,而視頻播放通過video window 或者vm7 、vm9進行圖像的重畫。我們在重畫圖像的時候,一般在圖像幀數不高的情況下,我們可以采用DBI的方式進行重畫,但如果圖像播放幀數很大,通過CPU重畫的方式會消耗很大的CPU資源,因此我們就需要直接對顯卡進行操作,而不是通過DBI進行重畫。Directshow提供直接在顯卡上重畫的函數,我們可以通過它來實現實時的圖像重畫。
3、 格式轉換
在多媒體領域里,數據有多種不同的格式,特別是一些視頻格式的數據,其格式的種類非常多,為了保證數據的正確性,我們需要對數據的格式進行轉換,Directshow 的格式轉換主要通過filter來實現,不同的格式直接的數據,可以通過PIN和POUT進行數據的轉換,數據的源是從PIN獲取,而轉換的目標由POUT輸出。
4、 filter Graph
Directshow提供一個可視化的filter模型圖供開發人員調試filter,我們開發視頻會議系統的時候,可以從捕捉的filter開始,然后連接傳傳輸的filter,最后連接播放的filter,這些流程可以通過filter Graph來模擬,我們需要把各部分的filter開發出來,就可以直觀地進行測試。
5、 COM組件
Directshow開發的filter都是基于COM的方式,而COM的一次注冊終身使用的方式,為我們程序的發布提供了極大的便利。
綜上所述,Directshow多媒體開發包能開發出具有實時、高效、便捷的多媒體交互式系統,因此在windows的視頻會議系統的開發當中,Directshow是很多開發者的首選開發包。