視頻會議系統(tǒng)的開發(fā)主要涉及到協(xié)議規(guī)范、數(shù)據(jù)傳輸、音視頻編解碼、界面構(gòu)建四個主要的方面,而現(xiàn)今國外的開源項目很多,其中不乏非常有參考意義的開源源碼和參考代碼,我們應(yīng)該如何利用一些開源的項目來構(gòu)建視頻會議系統(tǒng)呢?
首先我們先要了解視頻會議系統(tǒng)是一個綜合性很強(qiáng)的軟件系統(tǒng),并不是簡單的一個點(diǎn)對點(diǎn)的應(yīng)用程序,如果要達(dá)到視頻會議系統(tǒng)的要求,須具備有音、視頻傳輸、電子白板、文件共享、屏幕共享等主要功能,因此我們選擇開源項目的時候,不能只選擇一個開源的項目作為參考,需要多個開源的項目一起作為我們的參考源碼,因為一般的開源項目不可能是一個完整的系統(tǒng)。
1、協(xié)議規(guī)范
視頻會議系統(tǒng)的協(xié)議是作為不同的系統(tǒng)之間數(shù)據(jù)互聯(lián)互通,如軟件視頻會議系統(tǒng)和硬件的視頻會議系統(tǒng)需要互聯(lián)互通進(jìn)行音、視頻傳輸?shù)臅r候,就必須要雙方都要遵循一個協(xié)議規(guī)范,才能相互識別相應(yīng)的數(shù)據(jù)。視頻會議的協(xié)議一般是指協(xié)議棧,主要分為H323協(xié)議、SIP協(xié)議,H323協(xié)議和SIP協(xié)議相應(yīng)都有較為完善的開源項目對應(yīng),如OPAL,既兼容SIP協(xié)議又兼容H323協(xié)議,另外一個開源的協(xié)議棧是OpenH323,該開源項目是最早的H323開源協(xié)議棧,現(xiàn)今很多視頻會議系統(tǒng)還是在OpenH323基礎(chǔ)上構(gòu)建的。最后一個值得推薦的開源協(xié)議棧是OSIP,該協(xié)議用法簡單、功能較強(qiáng),是構(gòu)建SIP協(xié)議棧的首選開源項目。
2、數(shù)據(jù)傳輸
視頻會議系統(tǒng)是一個實時性非常強(qiáng)的系統(tǒng),為了適應(yīng)不同的網(wǎng)絡(luò)傳輸條件,我們傳輸?shù)臄?shù)據(jù)的時候需要建立自己的數(shù)據(jù)傳輸方式。通常數(shù)據(jù)傳輸?shù)姆绞接蠺CP傳輸和UDP傳輸,而TCP傳輸是基于有連接的傳輸方式,UDP是基于無連接的傳輸方式,TCP和UDP各有優(yōu)點(diǎn)和缺點(diǎn),TCP是可靠的傳輸方式,但在網(wǎng)絡(luò)較為擁堵的情況下,傳輸速度較慢,而UDP是不可靠的傳輸方式,傳輸速度較快,但不能保證可靠性,因此我們在選擇數(shù)據(jù)傳輸方式上可以采用基于UDP的可靠傳輸方式,既能充分利用無連接的速度優(yōu)勢,又能保證數(shù)據(jù)的可靠性。在這方面的開源項目很多,我們推薦UDT開源項目,其主要是通過UDP方式來實現(xiàn)可靠的傳輸,傳輸速度比TCP快幾倍,但能保證相應(yīng)的數(shù)據(jù)可靠性。數(shù)據(jù)傳輸方式的選擇可以參考“視頻會議傳輸模塊的開發(fā)選擇”。
3、音視頻編解碼
視頻會議系統(tǒng)核心功能是音視頻對話,因此我們音視頻編解碼在視頻會議系統(tǒng)中的占有非常重要的作用。音視頻編解碼的開源項目非常多,單是音頻的開源項目就有幾十種,我們應(yīng)該如果選擇呢?音視頻編解碼的開源項目很多,但有一個非常重要的開源項目,其包含了幾乎所有的開源編碼器項目,它就是ffmpeg編碼庫,ffmpeg編碼庫是一個編解碼庫的集合,它加入了幾乎所有的開源編碼器,如H264編解碼、MPEG4編解碼、AAC音頻編解碼等,而且還能自己手動加入相應(yīng)的編碼器,因此在視頻會議軟件系統(tǒng)的開發(fā)當(dāng)中,我們的音視頻編碼首選是ffmpeg開源庫。
4、界面構(gòu)建
視頻會議系統(tǒng)是一個綜合性很強(qiáng)的應(yīng)用系統(tǒng),因此我們設(shè)計的界面也要符合使用者的使用習(xí)慣,因此選擇一些開源的界面庫不僅能使我們的界面更符合使用習(xí)慣,而且能加快我們的項目的開發(fā)進(jìn)度,達(dá)到事半功倍的作用。在界面庫的開源項目中,我們可以有非常多的選擇,如DirectUI、GUI Libraries等,在這里我們強(qiáng)烈推薦用DirectUI,DirectUI可以界面和代碼進(jìn)行分離,而且用法較為簡單,簡單地的幾十行代碼就可以建立復(fù)雜的界面。
綜上所述,在我們視頻會議系統(tǒng)的開發(fā)當(dāng)中,我們可以充分利用一些開源的項目來構(gòu)建系統(tǒng)的某個模塊或者某個功能,如在協(xié)議方面,我們可以采用OPAL來構(gòu)建SIP和Openh323協(xié)議;傳輸協(xié)議我們可以采用UDT來實現(xiàn)UDP的可靠傳輸;音視頻編界面我們可以采用ffmpeg開源項目來構(gòu)建;界面庫可以采用DirectUI來搭建。這些開源項目都是比較著名的開源項目,但在實際的項目開發(fā)過程中,我們還要根據(jù)項目的需要來選擇。總之,利用開源的項目來進(jìn)行視頻會議系統(tǒng)的開發(fā),在很多的情況下能達(dá)到事半功倍的效果,是一個非常值得推薦的方法。
文章編輯:重慶寶利通 網(wǎng)址:http://m.bjwxcd.cn/