基于WebRTC的跨平臺(tái)視頻會(huì)議系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-03-13 21:33
【摘要】:摘要:在當(dāng)今這個(gè)信息技術(shù)飛速發(fā)展的時(shí)代,信息交流的需求越來(lái)越頻繁,人們對(duì)更實(shí)時(shí),更生動(dòng)的交流效果的追求從未停止。從早期的用于處理突發(fā)事件的基于專線的電話會(huì)議,電視會(huì)議,到后來(lái)的用于商務(wù)辦公的為大型企業(yè)定制的視頻會(huì)議系統(tǒng)。視頻會(huì)議系統(tǒng)利用多媒體和網(wǎng)絡(luò)技術(shù)的支持,使得相隔萬(wàn)里的人們可以有效地處理,反饋信息,一起協(xié)同工作,解決問(wèn)題。 最近的幾年,隨著移動(dòng)互聯(lián)網(wǎng)迅猛發(fā)展,各種移動(dòng)設(shè)備層出不窮,無(wú)線通信技術(shù)完成了從GSM到CDMA,再到LTE的更新?lián)Q代,不斷增長(zhǎng)的帶寬已經(jīng)可以滿足實(shí)時(shí)音視頻通信的需求,因此實(shí)現(xiàn)一個(gè)能在各類軟硬件平臺(tái)上通用的視頻會(huì)議系統(tǒng)正在變得越來(lái)越重要。在移動(dòng)互聯(lián)網(wǎng)時(shí)代,應(yīng)用程序的跨平臺(tái)特性是必須的,由于各種設(shè)備的操作系統(tǒng)軟件平臺(tái)不具有一致性,傳統(tǒng)的為每個(gè)平臺(tái)都訂制一個(gè)基于Client/Server的視頻會(huì)議系統(tǒng)軟件的設(shè)計(jì)方案已經(jīng)失去了可行性。隨著HTML5標(biāo)準(zhǔn)的出現(xiàn),瀏覽器可以做越來(lái)越多的事情,采用Brower/Server設(shè)計(jì)方式成為當(dāng)今移動(dòng)互聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)的主流選擇。但是想把瀏覽器作為真正的音視頻實(shí)時(shí)通信平臺(tái),還需要把本地媒體采集、音視頻編解碼、信號(hào)處理,實(shí)時(shí)傳輸控制,擁塞控制等復(fù)雜的技術(shù)集成到其中。在以前,這方面的技術(shù)一直是空白,隨著美國(guó)Google公司通過(guò)收購(gòu)得到并開(kāi)源的WebRTC技術(shù),這些空白被填補(bǔ)了,瀏覽器脫離了對(duì)各類插件(例如傳統(tǒng)的Flash插件)的依賴,成為了一個(gè)強(qiáng)大的音視頻實(shí)時(shí)通信應(yīng)用平臺(tái)。普通開(kāi)發(fā)者不用再關(guān)心復(fù)雜的音視頻編解碼,傳輸控制等復(fù)雜的底層技術(shù),利用HTML5和WebRTC提供的簡(jiǎn)單的適用于多種瀏覽器的JavaScript接口,再輔以HTML和CSS,普通開(kāi)發(fā)者也可以構(gòu)建功能強(qiáng)大的Web音視頻通信客戶端應(yīng)用,滿足視頻會(huì)議系統(tǒng)對(duì)客戶端的需求。 視頻會(huì)議系統(tǒng)的控制部分主要由本地媒體控制層和服務(wù)器信令控制層組成,WebRTC實(shí)現(xiàn)了對(duì)本地媒體的控制,完成了對(duì)音視頻信號(hào)的采集和編碼等工作。接下的工作便是將這些數(shù)據(jù)傳輸?shù)搅硪粋(gè)客戶端,這時(shí)就需要一個(gè)服務(wù)器來(lái)對(duì)各個(gè)客戶端進(jìn)行調(diào)度,發(fā)送和響應(yīng)信令。傳統(tǒng)的視頻會(huì)議系統(tǒng)信令控制層采用基于硬件專線的MCU (Multipoint Control Unit)組網(wǎng)方式,顯然不符合移動(dòng)互聯(lián)網(wǎng)組網(wǎng)靈活的要求。本文利用Node.js平臺(tái)和WebSocket技術(shù),在由IP地址和端口號(hào)組成的套接字上完成對(duì)信令的監(jiān)聽(tīng)和反饋,可以在軟件層上實(shí)現(xiàn)對(duì)客戶端的接入,離開(kāi),發(fā)送數(shù)據(jù),請(qǐng)求數(shù)據(jù)等動(dòng)作的控制和響應(yīng),完成信令服務(wù)器的工作,滿足視頻會(huì)議系統(tǒng)對(duì)服務(wù)器端的需求。 為了將客戶端實(shí)現(xiàn)功能所需要的頁(yè)面代碼進(jìn)行推送,還需要搭建一個(gè)普通的web服務(wù)器,本文利用了常見(jiàn)的Apache服務(wù)器來(lái)實(shí)現(xiàn)這一部分。 本文構(gòu)建了一個(gè)基于WebSocket和WebRTC的視頻會(huì)議系統(tǒng),并在GitHub對(duì)項(xiàng)目進(jìn)行了開(kāi)源。通過(guò)對(duì)模型和框架不斷的改進(jìn),這個(gè)視頻會(huì)議系統(tǒng)具有簡(jiǎn)單易用,可靠穩(wěn)定,高效跨平臺(tái)的特點(diǎn)。圖15幅,參考文獻(xiàn)27篇。
【圖文】:
展示本地視頻流的視頻容器視頻部分采用設(shè)置
【圖文】:
展示本地視頻流的視頻容器視頻部分采用設(shè)置
本文鏈接:http://sikaile.net/kejilunwen/wltx/2586828.html
最近更新
教材專著