江思源
【摘要】 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展與普及打破了時(shí)間與地域限制,伴隨產(chǎn)生的網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)則極大的方便了企業(yè)內(nèi)部溝通與交流。本文在傳統(tǒng)視頻會(huì)議系統(tǒng)的基礎(chǔ)上,引入XMPP與Red5,為實(shí)現(xiàn)多人視頻會(huì)議提供了有效解決方案。
【關(guān)鍵詞】 視頻會(huì)議 XMPP Red5 多人視頻
通常來(lái)說(shuō),視頻會(huì)議是由多人參加的,這就需要網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)必須具備實(shí)現(xiàn)多人視頻通信的功能,多人同時(shí)進(jìn)行音視頻交流。多人視頻會(huì)議通常包括多人文字消息、交互式電子白板、多人音視頻交流三種形式。
一、多人文字消息傳輸
多人文字消息是多人視頻會(huì)議系統(tǒng)的一項(xiàng)功能,是以文字形式實(shí)現(xiàn)的多人交流,其類似于其他TM軟件中的群功能。首先,用戶A在多人視頻會(huì)議室meeting的客戶端A構(gòu)造Message,并法制XMPP服務(wù)器,該Message包括消息內(nèi)容與目的會(huì)議室的JID等。
二、交互式電子白板
交互式電子白板是多人視頻會(huì)議系統(tǒng)的一項(xiàng)重要功能?;赬MPP的多人視頻會(huì)議電子白板需實(shí)現(xiàn)多客戶端實(shí)時(shí)更新功能:首先,客戶A通過(guò)電腦虛擬畫筆構(gòu)造Message,比如圖形顏色、坐標(biāo)等,并發(fā)送至XMPP服務(wù)器;然后,XMPP服務(wù)器接收到客戶端A發(fā)送的Message后,保留原Message不變動(dòng)直接轉(zhuǎn)發(fā)至視頻會(huì)議室的所有其他參與者;最后,所有與會(huì)者接收到XMPP發(fā)送的Message后,在本地電子白板的相同位置繪制A繪制的圖形。
三、多人視頻會(huì)議控制流程
在XMPP與Red5的參與下,多人視頻會(huì)議將能夠高效、方便的建立與運(yùn)行,關(guān)鍵在于通過(guò)XMPP消息去可控制多人視頻會(huì)議中的多人音視頻及各種請(qǐng)求。
3.1新建多人視頻會(huì)議流程
多人視頻會(huì)議需有某個(gè)用戶建立視頻會(huì)議室,假設(shè)客戶端A創(chuàng)建meeting會(huì)議室,那么:首先客戶A向XMPP服務(wù)器發(fā)送包括會(huì)議室名稱、密碼、會(huì)議優(yōu)先等級(jí)、最大人數(shù)等內(nèi)容的請(qǐng)求信息;然后XMPP服務(wù)器根據(jù)接收到的A請(qǐng)求檢查當(dāng)前剩余寬帶是否滿足該要求,如果滿足則向客戶端A返回創(chuàng)建成功的消息,否則返回創(chuàng)建失?。籜MPP服務(wù)器返回創(chuàng)建成功消息后,即向所有在線客戶端發(fā)送多人視頻會(huì)議系統(tǒng)創(chuàng)建成功的消息;之后客戶A通過(guò)RTMP傳輸協(xié)議鏈接到Red5服務(wù)器,并將本地音視頻發(fā)布至服務(wù)器,當(dāng)多人視頻會(huì)議中的其他用戶接收到該音視頻后更新會(huì)議列表。至此用戶A創(chuàng)建多人視頻會(huì)議結(jié)束。
3.2加入多人視頻會(huì)議流程
當(dāng)用戶A創(chuàng)建多人視頻會(huì)議meeting成功后,用戶B加入該視頻會(huì)議,流程如下:1.用戶B在接到多人視頻會(huì)議創(chuàng)建成功的消息后向XMPP服務(wù)器發(fā)送加入請(qǐng)求;2.XMPP對(duì)用戶B進(jìn)行身份驗(yàn)證,驗(yàn)證通過(guò)后返回加入成功信息,并將所有參與會(huì)議者信息發(fā)送給用戶B,同時(shí)也將用戶B加入該多人視頻會(huì)議的信息發(fā)送至其他用戶;3.用戶B的客戶端收到加入成功及其他會(huì)議用戶信息后,更新會(huì)議用戶列表,并連接Red5服務(wù)器完成本地音視頻發(fā)布與其他用戶音視頻獲?。?.當(dāng)用戶B加入會(huì)議的信息發(fā)送至其他會(huì)議參與者后,其他用戶端更新會(huì)議人員列表,并與用戶B建立音視頻連接;5.用戶B加入多人視頻會(huì)議室結(jié)束。
3.3退出多人視頻會(huì)議流程
在多人視頻會(huì)議進(jìn)行中,某用戶C不需要繼續(xù)參與多人視頻會(huì)議時(shí),首先其需要向XMPP服務(wù)器發(fā)送退出請(qǐng)求消息,然后用戶C的客戶端C與Red5之間建立的音視頻通信鏈接關(guān)閉,之后XMPP服務(wù)器在接收到用戶C客戶端發(fā)送過(guò)來(lái)的退出請(qǐng)求消息后,將該消息發(fā)送至多人視頻會(huì)議中的其他會(huì)議參與者,在其他用戶接受到該信息后啟動(dòng)關(guān)閉程序,即其他用戶客戶端Flash模塊停止與用戶C客戶端之間的音視頻連接,最后用戶C請(qǐng)求退出多人視頻會(huì)議室完畢。
3.4關(guān)閉多人視頻會(huì)議流程
當(dāng)多人視頻會(huì)議結(jié)束后,用創(chuàng)建者A進(jìn)行視頻會(huì)議室關(guān)閉程序,即當(dāng)用戶A關(guān)閉會(huì)議室后,其他會(huì)議用戶自動(dòng)退出會(huì)議,具體流程如下:
1.用戶A(多人視頻會(huì)議室創(chuàng)建者)向XMPP服務(wù)器發(fā)送會(huì)議室關(guān)閉請(qǐng)求消息;
2.用戶A的客戶端Flash模塊關(guān)閉與Red5之間的音視頻連接;
3.XMPP服務(wù)器接收到會(huì)議創(chuàng)建者A發(fā)送過(guò)來(lái)的會(huì)議關(guān)閉請(qǐng)求消息后,啟動(dòng)關(guān)閉程序,通知其他所有在線的會(huì)議參與者該會(huì)議室已關(guān)閉;
4.其他在線用戶接收到XMPP服務(wù)器發(fā)送來(lái)的會(huì)議關(guān)閉消息后,客戶端Flash模塊關(guān)閉與Red5之間的音視頻連接,并更新會(huì)議室列表,推出會(huì)議;
5.所有會(huì)議參與者推出會(huì)議后,非參與者收到XMPP發(fā)送的會(huì)議室關(guān)閉消息,并在會(huì)議室列表中刪除該會(huì)議,則該多人視頻會(huì)議室關(guān)閉。
對(duì)多人網(wǎng)絡(luò)視頻會(huì)議的流程進(jìn)行分析,能夠從中發(fā)現(xiàn)問(wèn)題并針對(duì)性的進(jìn)行優(yōu)化,對(duì)基于XMPP的多人視頻會(huì)議系統(tǒng)發(fā)展具有積極的意義。
參 考 文 獻(xiàn)
[1]樊軍.基于XMPP的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的研究[D].東華大學(xué).2011.1
[2]楊帥.基于XMPP的多方通信系統(tǒng)的研究與實(shí)現(xiàn)[D].西安電子科技大學(xué).2009.1