日期:2018-06-13 點(diǎn)擊: 關(guān)鍵詞:DirectX,視頻會(huì)議,視頻會(huì)議系統(tǒng),網(wǎng)絡(luò)視頻會(huì)議,編程
視頻會(huì)議系統(tǒng)最常見的問題主要體現(xiàn)在音頻和視頻兩方面,視頻方面的問題主要是圖像的壓縮以及圖像的處理為主,在視頻會(huì)議系統(tǒng)中,在現(xiàn)有的壓縮編碼下,經(jīng)過各個(gè)環(huán)節(jié)的處理都會(huì)對視頻會(huì)議圖像造成一定的負(fù)面影響。編碼器對圖像的壓縮、解碼器對圖像的解壓縮等都會(huì)造成干擾,包括網(wǎng)絡(luò)也會(huì)造成視頻會(huì)議圖像卡頓不清晰燈現(xiàn)象。
視頻會(huì)議的開發(fā)過程會(huì)涉及到圖像的采集和圖像的重畫,首先我們知道window開發(fā)視頻采集和重畫,最好的選擇就是采用DirectX SDK提供的接口進(jìn)行音視頻的采集和重畫,原因是DirectX為我們提供了一個(gè)直接調(diào)用底層硬件的接口,我們不需要直接寫和底層打交道的代碼,只要簡單的幾個(gè)語句就可以實(shí)現(xiàn)硬件的操作。
DirectX軟件開發(fā)包是微軟公司提供的一套在Windows操作平臺(tái)上開發(fā)高性能圖形、聲音、輸入、輸出和網(wǎng)絡(luò)游戲的編程接口。作為DirectX家族的成員,DirectShow能夠在Windows平臺(tái)上處理各種格式的媒體文件的回放,音頻、視頻的采集等高性能的多媒體應(yīng)用,并提供了相應(yīng)完整的解決方案。
DirectShow使用Filter Graph來管理整個(gè)數(shù)據(jù)流的處理過程,各個(gè)模塊叫做Filter。按照功能來分,F(xiàn)ilter可以分為三類:源過濾器、變換過濾器和顯示過濾器,分別用來引入獲取的數(shù)據(jù)、獲取并處理數(shù)據(jù)、提交數(shù)據(jù)給外設(shè)。有了這樣的協(xié)同工作,應(yīng)用程序就按照一定的意圖建立起相應(yīng)的Filter Graph,通過Filter Graph Manager來控制整個(gè)的數(shù)據(jù)處理過程,就實(shí)現(xiàn)了應(yīng)用程序與DirectShow系統(tǒng)之間的交互。
通過DirectShow我們可以實(shí)現(xiàn)音視頻的采集,通過變換過濾器,我們可以實(shí)現(xiàn)企業(yè)視頻會(huì)議數(shù)據(jù)的發(fā)送和接收,最后我們通過顯示過濾器對音視頻進(jìn)行播放和重畫。通過這三個(gè)步驟,就可以實(shí)現(xiàn)視頻會(huì)議的音視頻采集、傳輸以及播放和重畫。