視頻會(huì)議系統(tǒng)開發(fā)如何充分利用開源項(xiàng)目
視頻會(huì)議系統(tǒng)的開發(fā)主要涉及到協(xié)議規(guī)范、數(shù)據(jù)傳輸、音視頻編解碼、界面構(gòu)建四個(gè)主要的方面,而現(xiàn)今國外的開源項(xiàng)目很多,其中不乏非常有參考意義的開源源碼和參考代碼,我們應(yīng)該如何利用一些來構(gòu)建視頻會(huì)議系統(tǒng)呢?首先我們先要了解視頻會(huì)議系統(tǒng)是一個(gè)綜合性很強(qiáng)的軟件系統(tǒng),并不是簡單的一個(gè)點(diǎn)對點(diǎn)的應(yīng)用程序,如果要達(dá)到視頻會(huì)議系統(tǒng)的要求,須具備有音、視頻傳輸、電子白板、文件共享、屏幕共享等主要功能,因此我們選擇開源項(xiàng)目的時(shí)候,不能只選擇一個(gè)開源的項(xiàng)目作為參考,需要多個(gè)開源的項(xiàng)目一起作為我們的參考源碼,因?yàn)橐话愕拈_源項(xiàng)目不可能是一個(gè)完整的系統(tǒng)。
1、協(xié)議規(guī)范
視頻會(huì)議系統(tǒng)的協(xié)議是作為不同的系統(tǒng)之間數(shù)據(jù)互聯(lián)互通,如軟件視頻會(huì)議系統(tǒng)和硬件的視頻會(huì)議系統(tǒng)需要互聯(lián)互通進(jìn)行音、視頻傳輸?shù)臅r(shí)候,就必須要雙方都要遵循一個(gè)協(xié)議規(guī)范,才能相互識(shí)別相應(yīng)的數(shù)據(jù)。視頻會(huì)議的協(xié)議一般是指協(xié)議棧,主要分為、,H323協(xié)議和SIP協(xié)議相應(yīng)都有較為完善的開源項(xiàng)目對應(yīng),如OPAL,既兼容SIP協(xié)議又兼容H323協(xié)議,另外一個(gè)開源的協(xié)議棧是,該開源項(xiàng)目是的H323開源協(xié)議棧,現(xiàn)今很多視頻會(huì)議系統(tǒng)還是在OpenH323基礎(chǔ)上構(gòu)建的。個(gè)值得推薦的開源協(xié)議棧是OSIP,該協(xié)議用法簡單、功能較強(qiáng),是構(gòu)建SIP協(xié)議棧的開源項(xiàng)目。
2、數(shù)據(jù)傳輸
視頻會(huì)議系統(tǒng)是一個(gè)實(shí)時(shí)性非常強(qiáng)的系統(tǒng),為了適應(yīng)不同的網(wǎng)絡(luò)傳輸條件,我們傳輸?shù)臄?shù)據(jù)的時(shí)候需要建立自己的數(shù)據(jù)傳輸方式。通常數(shù)據(jù)傳輸?shù)姆绞接?span lang="EN-US">TCP傳輸和UDP傳輸,而TCP傳輸是基于有連接的傳輸方式,UDP是基于無連接的傳輸方式,TCP和UDP各有優(yōu)點(diǎn)和缺點(diǎn),TCP是可靠的傳輸方式,但在網(wǎng)絡(luò)較為擁堵的情況下,傳輸速度較慢,而UDP是不可靠的傳輸方式,傳輸速度較快,但不能保證可靠性,因此我們在選擇數(shù)據(jù)傳輸方式上可以采用基于UDP的可靠傳輸方式,既能充分利用無連接的速度優(yōu)勢,又能保證數(shù)據(jù)的可靠性。在這方面的開源項(xiàng)目很多,我們推薦開源項(xiàng)目,其主要是通過UDP方式來實(shí)現(xiàn)可靠的傳輸,傳輸速度比TCP快幾倍,但能保證相應(yīng)的數(shù)據(jù)可靠性。數(shù)據(jù)傳輸方式的選擇可以參考“”。
3、音視頻編解碼
視頻會(huì)議系統(tǒng)核心功能是音視頻對話,因此我們音視頻編解碼在視頻會(huì)議系統(tǒng)中的占有非常重要的作用。音視頻編解碼的開源項(xiàng)目非常多,單是音頻的開源項(xiàng)目就有幾十種,我們應(yīng)該如果選擇呢?音視頻編解碼的開源項(xiàng)目很多,但有一個(gè)非常重要的開源項(xiàng)目,其包含了幾乎所有的開源編碼器項(xiàng)目,它就是ffmpeg編碼庫,ffmpeg編碼庫是一個(gè)編解碼庫的集合,它加入了幾乎所有的開源編碼器,如H264編解碼、MPEG4編解碼、AAC音頻編解碼等,而且還能自己手動(dòng)加入相應(yīng)的編碼器,因此在視頻會(huì)議軟件系統(tǒng)的開發(fā)當(dāng)中,我們的音視頻編碼是ffmpeg開源庫。
4、界面構(gòu)建
視頻會(huì)議系統(tǒng)是一個(gè)綜合性很強(qiáng)的應(yīng)用系統(tǒng),因此我們設(shè)計(jì)的界面也要符合使用者的使用習(xí)慣,因此選擇一些開源的界面庫不僅能使我們的界面更符合使用習(xí)慣,而且能加快我們的項(xiàng)目的開發(fā)進(jìn)度,達(dá)到事半功倍的作用。在界面庫的開源項(xiàng)目中,我們可以有非常多的選擇,如DirectUI、GUI Libraries等,在這里我們強(qiáng)烈推薦用DirectUI,DirectUI可以界面和代碼進(jìn)行分離,而且用法較為簡單,簡單地的幾十行代碼就可以建立復(fù)雜的界面。
綜上所述,在我們的開發(fā)當(dāng)中,我們可以充分利用一些開源的項(xiàng)目來構(gòu)建系統(tǒng)的某個(gè)模塊或者某個(gè)功能,如在協(xié)議方面,我們可以采用OPAL來構(gòu)建SIP和Openh323協(xié)議;傳輸協(xié)議我們可以采用UDT來實(shí)現(xiàn)UDP的可靠傳輸;音視頻編界面我們可以采用ffmpeg開源項(xiàng)目來構(gòu)建;界面庫可以采用DirectUI來搭建。這些開源項(xiàng)目都是比較的開源項(xiàng)目,但在實(shí)際的項(xiàng)目開發(fā)過程中,我們還要根據(jù)項(xiàng)目的需要來選擇。總之,利用開源的項(xiàng)目來進(jìn)行視頻會(huì)議系統(tǒng)的開發(fā),在很多的情況下能達(dá)到事半功倍的效果,是一個(gè)非常值得推薦的方法。
相關(guān)文檔:
版權(quán)與免責(zé)聲明:
1.凡本網(wǎng)注明"來源:中美貿(mào)易網(wǎng)"的所有作品,版權(quán)均屬于中美貿(mào)易網(wǎng),轉(zhuǎn)載請必須注明中美貿(mào)易網(wǎng)。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2.企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3.本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
4.如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系。