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