亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于網(wǎng)頁的實(shí)時(shí)通信的媒體處理方法與裝置與流程

文檔序號:11842309閱讀:317來源:國知局
一種基于網(wǎng)頁的實(shí)時(shí)通信的媒體處理方法與裝置與流程

本發(fā)明涉及網(wǎng)絡(luò)實(shí)時(shí)通信技術(shù),尤其是指一種基于網(wǎng)頁的實(shí)時(shí)通信的媒體處理方法與裝置。



背景技術(shù):

WebRTC(Web Real-Time Communication,基于網(wǎng)頁的實(shí)時(shí)通信)是Google收購Global IP Solution公司而獲得的一項(xiàng)支持網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)音視頻通信的技術(shù)。為了促進(jìn)免插件的Web瀏覽器實(shí)時(shí)多媒體通信的發(fā)展,Google于2011年將WebRTC技術(shù)向公眾開源,并聯(lián)合業(yè)界相關(guān)廠商成立了W3C WebRTC標(biāo)準(zhǔn)組和IETF RTC-WEB標(biāo)準(zhǔn)組。其中,W3C WebRTC標(biāo)準(zhǔn)組負(fù)責(zé)制定面向Web開發(fā)者的JavaScript API,IETF RTC-WEB標(biāo)準(zhǔn)組則負(fù)責(zé)制定瀏覽器內(nèi)部WebRTC協(xié)議棧的音視頻編解碼、網(wǎng)絡(luò)傳輸和NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)穿越等技術(shù)標(biāo)準(zhǔn)。

隨著WebRTC標(biāo)準(zhǔn)的持續(xù)推進(jìn),主流的Chrome、Firefox和Opera等瀏覽器都將WebRTC功能原生地嵌入到瀏覽器框架當(dāng)中。利用這些瀏覽器提供的JavaScript API,Web開發(fā)者可以利用自主選擇的信令協(xié)議完成“邀約/應(yīng)答(Offer/Answer)媒體協(xié)商過程,進(jìn)而實(shí)現(xiàn)兩方或多方之間的音視頻通信或其他網(wǎng)頁即時(shí)通信業(yè)務(wù)。

WebRTC帶給Web開發(fā)者最大的好處在于,過去必須由瀏覽器插件實(shí)現(xiàn)的音視頻編解碼模塊、網(wǎng)絡(luò)傳輸模塊等都集成到瀏覽器內(nèi)部,這樣就極大地降低了網(wǎng)頁即時(shí)通信的開發(fā)工作量和難度,使得Web開發(fā)者有更多的精力投入實(shí)時(shí)多媒體交互的業(yè)務(wù)邏輯。正因?yàn)檫@種利好因素,近年來WebRTC原型系統(tǒng)如雨后春筍般涌現(xiàn),包括電信運(yùn)營商、互聯(lián)網(wǎng)廠商都積極開展WebRTC技術(shù)的研究和探索。

盡管WebRTC攜各種優(yōu)勢在互聯(lián)網(wǎng)上引起廣泛的關(guān)注,但同時(shí)也應(yīng)當(dāng)注意到,任何技術(shù)都具有兩面性。就WebRTC而言,其媒體交互方案采用了點(diǎn)對點(diǎn)的直傳方式就是一個隱形弊端。

在圖1所示的簡單WebRTC實(shí)時(shí)通信場景下,多個WebRTC終端位于同一個局域網(wǎng)環(huán)境或多個WebRTC終端分別位于不同的非對稱型NAT之后的局域網(wǎng)當(dāng)中。其中,中間的WebRTC終端和非對稱型NAT都標(biāo)注有“1……N”字樣,代表1至N個這樣的WebRTC終端與非對稱型NAT網(wǎng)元對。由圖1可知,每一個通信參與方都需要在發(fā)送N-1(N為通信參與方總數(shù))路實(shí)時(shí)媒體流的同時(shí),接收其他N-1方發(fā)送的實(shí)時(shí)媒體流。這樣一來,每一個WebRTC終端實(shí)際上都需要同時(shí)處理((N-1)+(N-1)+1)路媒體流,也即共計(jì)2N-1路。其中,“1”表示各個WebRTC終端自己一方的媒體流。圖1中,細(xì)實(shí)線表示信令鏈路,粗實(shí)線表示跨局域網(wǎng)媒體鏈路,粗虛線表示局域網(wǎng)媒體鏈路。

在圖2所示的中繼WebRTC實(shí)時(shí)通信場景下,其本質(zhì)上與圖1的方式是一致的,同樣每個WebRTC終端都需要處理2N-1路媒體流。它們的主要區(qū)別在于,這些互相通信的WebRTC終端并不是處于同一個局域網(wǎng)環(huán)境當(dāng)中,而是位于不同的對稱型NAT之后的局域網(wǎng)當(dāng)中,因此所有的媒體流都需要經(jīng)過中繼服務(wù)器繞道至其他各方。圖1中,細(xì)實(shí)線表示信令鏈路,粗實(shí)線表示媒體鏈路。

實(shí)踐證明,在兩方通話或局域網(wǎng)環(huán)境下的少數(shù)多方會議場景下,WebRTC點(diǎn)對點(diǎn)媒體流直傳方式或許還可以勉強(qiáng)應(yīng)對。然而,隨著通信人數(shù)的增多,以及面對復(fù)雜的Internet環(huán)境時(shí),這將不可避免地導(dǎo)致客戶端處理負(fù)荷過重、用戶網(wǎng)絡(luò)帶寬消耗過大和服務(wù)質(zhì)量急劇下降等不良影響,進(jìn)而最終影響到用戶的即時(shí)通信體驗(yàn)和業(yè)務(wù)的發(fā)展壯大。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題是提供一種WebRTC的媒體處理方法與裝置,在多用戶實(shí)時(shí)多媒體通信場景下,降低客戶端處理負(fù)荷以及減少網(wǎng)絡(luò)帶寬消耗。

為了解決上述技術(shù)問題,本發(fā)明提供了一種基于網(wǎng)頁的實(shí)時(shí)通信 WebRTC的媒體處理方法,應(yīng)用服務(wù)器執(zhí)行以下處理:

第一WebRTC終端與第二WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信后,所述應(yīng)用服務(wù)器接收到第一WebRTC終端決定將其他一個或多個第三方WebRTC終端加入通信的消息,分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,并斷開所述第一WebRTC終端與第二WebRTC終端之間的點(diǎn)對點(diǎn)媒體連接;

所述應(yīng)用服務(wù)器控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的每個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;或者,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述應(yīng)用服務(wù)器分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器之間利用所述媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器利用所述媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述應(yīng)用服務(wù)器分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商 的結(jié)果建立雙方之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道。

進(jìn)一步地,所述應(yīng)用服務(wù)器分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

在每個WebRTC終端與所述媒體處理單元進(jìn)行媒體協(xié)商的過程中,所述應(yīng)用服務(wù)器將每個WebRTC終端發(fā)送給所述媒體處理單元的消息轉(zhuǎn)換為所述媒體處理單元能夠識別和處理的消息格式,以及將所述媒體處理單元發(fā)送給WebRTC終端的消息轉(zhuǎn)換為所述WebRTC終端能夠識別和處理的消息格式。

進(jìn)一步地,所述應(yīng)用服務(wù)器控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的任一個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流,包括:

所述應(yīng)用服務(wù)器與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

進(jìn)一步地,所述應(yīng)用服務(wù)器與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,包括:

所述應(yīng)用服務(wù)器向所述媒體處理單元發(fā)送創(chuàng)建會議的請求,在接收到所述媒體處理單元返回的會議連接相關(guān)的信息后,向所述媒體處理單元發(fā)送媒體合成與展示策略信息,以使所述媒體處理單元根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中 各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

本發(fā)明還提供了一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理裝置,位于應(yīng)用服務(wù)器,所述裝置包括第一媒體連接建立模塊以及會議建立控制模塊,其中:

所述第一媒體連接建立模塊,用于在接收到第一WebRTC終端決定將其他一個或多個第三方WebRTC終端加入所述第一WebRTC終端與第二WebRTC終端之間已建立的通信的消息后,分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,并斷開所述第一WebRTC終端與第二WebRTC終端之間的點(diǎn)對點(diǎn)媒體連接;

所述會議建立控制模塊,用于控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的每個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述第一媒體連接建立模塊分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器之間利用所述媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器利用所述媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述第一媒體連接建立模塊分別協(xié)助建立第一WebRTC終端、第二 WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道。

進(jìn)一步地,所述第一媒體連接建立模塊分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,包括:

在每個WebRTC終端與所述媒體處理單元進(jìn)行媒體協(xié)商的過程中,所述第一媒體連接建立模塊用于將每個WebRTC終端發(fā)送給所述媒體處理單元的消息轉(zhuǎn)換為所述媒體處理單元能夠識別和處理的消息格式,以及將所述媒體處理單元發(fā)送給WebRTC終端的消息轉(zhuǎn)換為所述WebRTC終端能夠識別和處理的消息格式。

進(jìn)一步地,所述會議建立控制模塊控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的任一個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流,包括:

所述會議建立控制模塊用于與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體 流。

進(jìn)一步地,所述會議建立控制模塊與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,包括:

所述會議建立控制模塊用于向所述媒體處理單元發(fā)送創(chuàng)建會議的請求,在接收到所述媒體處理單元返回的會議連接相關(guān)的信息后,向所述媒體處理單元發(fā)送媒體合成與展示策略信息,以使所述媒體處理單元根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

為了解決上述技術(shù)問題,本發(fā)明還提供了一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理方法,媒體處理單元執(zhí)行以下處理:

所述媒體處理單元根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接;

所述媒體處理單元與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;或者,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述媒體處理單元根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接,包括:

根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間的媒體通道;或者

根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個 WebRTC終端之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述媒體處理單元根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接,包括:

根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果建立所述媒體網(wǎng)關(guān)與多個WebRTC終端中每一個WebRTC終端之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道;或者

根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果建立多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)的經(jīng)所述ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道。

進(jìn)一步地,所述媒體處理單元與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,包括:

所述媒體處理單元接收所述應(yīng)用服務(wù)器發(fā)送的創(chuàng)建會議的請求,向所述媒體處理單元返回會議連接相關(guān)的信息,接收所述應(yīng)用服務(wù)器發(fā)送的媒體合成與展示策略信息,根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

本發(fā)明還提供了一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理裝置,位于媒體處理單元,所述裝置包括第二媒體連接建立模塊和會議建立及媒體流合成與展示模塊,其中:

所述第二媒體連接建立模塊,用于根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與 多個WebRTC終端中每一個WebRTC終端之間的媒體連接;

所述會議建立及媒體流合成與展示模塊,用于與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;或者,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述第二媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接,包括:

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間的媒體通道;或者

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述第二媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接,包括:

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果建立所述媒體網(wǎng)關(guān)與多個WebRTC終端中每一個WebRTC終端之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道;或者

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成 多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果建立多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)的經(jīng)所述ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道。

進(jìn)一步地,所述會議建立及媒體流合成與展示模塊與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,包括:

所述會議建立及媒體流合成與展示模塊用于接收所述應(yīng)用服務(wù)器發(fā)送的創(chuàng)建會議的請求,向所述媒體處理單元返回會議連接相關(guān)的信息,接收所述應(yīng)用服務(wù)器發(fā)送的媒體合成與展示策略信息,根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

為了解決上述技術(shù)問題,本發(fā)明還提供了一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理方法,WebRTC終端執(zhí)行以下處理:

參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接;

在所述媒體處理單元建立所述多方會議后,所述多方會議中的每個WebRTC終端向所述媒體處理單元發(fā)送一路媒體流,以及接收媒體處理單元下發(fā)的一路合成后的媒體流。

進(jìn)一步地,所述方法還包括,作為所述多方會議主持人的WebRTC終端先與一個參與會議的WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信,在需要由兩方轉(zhuǎn)向多方通信時(shí),向所述應(yīng)用服務(wù)器發(fā)送決定將其他一個或多個第三方WebRTC終端加入通信的消息。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接,包括:

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的媒體通道;或者

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接,包括:

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的媒體通道;或者

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道。

本發(fā)明還提供了一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理裝置,位于WebRTC終端,所述裝置包括第三媒體連接建立模塊以及媒體收發(fā)模塊,其中:

所述第三媒體連接建立模塊,用于根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接;

所述媒體收發(fā)模塊,用于在所述媒體處理單元建立所述多方會議后,所述多方會議中向所述媒體處理單元發(fā)送一路媒體流,以及接收媒體處理單元下發(fā)的一路合成后的媒體流。

進(jìn)一步地,所述裝置還包括主持模塊,用于在所述WebRTC終端作為所述多方會議主持人時(shí),先與一個參與會議的WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多 媒體通信,在需要由兩方轉(zhuǎn)向多方通信時(shí)向所述應(yīng)用服務(wù)器發(fā)送決定將其他一個或多個第三方WebRTC終端加入通信的消息。

進(jìn)一步地,所述媒體處理單元包括媒體服務(wù)器;

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接,包括:

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的媒體通道;或者

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

進(jìn)一步地,所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接,包括:

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的媒體通道;或者

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道。

為了充分利用WebRTC技術(shù)的優(yōu)勢并有效規(guī)避其不足,本文提出了一種WebRTC自適應(yīng)媒體處理方法和裝置。利用該方法和裝置,在兩方之間的音視頻通話場景下采用WebRTC本身的點(diǎn)對點(diǎn)媒體方案,充分利用WebRTC技術(shù)的優(yōu)勢,一旦涉及到多方音視頻會議場景,則切換到基于中心節(jié)點(diǎn)的媒體處理方案?;诖?,可以使業(yè)務(wù)的用戶體驗(yàn)得到優(yōu)化和提升。

這里需要指出的是,雖然本發(fā)明重點(diǎn)闡述的是WebRTC領(lǐng)域由兩方的點(diǎn) 對點(diǎn)多媒體通信向基于中心節(jié)點(diǎn)的多方多媒體通信轉(zhuǎn)換的媒體處理方案,但是顯而易見的是,對于該領(lǐng)域當(dāng)中由多方點(diǎn)對點(diǎn)多媒體通信向基于中心節(jié)點(diǎn)的多方多媒體通信轉(zhuǎn)換的媒體處理方案,經(jīng)由本發(fā)明很容易推導(dǎo)出來。為了節(jié)省篇幅,本文不再進(jìn)行WebRTC領(lǐng)域當(dāng)中多方點(diǎn)對點(diǎn)多媒體通信向基于中心節(jié)點(diǎn)的多方媒體通信轉(zhuǎn)換方案的具體展開。

本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。

附圖說明

附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。

需要特別指出的是,下面描述中的附圖僅作為本發(fā)明的部分代表性的實(shí)施例。需要說明的是,圖9至12中,細(xì)實(shí)線表示信令鏈路,粗實(shí)線表示媒體鏈路。圖18至25所示的實(shí)施例當(dāng)中只選取了最具有代表性的由兩方點(diǎn)對點(diǎn)通信轉(zhuǎn)換成三方會議場景下的核心流程,由此很容易可以推導(dǎo)出由兩方點(diǎn)對點(diǎn)通信轉(zhuǎn)換成四方或更多方會議的流程。對于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在無需付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的相關(guān)方案或流程。

圖1是WebRTC典型的點(diǎn)對點(diǎn)媒體處理方案圖;

圖2是WebRTC中繼方式下的點(diǎn)對點(diǎn)媒體處理方案圖;

圖3是本發(fā)明實(shí)施例一應(yīng)用服務(wù)器執(zhí)行處理流程圖;

圖4是本發(fā)明實(shí)施例一裝置結(jié)構(gòu)示意圖;

圖5是本發(fā)明實(shí)施例二媒體處理單元執(zhí)行處理流程圖;

圖6是本發(fā)明實(shí)施例二裝置結(jié)構(gòu)示意圖;

圖7是本發(fā)明實(shí)施例三媒體處理單元執(zhí)行處理流程圖;

圖8是本發(fā)明實(shí)施例三裝置結(jié)構(gòu)示意圖;

圖9是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖;

圖10是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖;

圖11是多點(diǎn)控制單元不支持WebRTC協(xié)議棧的情形下無需媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖;

圖12是多點(diǎn)控制單元不支持WebRTC協(xié)議棧的情形下需要媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖;

圖13是WebRTC終端示意圖;

圖14是應(yīng)用服務(wù)器(AS)核心模塊示意圖;

圖15是支持WebRTC協(xié)議棧的媒體服務(wù)器核心模塊示意圖;

圖16是多點(diǎn)控制單元核心模塊示意圖;

圖17是媒體網(wǎng)關(guān)核心模塊示意圖;

圖18是本發(fā)明應(yīng)用示例1媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖19是本發(fā)明應(yīng)用示例2媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖20是本發(fā)明應(yīng)用示例3媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖21是本發(fā)明應(yīng)用示例4媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖22是本發(fā)明應(yīng)用示例5多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下無需媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖23是本發(fā)明應(yīng)用示例6多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下需要媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖24是本發(fā)明應(yīng)用示例7多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下無需媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖;

圖25是本發(fā)明應(yīng)用示例8多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下需要媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。本文所描述的實(shí)施例是比較有代表性的一部分實(shí)施例,而非完全窮舉所有的實(shí)施例。

在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

實(shí)施例一

本實(shí)施例描述一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理方法,如圖3所示,應(yīng)用服務(wù)器執(zhí)行以下處理:

步驟1,第一WebRTC終端與第二WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信后,應(yīng)用服務(wù)器接收到第一WebRTC終端決定將其他一個或多個第三方WebRTC終端加入通信的消息,分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,并斷開所述第一WebRTC終端與第二WebRTC終端之間的點(diǎn)對點(diǎn)媒體連接;

所述媒體處理單元包括媒體服務(wù)器或者包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元。所述媒體服務(wù)器和多點(diǎn)控制單元的核心功能均包括媒體流合成,為方便描述,設(shè)定本文中媒體服務(wù)器支持WebRTC協(xié)議棧,多點(diǎn)控制單元不支持WebRTC協(xié)議棧。

當(dāng)媒體處理單元包括媒體服務(wù)器時(shí),根據(jù)是否需要ICE(Interactive Connectivity Establishment,交互式連接建立)服務(wù)器做服務(wù)器與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

不需要ICE服務(wù)器做媒體中繼的情況:應(yīng)用服務(wù)器分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器之間利用所述媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;

需要交ICE服務(wù)器做媒體中繼的情況:應(yīng)用服務(wù)器分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器利用所述媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道。

當(dāng)媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元時(shí),根據(jù)是否需要ICE服務(wù)器做媒體網(wǎng)關(guān)與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

不需要ICE服務(wù)器做媒體中繼的情況:應(yīng)用服務(wù)器分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;

需要ICE服務(wù)器做媒體中繼的情況:應(yīng)用服務(wù)器分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道。

具體地,在每個WebRTC終端與所述媒體處理單元進(jìn)行媒體協(xié)商的過程中,所述應(yīng)用服務(wù)器將每個WebRTC終端發(fā)送給所述媒體處理單元的消息轉(zhuǎn)換為所述媒體處理單元能夠識別和處理的消息格式,以及將所述媒體處理單元發(fā)送給WebRTC終端的消息轉(zhuǎn)換為所述WebRTC終端能夠識別和處理的消息格式。

步驟2,所述應(yīng)用服務(wù)器控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的每個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流。

在本步驟中,所述應(yīng)用服務(wù)器與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

具體地,所述應(yīng)用服務(wù)器向所述媒體處理單元發(fā)送創(chuàng)建會議的請求,在接收到所述媒體處理單元返回的會議連接相關(guān)的信息后,向所述媒體處理單元發(fā)送媒體合成與展示策略信息,以使所述媒體處理單元根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

實(shí)現(xiàn)上述方法的裝置位于應(yīng)用服務(wù)器,如圖4所示,包括第一媒體連接建立模塊以及會議建立控制模塊,其中:

所述第一媒體連接建立模塊,用于在接收到第一WebRTC終端決定將其他一個或多個第三方WebRTC終端加入所述第一WebRTC終端與第二WebRTC終端之間已建立的通信的消息后,分別協(xié)助建立第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與媒體處理單元之間的媒體連接,并斷開所述第一WebRTC終端與第二WebRTC終端之間的點(diǎn)對點(diǎn)媒體連接;

所述會議建立控制模塊,用于控制所述媒體處理單元建立第一WebRTC終端、第二WebRTC終端與第三方WebRTC終端的多方會議,以使得所述多方會議中的每個WebRTC終端只需要發(fā)送一路媒體流,接收一路合成后的媒體流。

所述媒體處理單元為媒體服務(wù)器:

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以 使得每個WebRTC終端與所述媒體服務(wù)器之間利用所述媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體服務(wù)器之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體服務(wù)器利用所述媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元:

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道;或者

所述第一媒體連接建立模塊用于分別協(xié)助完成第一WebRTC終端、第二WebRTC終端、第三方WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,以使得每個WebRTC終端與所述媒體網(wǎng)關(guān)利用媒體協(xié)商的結(jié)果建立雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元利用媒體協(xié)商的結(jié)果建立雙方之間的媒體通道。

在每個WebRTC終端與所述媒體處理單元進(jìn)行媒體協(xié)商的過程中,所述第一媒體連接建立模塊用于將每個WebRTC終端發(fā)送給所述媒體處理單元的消息轉(zhuǎn)換為所述媒體處理單元能夠識別和處理的消息格式,以及將所述媒體處理單元發(fā)送給WebRTC終端的消息轉(zhuǎn)換為所述WebRTC終端能夠識別和處理的消息格式。

在本實(shí)施例中,所述會議建立控制模塊用于與所述媒體處理單元進(jìn)行交互,在所述媒體處理單元上創(chuàng)建多方會議,控制所述媒體處理單元進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

具體地,所述會議建立控制模塊用于向所述媒體處理單元發(fā)送創(chuàng)建會議的請求,在接收到所述媒體處理單元返回的會議連接相關(guān)的信息后,向所述媒體處理單元發(fā)送媒體合成與展示策略信息,以使所述媒體處理單元根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

采用本實(shí)施例方法和裝置,對用戶終端處理能力要求低、帶寬消耗小,在多用戶實(shí)時(shí)多媒體通信場景下,提高WebRTC業(yè)務(wù)的靈活性和競爭力,用戶體驗(yàn)好。

實(shí)施例二

本實(shí)施例描述一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理方法,如圖5所示,媒體處理單元執(zhí)行以下處理:

步驟1,媒體處理單元根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接;

當(dāng)媒體處理單元包括媒體服務(wù)器時(shí),根據(jù)是否需要ICE服務(wù)器做媒體服務(wù)器與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

不需要ICE服務(wù)器做媒體中繼的情況:根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間的媒體通道;

需要ICE服務(wù)器做媒體中繼的情況:根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

當(dāng)媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元時(shí),根據(jù)是否需要ICE服務(wù)器做媒體網(wǎng)關(guān)與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

不需要ICE服務(wù)器做媒體中繼的情況:根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果建立所述媒體網(wǎng)關(guān)與多個WebRTC終端中每一個WebRTC終端之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道;

需要ICE服務(wù)器做媒體中繼的情況:根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,利用媒體協(xié)商結(jié)果建立多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)的經(jīng)所述ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道。

步驟2,所述媒體處理單元與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

在本步驟中,所述媒體處理單元接收所述應(yīng)用服務(wù)器發(fā)送的創(chuàng)建會議的請求,向所述媒體處理單元返回會議連接相關(guān)的信息,接收所述應(yīng)用服務(wù)器發(fā)送的媒體合成與展示策略信息,根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用所述媒體處理單元與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

實(shí)現(xiàn)上述方法的裝置位于媒體處理單元,如圖6所示,所述裝置包括第二媒體連接建立模塊和會議建立及媒體流合成與展示模塊,其中:

所述第二媒體連接建立模塊,用于根據(jù)應(yīng)用服務(wù)器的協(xié)助,分別建立與多個WebRTC終端中每一個WebRTC終端之間的媒體連接;

所述會議建立及媒體流合成與展示模塊,用于與所述應(yīng)用服務(wù)器進(jìn)行交互,創(chuàng)建多方會議,進(jìn)行多方媒體合成與展示,以使在一個多方會議中,會議中的每個WebRTC終端只需要向所述媒體處理單元發(fā)送一路媒體流,以及 接收所述媒體處理單元發(fā)送的一路合成后的媒體流。

所述媒體處理單元包括媒體服務(wù)器:

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間的媒體通道;或者

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成與多個WebRTC終端中每一個WebRTC終端之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果與多個WebRTC終端中每一個WebRTC終端建立雙方之間經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元:

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果建立所述媒體網(wǎng)關(guān)與多個WebRTC終端中每一個WebRTC終端之間的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道;或者

所述第二媒體連接建立模塊用于根據(jù)所述應(yīng)用服務(wù)器的協(xié)助,分別完成多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體協(xié)商,并利用媒體協(xié)商結(jié)果建立多個WebRTC終端中每一個WebRTC終端與所述媒體網(wǎng)關(guān)的經(jīng)所述ICE中繼服務(wù)器的媒體通道,以及所述媒體網(wǎng)關(guān)與所述多點(diǎn)控制單元之間的媒體通道。

在本實(shí)施例中,所述會議建立及媒體流合成與展示模塊用于接收所述應(yīng)用服務(wù)器發(fā)送的創(chuàng)建會議的請求,向所述媒體處理單元返回會議連接相關(guān)的信息,接收所述應(yīng)用服務(wù)器發(fā)送的媒體合成與展示策略信息,根據(jù)所述媒體合成與展示策略信息完成多方會議的媒體流合成,并利用與多方會議中各WebRTC終端之間的媒體連接完成媒體流分發(fā)。

采用本實(shí)施例方法和裝置,對用戶終端處理能力要求低、帶寬消耗小, 在多用戶實(shí)時(shí)多媒體通信場景下,提高WebRTC業(yè)務(wù)的靈活性和競爭力,用戶體驗(yàn)好。

實(shí)施例三

本實(shí)施例描述一種基于網(wǎng)頁的實(shí)時(shí)通信WebRTC的媒體處理方法,如圖7所示,WebRTC終端執(zhí)行以下處理:

步驟1,參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接;

在一個優(yōu)選實(shí)施例中,作為所述多方會議主持人的WebRTC終端先與一個參與會議的WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信,在需要由兩方轉(zhuǎn)向多方通信時(shí),向所述應(yīng)用服務(wù)器發(fā)送決定將其他一個或多個第三方WebRTC終端加入通信的消息。

當(dāng)媒體處理單元包括媒體服務(wù)器時(shí),根據(jù)是否需要ICE服務(wù)器做服務(wù)器與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的媒體通道;

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

當(dāng)媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元時(shí),根據(jù)是否需要ICE服務(wù)器做服務(wù)器與各個WebRTC終端之間的媒體中繼的情況,可以采用如下之一方式建立媒體連接:

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端 與所述媒體網(wǎng)關(guān)雙方之間的媒體通道;或者

所述參與多方會議的每個WebRTC終端根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道。

應(yīng)用服務(wù)器的協(xié)助主要包括:將每個WebRTC終端發(fā)送給媒體處理單元的消息轉(zhuǎn)換為媒體處理單元能夠識別和處理的消息格式,以及將媒體處理單元發(fā)送給WebRTC終端的消息轉(zhuǎn)換為WebRTC終端能夠識別和處理的消息格式。

步驟2,在所述媒體處理單元建立所述多方會議后,所述多方會議中的每個WebRTC終端向所述媒體處理單元發(fā)送一路媒體流,以及接收媒體處理單元下發(fā)的一路合成后的媒體流。

實(shí)現(xiàn)上述方法的裝置位于WebRTC終端,如圖8所示,包括第三媒體連接建立模塊以及媒體收發(fā)模塊,其中:

所述第三媒體連接建立模塊,用于根據(jù)應(yīng)用服務(wù)器的協(xié)助建立與媒體處理單元的媒體連接;

所述媒體收發(fā)模塊,用于在所述媒體處理單元建立所述多方會議后,所述多方會議中向所述媒體處理單元發(fā)送一路媒體流,以及接收媒體處理單元下發(fā)的一路合成后的媒體流。

在一個優(yōu)選實(shí)施例中,所述裝置還包括主持模塊,用于在所述WebRTC終端作為所述多方會議主持人時(shí),先與一個參與會議的WebRTC終端建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信,在需要由兩方轉(zhuǎn)向多方通信時(shí),向所述應(yīng)用服務(wù)器發(fā)送決定將其他一個或多個第三方WebRTC終端加入通信的消息。

所述媒體處理單元包括媒體服務(wù)器;

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的媒體通道;或者

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體服務(wù)器之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體服務(wù)器雙方之間的經(jīng)交互式連接建立ICE中繼服務(wù)器的媒體通道。

所述媒體處理單元包括媒體網(wǎng)關(guān)和多點(diǎn)控制單元;

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的媒體通道;或者

所述第三媒體連接建立模塊根據(jù)應(yīng)用服務(wù)器的協(xié)助完成與所述媒體網(wǎng)關(guān)之間的媒體協(xié)商,利用所述媒體協(xié)商的結(jié)果建立本W(wǎng)ebRTC終端與所述媒體網(wǎng)關(guān)雙方之間的經(jīng)ICE中繼服務(wù)器的媒體通道。

采用本實(shí)施例方法和裝置,對用戶終端處理能力要求低、帶寬消耗小,在多用戶實(shí)時(shí)多媒體通信場景下,提高WebRTC業(yè)務(wù)的靈活性和競爭力,用戶體驗(yàn)好。

下面從物理層面對實(shí)現(xiàn)上述方法的多媒體處理系統(tǒng)中的各個網(wǎng)元節(jié)點(diǎn)進(jìn)行說明。

圖9所示的是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖。該系統(tǒng)包括多個WebRTC終端、多個非對稱型的NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)、應(yīng)用服務(wù)器(AS)、媒體服務(wù)器以及綜合了STUN(Simple Traversal of UDP over NATs,NAT的UDP簡單穿越)和TURN(Traversal Using Relays around NAT,中繼NAT穿透)NAT穿越方案的ICE(Interactive Connectivity Establishment,交互式連接建立)服務(wù)器。其中:

WebRTC終端具有圖13所示的結(jié)構(gòu)。它包括一個支持WebRTC協(xié)議棧及HTML5API的Web瀏覽器和基于WebRTC、HTML5、JavaScript或JSP(Java Server Page)等技術(shù)開發(fā)的Web實(shí)時(shí)應(yīng)用程序。

應(yīng)用服務(wù)器(AS)具有圖14所示的結(jié)構(gòu)。它包括協(xié)議轉(zhuǎn)換模塊、業(yè)務(wù)控制模塊、路由分發(fā)模塊以及Web容器四個主要單元。其中:協(xié)議轉(zhuǎn)換模塊負(fù) 責(zé)互聯(lián)網(wǎng)信令(ROAP、JSON等)與SIP信令之間的協(xié)議轉(zhuǎn)換工作,以適配WebRTC終端側(cè)與媒體服務(wù)器或多點(diǎn)控制單元之間在信令上的差異。業(yè)務(wù)控制模塊負(fù)責(zé)會話邏輯、會議發(fā)起/通知/終止以及媒體展示策略控制等。路由分發(fā)模塊負(fù)責(zé)不同WebRTC終端之間、WebRTC終端與媒體網(wǎng)關(guān)之間或WebRTC終端與媒體服務(wù)器之間的信令路由選擇。Web容器提供WebRTC實(shí)時(shí)通信應(yīng)用程序的運(yùn)行環(huán)境、Web套接字(WebSocket)以及HTTP(s)長連接等支持。

媒體服務(wù)器具有圖15所示的結(jié)構(gòu)。它包括SRTP協(xié)議棧、VP8編解碼器、媒體合成模塊、媒體協(xié)商與媒體展現(xiàn)控制模塊以及ICE代理五個主要單元。其中:SRTP協(xié)議棧負(fù)責(zé)處理WebRTC終端側(cè)發(fā)送的SRTP媒體流。VP8編解碼器負(fù)責(zé)將WebRTC終端側(cè)的VP8媒體流解碼或?qū)⒚襟w合成模塊合成的多方媒體流按照VP8格式編碼。媒體合成模塊負(fù)責(zé)將多個WebRTC終端發(fā)送的多個實(shí)時(shí)媒體流進(jìn)行混音混頻處理以獲得一個統(tǒng)一的媒體流。媒體協(xié)商與媒體展現(xiàn)控制模塊負(fù)責(zé)完成與來自應(yīng)用服務(wù)器的媒體信令的協(xié)商以及接收應(yīng)用服務(wù)器(AS)的媒體展示策略并控制媒體合成模塊按照既定的策略來處理多個媒體流的合成。ICE代理負(fù)責(zé)完成媒體服務(wù)器與各個WebRTC終端之間的連通性測試,為兩者之間建立媒體鏈路提供依據(jù)。

ICE Server提供NAT/防火墻穿透的支持。ICE Server包括兩個核心單元,STUN服務(wù)器和TURN服務(wù)器。其中:STUN服務(wù)器用于支持對非對稱型NAT的穿透,TURN用于支持對稱型NAT以及防火墻的穿透。ICE Server接收WebRTC終端當(dāng)中ICE代理發(fā)出的地址收集請求,并將收集到的WebRTC終端主機(jī)地址、WebRTC終端主機(jī)對外的公網(wǎng)地址(NAT地址,STUN服務(wù)器提供)以及媒體中繼地址(TURN服務(wù)器提供)返回給WebRTC終端。

在圖9中,WebRTC終端各自與ICE Server交互獲取本地完整的的媒體面SDP(Session Description Protocol,會話描述協(xié)議)信息(包括音視頻編解碼、媒體加密密鑰和算法、ICE候選地址等),包裝成ROAP(RTCWeb Offer/Answer Protocol)或JSON(JavaScript Object Notation)等互聯(lián)網(wǎng)信令格式,經(jīng)由WebSocket或HTTP(s)長連接等傳輸通道發(fā)送至應(yīng)用服務(wù)器。應(yīng)用服務(wù)器首先會根據(jù)上述ROAP或JSON消息辨識是兩方通話場景還是多方會 議場景。

當(dāng)應(yīng)用服務(wù)器判定是兩方通話場景時(shí),直接將上述ROAP或JSON消息轉(zhuǎn)發(fā)給目標(biāo)WebRTC終端,并將目標(biāo)WebRTC終端返回的包括目標(biāo)WebRTC媒體協(xié)商信息的ROAP或JSON消息轉(zhuǎn)發(fā)給主叫WebRTC終端。之后,WebRTC終端與被叫WebRTC終端之間根據(jù)協(xié)商的媒體鏈路進(jìn)行點(diǎn)對點(diǎn)通信。

當(dāng)應(yīng)用服務(wù)器判定是多方會議場景時(shí),它首先將ROAP信息或JSON信息轉(zhuǎn)換成媒體服務(wù)器能夠識別的SIP信息,再將該SIP信息轉(zhuǎn)發(fā)給媒體服務(wù)器。相應(yīng)地,媒體服務(wù)器根據(jù)這些WebRTC終端的媒體面SDP信息(一般地,主動發(fā)起協(xié)商的一方媒體面SDP信息稱之為OFFER),生成本地支持的協(xié)商媒體面SDP信息(一般地,被動接受協(xié)商一方的媒體面SDP信息稱之為ANSWER),并經(jīng)由相反的路徑和方式返回給各個WebRTC終端。經(jīng)過上述完整的協(xié)商過程之后,WebRTC終端與媒體服務(wù)器就獲取到了通信雙方都支持的媒體格式、加密方式和密鑰以及對端媒體鏈路的候選地址。WebRTC終端的ICE代理與媒體服務(wù)器的ICE代理之間根據(jù)上述候選地址進(jìn)行連通性測試。一旦某一條媒體鏈路雙方都能夠聯(lián)通,則WebRTC終端與媒體服務(wù)器之間的媒體鏈路就建立起來了。當(dāng)WebRTC終端和媒體服務(wù)器之間有多條媒體鏈路可以連通時(shí),WebRTC終端主機(jī)地址的優(yōu)先級最高、WebRTC終端主機(jī)對外的公網(wǎng)地址(即STUN服務(wù)器返回的NAT地址)次之,媒體中繼地址(即TURN服務(wù)器返回的地址)作為最后的連通鏈路選擇。當(dāng)媒體服務(wù)器通過它與各個WebRTC終端之間的媒體鏈路接收到各個WebRTC終端發(fā)送過來的多個媒體流時(shí),會根據(jù)應(yīng)用服務(wù)器提交給它的媒體展示控制策略信息對這些媒體流做混音混頻等合成處理,并將最終生成的統(tǒng)一一路媒體流回送給各個WebRTC終端。這樣,對于每個WebRTC終端而言,都只需要發(fā)送一路媒體流給媒體服務(wù)器,同時(shí)接收媒體服務(wù)器回送的一路媒體流,就可以完成多個WebRTC終端之間的相互通信。

圖10是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖。圖10與圖9的基本思想是一致的,系統(tǒng)架構(gòu)當(dāng)中的網(wǎng)元 及其功能也相同,它們的主要區(qū)別在于圖10是在WebRTC終端主機(jī)地址和WebRTC終端主機(jī)對外的公網(wǎng)地址都無法完成與媒體服務(wù)器之間媒體鏈路連通的情形下,不得不選擇媒體中繼地址來轉(zhuǎn)發(fā)所有的媒體流。這種方式下,各個WebRTC終端的媒體流都需要經(jīng)ICE Server轉(zhuǎn)發(fā)給媒體服務(wù)器。同樣地,由媒體服務(wù)器返回的合成媒體流也需要經(jīng)過ICE Server回送給各個WebRTC終端。

圖11是MCU(多點(diǎn)控制單元)不支持WebRTC協(xié)議棧的情形下無需媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖。圖11與圖9主要有兩點(diǎn)區(qū)別:其一,多點(diǎn)控制單元(MCU)與媒體服務(wù)器(MS)處于同一位置,但多點(diǎn)控制單元(MCU)不支持WebRTC協(xié)議棧,僅作為媒體流合成和展示控制的網(wǎng)元;其二,在多點(diǎn)控制單元(MCU)的前面,引入了一個媒體網(wǎng)關(guān)(MG)網(wǎng)元。

多點(diǎn)控制單元的結(jié)構(gòu)如圖16所示。這里需要特別說明的是,圖16所示的多點(diǎn)控制單元與圖15所示的媒體服務(wù)器可以歸為同一類網(wǎng)元,它們的核心功能都是媒體合成與展現(xiàn)。只不過為了區(qū)別起見,本發(fā)明將不支持WebRTC協(xié)議棧的媒體合成與展現(xiàn)單元稱之為多點(diǎn)控制單元,而將支持WebRTC協(xié)議棧的媒體合成與展現(xiàn)單元稱之為媒體服務(wù)器。由圖16可知,多點(diǎn)控制單元包括媒體合成模塊和媒體協(xié)商與媒體展現(xiàn)控制模塊兩個核心功能體。其中:媒體合成模塊負(fù)責(zé)將多個WebRTC終端發(fā)送的多個實(shí)時(shí)媒體流進(jìn)行混音混頻處理以獲得一個統(tǒng)一的媒體流。媒體協(xié)商與媒體展現(xiàn)控制模塊負(fù)責(zé)與來自應(yīng)用服務(wù)器的媒體信令進(jìn)行協(xié)商以及接收應(yīng)用服務(wù)器(AS)的媒體展示策略并控制媒體合成模塊按照既定的策略來處理多個媒體流的合成。

媒體網(wǎng)關(guān)(MG)的主要功能是對WebRTC終端側(cè)的媒體流與多點(diǎn)控制單元側(cè)的媒體流進(jìn)行適配。媒體網(wǎng)關(guān)的結(jié)構(gòu)如圖17所示。由圖17可知,媒體網(wǎng)關(guān)包括會話管理控制單元、VP8/H.26X轉(zhuǎn)換單元、SRTP/RTP轉(zhuǎn)換單元以及ICE代理四個核心模塊。其中,會話管理控制單元負(fù)責(zé)協(xié)調(diào)WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并使得WebRTC終端與多點(diǎn)控制單元在媒體層面上彼此透明。VP8/H.26X轉(zhuǎn)換單元負(fù)責(zé)完成VP8編碼與H.26X編碼之間的相互轉(zhuǎn)換,以適配WebRTC終端側(cè)和多點(diǎn)控制單元側(cè)的媒體編碼差異。SRTP/RTP轉(zhuǎn)換單元負(fù)責(zé)完成SRTP和RTP之間的相互轉(zhuǎn)換,以適配WebRTC 終端側(cè)和多點(diǎn)控制單元側(cè)的媒體傳輸差異。ICE代理負(fù)責(zé)完成媒體網(wǎng)關(guān)與WebRTC終端之間的連通性測試,以建立兩者之間的媒體鏈路。

在圖11中,WebRTC終端各自與ICE Server交互獲取本地完整的媒體面SDP(Session Description Protocol)信息(包括音視頻編解碼、媒體加密密鑰和算法、ICE候選地址等,為方便說明不妨記作Offer),包裝成ROAP(RTCWeb Offer/Answer Protocol)或JSON(JavaScript Object Notation)等互聯(lián)網(wǎng)信令格式,經(jīng)由WebSocket或HTTP(s)長連接等傳輸通道發(fā)送至應(yīng)用服務(wù)器,應(yīng)用服務(wù)器首先會根據(jù)上述ROAP或JSON消息辨識是兩方通話場景還是多方會議場景。

當(dāng)應(yīng)用服務(wù)器判定是兩方通話場景時(shí),直接將上述ROAP或JSON消息轉(zhuǎn)發(fā)給目標(biāo)WebRTC終端,并將目標(biāo)WebRTC終端返回的包括目標(biāo)WebRTC媒體協(xié)商信息的ROAP或JSON消息轉(zhuǎn)發(fā)給主叫WebRTC終端。之后,主叫WebRTC終端與被叫WebRTC終端之間根據(jù)協(xié)商的媒體鏈路進(jìn)行點(diǎn)對點(diǎn)通信。

當(dāng)應(yīng)用服務(wù)器判定是多方會議場景時(shí),應(yīng)用服務(wù)器將上述包含Offer信息的ROAP信息或JSON信息轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān)。媒體網(wǎng)關(guān)首先取出上述Offer信息并保存一份副本在本地,然后將原始Offer按照與多點(diǎn)控制單元相適配的方式進(jìn)行改造進(jìn)而生成一個全新的媒體協(xié)商信息Offer-MG返回給應(yīng)用服務(wù)器。應(yīng)用服務(wù)器將Offer-MG發(fā)送給多點(diǎn)控制單元進(jìn)行媒體協(xié)商并返回協(xié)商后的媒體信息Answer-MCU給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器將Answer-MCU轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān)。媒體網(wǎng)關(guān)保存一份Answer-MCU副本在本地,然后按照上述Offer進(jìn)行改造,生成與WebRTC終端相適配的媒體信息Answer-MG返回給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器將Answer-MG返回給WebRTC終端。之后,WebRTC終端按照協(xié)商過程中提供的候選媒體連接信息分別與媒體網(wǎng)關(guān)進(jìn)行連通性測試并生成各自媒體鏈路。當(dāng)各個WebRTC終端的媒體流到達(dá)媒體網(wǎng)關(guān)時(shí),媒體網(wǎng)關(guān)會進(jìn)行媒體傳輸和編解碼格式轉(zhuǎn)換,之后再傳送給多點(diǎn)控制單元。多點(diǎn)控制單元根據(jù)應(yīng)用服務(wù)器提交的媒體控制與展現(xiàn)策略進(jìn)行多方媒體流的混音混頻處理,并將生成的統(tǒng)一媒體流返回給媒體網(wǎng)關(guān),媒體網(wǎng)關(guān)再利用它與各個WebRTC終端之間的媒體鏈路返回給各方。這樣,對于每個WebRTC終端 而言,都只需要發(fā)送一路媒體流給媒體網(wǎng)關(guān),同時(shí)接收媒體網(wǎng)關(guān)回送的一路媒體流,就可以完成多個WebRTC終端之間的相互通信。

圖12是多點(diǎn)控制單元不支持WebRTC協(xié)議棧的情形下需要媒體中繼的多方媒體處理系統(tǒng)架構(gòu)圖。圖12與圖11的基本思想是一致的,系統(tǒng)架構(gòu)當(dāng)中的網(wǎng)元及其功能也相同。它們的主要區(qū)別在于圖12是在WebRTC終端主機(jī)地址和WebRTC終端主機(jī)對外的公網(wǎng)地址都無法完成媒體鏈路連通的情形下,不得不選擇媒體中繼地址來轉(zhuǎn)發(fā)所有的媒體流。這種方式下,各個WebRTC終端的媒體流都需要經(jīng)ICE Server轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān)。同樣地,由媒體網(wǎng)關(guān)返回的合成媒體流也需要經(jīng)過ICE Server回送給各個WebRTC終端。

為了更加清晰地闡述上述過程,下面將結(jié)合典型的應(yīng)用示例來詳細(xì)地說明各個網(wǎng)元之間交互的流程。

應(yīng)用示例1

圖18是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。所述先呼入是指將第三方WebRTC終端先接入MS,再接入主持人(chair)WebRTC終端。其主要步驟如下:

1)主持人發(fā)起與參與者1(Participant1)之間點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信

1.1.1)主持人WebRTC終端與ICE Server交互(interaction),獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer(提議)-C;

1.1.2)主持人WebRTC終端將上述媒體面信息Offer-C按照ROAP或JSON格式進(jìn)行包裝,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

1.1.3)應(yīng)用服務(wù)器將利用它與參與者1WebRTC終端之間的WebSocket或HTTP(s)長連接將Offer-C轉(zhuǎn)發(fā)給參與者1WebRTC終端;

1.1.4)參與者1WebRTC終端接收Offer-C,并發(fā)起與ICE Server的交互, 獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息;

1.1.5)參與者1WebRTC終端根據(jù)本地媒體面信息和Offer-C,完成雙方之間的媒體協(xié)商,生成協(xié)商后的媒體信息Answer(應(yīng)答)-P1。然后按照ROAP或JSON格式對Answer-P1進(jìn)行包裝并返回給應(yīng)用服務(wù)器;

1.1.6)應(yīng)用服務(wù)器將Answer-P1返回給主持人WebRTC終端;

1.1.7)主持人WebRTC終端發(fā)送一個確認(rèn)的ROAP或JSON消息OK給應(yīng)用服務(wù)器;

1.1.8)應(yīng)用服務(wù)器將OK消息轉(zhuǎn)發(fā)給參與者1WebRTC終端;

1.1.9)主持人WebRTC終端與參與者1WebRTC終端分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試(connectivity check),發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

1.1.10)主持人WebRTC終端與參與者1WebRTC終端利用兩者之間優(yōu)先級最高的媒體鏈路建立點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信。

2)主持人根據(jù)需要,決定將參與者2(Participant2)加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

1.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

1.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2(participate 2)標(biāo)識一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成參與方2WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩 者之間的媒體通道:

1.2.3)應(yīng)用服務(wù)器從上述步驟1.2.2中的invite消息里面提取出參與者2的信息,并組裝出一個由參與者2到媒體服務(wù)器的SIP INVITE邀請,該邀請的消息體不帶任何媒體信息;

1.2.4)媒體服務(wù)器根據(jù)本地的媒體能力生成自己的媒體面協(xié)商信息Offer-MS,并包裝在SIP 200OK消息轉(zhuǎn)換返給應(yīng)用服務(wù)器;

1.2.5)應(yīng)用服務(wù)器提取出SIP 200OK當(dāng)中的Offer-MS,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給參與方2WebRTC終端;

1.2.6)參與方2WebRTC終端接收Offer-MS,并發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息;

1.2.7)參與者2WebRTC終端根據(jù)本地媒體面信息和Offer-MS,完成雙方之間的媒體協(xié)商,生成協(xié)商后的媒體信息Answer-P2。然后按照ROAP或JSON格式對Answer-P2進(jìn)行包裝并返回給應(yīng)用服務(wù)器;

1.2.8)應(yīng)用服務(wù)器回送一個ROAP或JSON格式的OK確認(rèn)消息給參與方2WebRTC終端;

1.2.9)應(yīng)用服務(wù)器將包含Answer-P2的ROAP或JSON消息轉(zhuǎn)換成SIPACK消息發(fā)送給媒體服務(wù)器。其中,Answer-P2作為消息體嵌在SIP ACK消息當(dāng)中;

1.2.10)參與方2WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

1.2.11)參與方2WebRTC終端與媒體服務(wù)器利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道。

b)完成主持人WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者 之間的媒體通道:

1.3.1)應(yīng)用服務(wù)器從上述步驟1.2.2中的invite消息里面提取出主持人WebRTC終端媒體面信息Offer-C,并組裝出一個由主持人到媒體服務(wù)器的SIPINVITE邀請,該邀請的消息體攜帶Offer-C媒體信息;

1.3.2)媒體服務(wù)器接收上述SIP INVITE消息,然后根據(jù)本地的媒體能力以及主持人WebRTC終端的媒體協(xié)商信息Offer-C生成的媒體面協(xié)商信息Answer-MS,并包裝在SIP 200OK消息轉(zhuǎn)換返給應(yīng)用服務(wù)器;

1.3.3)應(yīng)用服務(wù)器提取出SIP 200OK當(dāng)中的Answer-MS,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給主持人WebRTC終端;

1.3.4)主持人WebRTC終端接收Answer-MS,并發(fā)送一個確認(rèn)的ROAP或JSON消息OK給應(yīng)用服務(wù)器;

1.3.5)應(yīng)用服務(wù)器將上述OK消息轉(zhuǎn)換成SIP ACK消息發(fā)送給媒體服務(wù)器進(jìn)行確認(rèn);

1.3.6)主持人WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

1.3.7)主持人WebRTC終端與媒體服務(wù)器利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間點(diǎn)對點(diǎn)的媒體通道。

c)完成參與方1WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的點(diǎn)對點(diǎn)媒體鏈路:

1.4.1)應(yīng)用服務(wù)器發(fā)送一個更新媒體信息(Info for updating)的ROAP或JSON通知消息給參與方1WebRTC終端;

1.4.2)參與方1WebRTC終端接收到上述通知消息后,發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連 接地址等媒體面信息Offer-P1;

1.4.3)參與方1WebRTC終端將Offer-P1按照ROAP或JSON格式進(jìn)行包裝并發(fā)送給應(yīng)用服務(wù)器;

1.4.4)應(yīng)用服務(wù)器提取出Offer-P1,并組裝出一個由參與方1WebRTC終端到媒體服務(wù)器的SIP INVITE邀請消息,Offer-P1作為該邀請消息的消息體;

1.4.5)媒體服務(wù)器根據(jù)本地的媒體能力和Offer-P1生成自己的媒體面協(xié)商信息Answer-MS,并包裝在SIP 200OK消息轉(zhuǎn)換返給應(yīng)用服務(wù)器;

1.4.6)應(yīng)用服務(wù)器提取出SIP 200OK當(dāng)中的Offer-MS,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給參與方1WebRTC終端;

1.4.7)參與方1WebRTC終端接收Answer-MS,并回送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

1.4.8)應(yīng)用服務(wù)器將該OK消息轉(zhuǎn)換成SIP ACK消息給媒體服務(wù)器;

1.4.9)參與方1WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

1.4.10)參與方1WebRTC終端與媒體服務(wù)器利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道;

1.4.11)參與方1WebRTC終端發(fā)送一個ROAP或JSON格式的shut down消息給應(yīng)用服務(wù)器,要求斷開(shutdown)參與方1與主持人之間的點(diǎn)對點(diǎn)媒體鏈路;

1.4.12)應(yīng)用服務(wù)器將該shut down消息轉(zhuǎn)發(fā)給主持人WebRTC終端;

1.4.13)主持人回送一個ROAP或JSON格式的確認(rèn)消息OK給參與方1WebRTC終端,并斷開本地相應(yīng)的媒體鏈路;

1.4.14)參與方1WebRTC終端收到該OK確認(rèn)消息后,斷開本地相應(yīng)的 媒體鏈路;

1.4.15)參與方1與主持人之間點(diǎn)對點(diǎn)媒體鏈路的拆除(Media connectivity remove)。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

1.5.1)應(yīng)用服務(wù)器發(fā)送包含會議名稱的SIP INFO消息給媒體服務(wù)器,提交需要在媒體服務(wù)器上創(chuàng)建會議的請求;

1.5.2)媒體服務(wù)器按照所述名稱創(chuàng)建會議并返回一個200OK消息給應(yīng)用服務(wù)器,該消息中包含會議連接相關(guān)的信息(connection msg)作為后續(xù)應(yīng)用服務(wù)器提交媒體合成與展示策略的依據(jù);

會議連接相關(guān)信息包括會議名稱、會議連接信息等。

1.5.3)應(yīng)用服務(wù)器提取出所述會議名稱、會議連接信息以及當(dāng)前參會者信息,組裝出所述會議對應(yīng)的多方媒體合成與展示策略信息,并提交給媒體服務(wù)器;

1.5.4)所述媒體服務(wù)器按照所述應(yīng)用服務(wù)器提交的媒體合成與展示策略完成所述多方會議的媒體流合成,并利用所述媒體服務(wù)器與各個WebRTC終端之間的媒體鏈路完成合成媒體流的分發(fā)。之后,發(fā)送200OK的確認(rèn)給所述應(yīng)用服務(wù)器。

對于參與會議的每個WebRTC終端,只需要向媒體服務(wù)器發(fā)送一路媒體流即可。

假設(shè)參與會議的WebRTC終端有n個,多方媒體合成與展示策略例如可以是設(shè)置為媒體服務(wù)器將參與會議的n個WebRTC終端的媒體流合成一路,再分別發(fā)送給參與會議的每個WebRTC終端,即每個WebRTC終端收到一路媒體流,其中包括n個WebRTC終端的媒體信息;或者設(shè)置為媒體服務(wù)器將參與會議的n-1個WebRTC終端的媒體流合成一路,發(fā)送給被剔除媒體信息 的WebRTC終端,即對于WebRTC終端X,其收到一路媒體流,其中包括除自己之外的其他n-1個WebRTC終端的媒體信息。

應(yīng)用示例2

圖19所示的是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖,其主要步驟如下:

1)主持人發(fā)起與參與者1之間的實(shí)時(shí)多媒體通信

2.1.1)至2.1.8)與圖18當(dāng)中的1.1.1)至1.1.8)基本相同,為節(jié)省篇幅,這里不再贅述。

2.1.9)主持人WebRTC終端與參與者1WebRTC終端分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

2.1.10)主持人WebRTC終端與參與者1WebRTC終端利用兩者之間的ICE中繼服務(wù)器建立實(shí)時(shí)多媒體通信。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

2.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

2.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成參與方2WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

2.2.3)至2.2.9)可以參考圖18當(dāng)中的1.2.3)至1.2.9),這里不再贅述。

2.2.10)參與方2WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

2.2.11)參與方2WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間的媒體通道。

b)完成主持人WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

2.3.1)至2.3.5)可以參考圖18當(dāng)中的1.3.1)至1.3.5),這里不再贅述。

2.3.6)主持人WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

c)主持人WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間的媒體通道。

2.4.1)至2.4.8)可以參考圖18當(dāng)中的1.4.1)至1.4.8),這里不再贅述。

2.4.9)參與方1WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

2.4.10)參與方1WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間的媒體通道;

2.4.11)至2.4.15)可以參考圖18當(dāng)中的1.4.11)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

2.5.1)至2.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例3

圖20是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下無需媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。所述后呼入是指先將主持人WebRTC終端接入MS,再接入第三方WebRTC終端。其主要步驟如下:

1)主持人發(fā)起與參與者1之間點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信

3.1.1)至3.1.10)可以參考圖18當(dāng)中的1.1.1)至1.1.10),這里不再贅述。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

3.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

3.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成主持人WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

3.2.3)應(yīng)用服務(wù)器從上述步驟3.2.2中的invite消息里面提取出主持人WebRTC終端媒體面信息Offer-C,并組裝出一個由主持人到媒體服務(wù)器的SIP INVITE邀請,該邀請的消息體攜帶Offer-C媒體信息;

3.2.4)至3.2.9)可以參考圖18當(dāng)中的1.3.2)至1.3.7),這里不再贅述。

b)完成參與方2WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

3.3.1)應(yīng)用服務(wù)器從上述步驟3.2.2中的invite消息里面提取出參與者2的信息,并組裝出一個ROAP或JSON格式的invite消息給參與者2WebRTC終端,邀請參與者2加入多方通信;

3.3.2)參與者2WebRTC終端發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-P2;

3.3.3)參與方2WebRTC終端將Offer-P2按照ROAP或JSON格式包裝后,將其發(fā)送給應(yīng)用服務(wù)器;

3.3.4)應(yīng)用服務(wù)器提取出Offer-P2,并組裝出一個由參與方2WebRTC終端到媒體服務(wù)器的SIP INVITE邀請消息,Offer-P2作為該邀請消息的消息體;

3.3.5)媒體服務(wù)器根據(jù)本地的媒體能力和Offer-P2生成自己的媒體面協(xié)商信息Answer-MS,并包裝在SIP 200OK消息轉(zhuǎn)換返給應(yīng)用服務(wù)器;

3.3.6)應(yīng)用服務(wù)器提取出SIP 200OK當(dāng)中的Offer-MS,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給參與方2WebRTC終端;

3.3.7)參與方2WebRTC終端接收Answer-MS,并回送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

3.3.8)應(yīng)用服務(wù)器將該OK消息轉(zhuǎn)換成SIP ACK消息給媒體服務(wù)器;

3.3.9)參與方2WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

3.3.10)參與方1WebRTC終端與媒體服務(wù)器利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道;

c)完成參與方1WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的點(diǎn)對點(diǎn)媒體鏈路:

3.4.1)至3.4.15)可以參考圖18當(dāng)中的1.4.1)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

3.5.1)至3.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例4

圖21是媒體服務(wù)器支持WebRTC協(xié)議棧的情形下需要媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。其主要步驟如下:

1)主持人發(fā)起與參與者1之間點(diǎn)對點(diǎn)實(shí)時(shí)多媒體通信

4.1.1)至4.1.8)與圖18當(dāng)中的1.1.1)至1.1.8)基本相同,為節(jié)省篇幅,這里不再贅述。

4.1.9)主持人WebRTC終端與參與者1WebRTC終端分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

4.1.10)主持人WebRTC終端與參與者1WebRTC終端利用兩者之間的ICE中繼服務(wù)器建立實(shí)時(shí)多媒體通信。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

4.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

4.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成主持人WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

4.2.3)至4.2.7)可以參考圖20當(dāng)中的3.2.3)至3.2.7),為節(jié)省篇幅,這里不再贅述。

4.2.8)主持人WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

4.2.9)主持人WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間點(diǎn)對點(diǎn)的媒體通道。

b)完成參與方2WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

4.3.1)至4.3.8)可以參考圖20當(dāng)中的3.3.1)至3.3.8),這里不再贅述。

4.3.9)參與方2WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

4.3.10)參與方1WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間的媒體通道;

c)完成參與方1WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的點(diǎn)對點(diǎn)媒體鏈路:

4.4.1)至4.4.8)可以參考圖20當(dāng)中的3.4.1)至3.4.8),這里不再贅述。

4.4.9)參與方1WebRTC終端與媒體服務(wù)器分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

4.4.10)參與方1WebRTC終端與媒體服務(wù)器利用兩者之間的ICE中繼服務(wù)器建立雙方之間的媒體通道;

4.4.11)至4.4.14)可以參考圖18當(dāng)中的1.4.11)至1.4.14),這里不再 贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

4.5.1)至4.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例5

圖22是多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下無需媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。其主要步驟如下:

1)主持人發(fā)起與參與者1之間的實(shí)時(shí)多媒體通信

5.1.1)至5.1.10)可以參考圖18當(dāng)中的1.1.1)至1.1.10),這里不再贅述。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

5.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

5.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成參與方2WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

5.2.3)應(yīng)用服務(wù)器從上述步驟5.2.2中invite消息里面提取出參與者2的信息,并組裝出一個由參與者2到媒體服務(wù)器的SIP INVITE邀請,該邀請的 消息體不帶任何媒體信息;

5.2.4)多點(diǎn)控制單元根據(jù)本地的媒體能力生成自己的媒體面協(xié)商信息Offer-MCU,并包裝在SIP 200OK消息中返回給應(yīng)用服務(wù)器;

5.2.5)應(yīng)用服務(wù)器提取出SIP 200OK當(dāng)中的Offer-MCU,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給媒體網(wǎng)關(guān);

5.2.6)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-MCU,首先保存一份Offer-MCU的副本在本地,然后將原始的Offer-MCU當(dāng)中的音視頻編解碼信息更改為WebRTC終端能夠識別的格式,增加媒體流加密密鑰和加密算法信息,將媒體連接地址更改為本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Offer-MG-P2返回給應(yīng)用服務(wù)器;

5.2.7)應(yīng)用服務(wù)器將Offer-MG-P2按照ROAP或JSON格式進(jìn)行包裝,并轉(zhuǎn)發(fā)給參與方2WebRTC終端;

5.2.8)參與方2WebRTC終端接收Offer-MG-P2,并發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息;

5.2.9)參與者2WebRTC終端根據(jù)本地媒體面信息和Offer-MG-P2,完成參與者2WebRTC終端與媒體網(wǎng)關(guān)之間的媒體協(xié)商,生成協(xié)商后的媒體信息Answer-P2。然后按照ROAP或JSON格式對Answer-P2進(jìn)行包裝并返回給應(yīng)用服務(wù)器;

5.2.10)應(yīng)用服務(wù)器將ROAP或JSON格式的Answer-P2消息轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān);

5.2.11)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Answer-P2,首先保存一份Answer-P2的副本在本地,然后將原始的Answer-P2當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-P2-MG返回給應(yīng)用服務(wù)器;

5.2.12)應(yīng)用服務(wù)器將包含Answer-P2-MG的ROAP或JSON消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元。其中,Answer-P2-MG作為消息體嵌在 SIP ACK消息當(dāng)中;

5.2.13)應(yīng)用服務(wù)器發(fā)送一個ROAP或JSON格式的OK消息給參與者2WebRTC終端進(jìn)行確認(rèn);

5.2.14)參與方2WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,并按照優(yōu)先級由高到低的順序完成參與者2WebRTC終端與媒體網(wǎng)關(guān)之間以及多點(diǎn)控制單元與媒體網(wǎng)關(guān)之間的媒體建鏈;

5.2.15)參與方2WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

b)完成主持人WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,并建立兩者之間的媒體通道:

5.3.1)應(yīng)用服務(wù)器從上述步驟5.2.2中invite消息里面提取出主持人WebRTC終端媒體面信息Offer-C,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給媒體網(wǎng)關(guān);

5.3.2)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-C,首先保存一份Offer-C的副本在本地,然后將原始的Offer-C當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Offer-C-MG返回給應(yīng)用服務(wù)器;

5.3.3)應(yīng)用服務(wù)器將Offer-C-MG作為SIP INVITE消息的消息體,發(fā)送給多點(diǎn)控制單元;

5.3.4)多點(diǎn)控制單元根據(jù)Offer-C-MG以及本地的媒體能力,生成媒體協(xié)商信息Answer-MCU-C,并將其封裝的SIP 200OK消息當(dāng)中返回給應(yīng)用服務(wù)器;

5.3.5)應(yīng)用服務(wù)器取出SIP 200OK當(dāng)中的Answer-MCU-C,以ROAP或JSON格式包裝后發(fā)送給媒體網(wǎng)關(guān);

5.3.6)媒體網(wǎng)關(guān)首先保存一份Answer-MCU-C的副本在本地作為后面與 媒體網(wǎng)關(guān)通信的依據(jù),然后將原始的Answer-MCU-C當(dāng)中的音視頻編解碼信息更改為WebRTC終端能夠識別的格式,增加與Offer-C當(dāng)中媒體流加密密鑰和加密算法相適配的信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-MCU-C-MG返回給應(yīng)用服務(wù)器;

5.3.7)應(yīng)用服務(wù)器將Answer-MCU-C-MG以ROAP或JSON格式包裝后轉(zhuǎn)發(fā)給主持人WebRTC終端;

5.3.8)主持人WebRTC終端發(fā)送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

5.3.9)應(yīng)用服務(wù)器將該OK確認(rèn)消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元;

5.3.10)主持人WebRTC終端與媒體網(wǎng)關(guān)分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

5.3.11)參與方1WebRTC終端與媒體網(wǎng)關(guān)利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道,媒體網(wǎng)關(guān)與多點(diǎn)控制單元按照協(xié)商過程中的媒體連接地址建立雙方之間的媒體通道。

c)完成參與方1WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的媒體鏈路:

5.4.1)應(yīng)用服務(wù)器發(fā)送一個更新媒體信息的ROAP或JSON通知消息給參與方1WebRTC終端;

5.4.2)參與方1WebRTC終端接收到上述通知消息后,發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-P1;

5.4.3)參與方1WebRTC終端將Offer-P1按照ROAP或JSON格式進(jìn)行 包裝并發(fā)送給應(yīng)用服務(wù)器;

5.4.4)應(yīng)用服務(wù)器將ROAP或JSON格式的Offer-P1轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān);

5.4.5)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-P1,首先保存一份Offer-P1的副本在本地,然后將原始的Offer-P1當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Offer-P1-MG返回給應(yīng)用服務(wù)器;

5.4.6)應(yīng)用服務(wù)器將Offer-P1-MG作為SIP INVITE消息的消息體,發(fā)送給多點(diǎn)控制單元;

5.4.7)多點(diǎn)控制單元根據(jù)Offer-P1-MG以及本地的媒體能力,生成媒體協(xié)商信息Answer-MCU-P1,并將其封裝的SIP 200OK消息當(dāng)中返回給應(yīng)用服務(wù)器;

5.4.8)應(yīng)用服務(wù)器取出SIP 200OK當(dāng)中的Answer-MCU-P1,以ROAP或JSON格式包裝后發(fā)送給媒體網(wǎng)關(guān);

5.4.9)媒體網(wǎng)關(guān)首先保存一份Answer-MCU-P1的副本在本地作為后面與媒體網(wǎng)關(guān)通信的依據(jù),然后將原始的Answer-MCU-P1當(dāng)中的音視頻編解碼信息更改為Offer-P1副本相適配的格式,增加與Offer-C當(dāng)中媒體流加密密鑰和加密算法相適配的信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-MCU-P1-MG返回給應(yīng)用服務(wù)器;

5.4.10)應(yīng)用服務(wù)器將Answer-MCU-P1-MG以ROAP或JSON格式包裝后轉(zhuǎn)發(fā)給參與者1WebRTC終端;

5.4.11)參與者1WebRTC終端發(fā)送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

5.4.12)應(yīng)用服務(wù)器將該OK確認(rèn)消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元;

5.4.13)參與者1WebRTC終端與媒體網(wǎng)關(guān)分別根據(jù)媒體協(xié)商過程中交換 的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

5.4.14)參與方1WebRTC終端與媒體網(wǎng)關(guān)利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道,媒體網(wǎng)關(guān)與多點(diǎn)控制單元按照協(xié)商過程中的媒體連接地址建立雙方之間的媒體通道。

5.4.15)至2.4.19)可以參考圖18當(dāng)中的1.4.11)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

5.5.1)至5.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例6

圖23是多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下需要媒體中繼的先呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。其主要步驟如下:

1)主持人發(fā)起與參與者1之間的實(shí)時(shí)多媒體通信

6.1.1)至6.1.8)可以參考圖18當(dāng)中的1.1.1)至1.1.10),這里不再贅述。

6.1.9)主持人WebRTC終端與參與者1WebRTC終端分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

6.1.10)主持人WebRTC終端與參與者1WebRTC終端利用兩者之間的ICE中繼服務(wù)器建立實(shí)時(shí)多媒體通信。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

6.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

6.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成參與方2WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

6.2.3)至6.2.13)可以參考圖22當(dāng)中的5.2.3)至5.2.13),這里不再贅述。

6.2.14)參與方2WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

6.2.15)參與方2WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

b)完成主持人WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

6.3.1)至6.3.9)可以參考圖22當(dāng)中的5.3.1)至5.3.9),這里不再贅述。

6.3.10)主持人WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)主持人WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

6.3.11)主持人WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

c)完成參與方1WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的媒體鏈路:

6.4.1)至6.4.12)可以參考圖22當(dāng)中的5.4.1)至5.4.12),這里不再贅述。

6.4.13)參與方1WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)主持人WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

6.4.14)參與方1WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

6.4.15)至6.4.19)可以參考圖18當(dāng)中的1.4.11)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

6.5.1)至6.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例7

圖24是多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下無需媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。其主要步驟如下:

1)主持人發(fā)起與參與者1之間的實(shí)時(shí)多媒體通信

7.1.1)至7.1.10)可以參考圖18當(dāng)中的1.1.1)至1.1.10),這里不再贅述。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

7.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

7.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與 方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成主持人WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

7.2.3)應(yīng)用服務(wù)器從上述步驟7.2.2中invite消息里面提取出主持人WebRTC終端媒體面信息Offer-C,并以ROAP或JSON格式進(jìn)行包裝發(fā)送給媒體網(wǎng)關(guān);

7.2.4)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-C,首先保存一份Offer-C的副本在本地,然后將原始的Offer-C當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Offer-C-MG返回給應(yīng)用服務(wù)器;

7.2.5)應(yīng)用服務(wù)器將Offer-C-MG作為SIP INVITE消息的消息體,發(fā)送給多點(diǎn)控制單元;

7.2.6)多點(diǎn)控制單元根據(jù)Offer-C-MG以及本地的媒體能力,生成媒體協(xié)商信息Answer-MCU-C,并將其封裝的SIP 200OK消息當(dāng)中返回給應(yīng)用服務(wù)器;

7.2.7)應(yīng)用服務(wù)器取出SIP 200OK當(dāng)中的Answer-MCU-C,以ROAP或JSON格式包裝后發(fā)送給媒體網(wǎng)關(guān);

7.2.8)媒體網(wǎng)關(guān)首先保存一份Answer-MCU-C的副本在本地作為后面與媒體網(wǎng)關(guān)通信的依據(jù),然后將原始的Answer-MCU-C當(dāng)中的音視頻編解碼信息更改為WebRTC終端能夠識別的格式,增加與Offer-C當(dāng)中媒體流加密密鑰和加密算法相適配的信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-MCU-C-MG返回給應(yīng)用服務(wù)器;

7.2.9)應(yīng)用服務(wù)器將Answer-MCU-C-MG以ROAP或JSON格式包裝后 轉(zhuǎn)發(fā)給主持人WebRTC終端;

7.2.10)主持人WebRTC終端發(fā)送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

7.2.11)應(yīng)用服務(wù)器將該OK確認(rèn)消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元;

7.2.12)主持人WebRTC終端與媒體網(wǎng)關(guān)分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

7.2.13)參與方1WebRTC終端與多點(diǎn)控制單元利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道,媒體網(wǎng)關(guān)與多點(diǎn)控制單元按照協(xié)商過程中的媒體連接地址建立雙方之間的媒體通道。

b)完成參與方2WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

7.3.1)應(yīng)用服務(wù)器從上述主持人提交的invite消息里面提取出參與者2的信息,并組裝出一個ROAP或JSON格式的邀請消息給參與者2;

7.3.2)參與者2WebRTC終端收到邀請消息后,發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-P2;

7.3.3)參與方2WebRTC終端將Offer-P2按照ROAP或JSON格式進(jìn)行包裝并發(fā)送給應(yīng)用服務(wù)器;

7.3.4)應(yīng)用服務(wù)器將ROAP或JSON格式的Offer-P2轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān);

7.3.5)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-P2,首先保存一份Offer-P2的副本在本地,然后將原始的Offer-P2當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新 的媒體協(xié)商信息Offer-P2-MG返回給應(yīng)用服務(wù)器;

7.3.6)應(yīng)用服務(wù)器將Offer-P2-MG作為SIP INVITE消息的消息體,發(fā)送給多點(diǎn)控制單元;

7.3.7)多點(diǎn)控制單元根據(jù)Offer-P2-MG以及本地的媒體能力,生成媒體協(xié)商信息Answer-MCU-P2,并將其封裝的SIP 200OK消息當(dāng)中返回給應(yīng)用服務(wù)器;

7.3.8)應(yīng)用服務(wù)器取出SIP 200OK當(dāng)中的Answer-MCU-P2,以ROAP或JSON格式包裝后發(fā)送給媒體網(wǎng)關(guān);

7.3.9)媒體網(wǎng)關(guān)首先保存一份Answer-MCU-P2的副本在本地作為后面與媒體網(wǎng)關(guān)通信的依據(jù),然后將原始的Answer-MCU-P2當(dāng)中的音視頻編解碼信息更改為Offer-P2副本相適配的格式,增加與Offer-P2當(dāng)中媒體流加密密鑰和加密算法相適配的信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-MCU-P2-MG返回給應(yīng)用服務(wù)器;

7.3.10)應(yīng)用服務(wù)器將Answer-MCU-P2-MG以ROAP或JSON格式包裝后轉(zhuǎn)發(fā)給參與者2WebRTC終端;

7.3.11)參與者2WebRTC終端發(fā)送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

7.3.12)應(yīng)用服務(wù)器將該OK確認(rèn)消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元;

7.3.13)參與者2WebRTC終端與媒體網(wǎng)關(guān)分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

7.3.14)參與方2WebRTC終端與多點(diǎn)控制單元利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道,媒體網(wǎng)關(guān)與多點(diǎn)控制單元按照協(xié)商過程中的媒體連接地址建立雙方之間的媒體通道。

c)完成參與方1WebRTC終端與媒體服務(wù)器之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的點(diǎn)對點(diǎn)媒體鏈路:

7.4.1)應(yīng)用服務(wù)器發(fā)送一個更新媒體信息的ROAP或JSON通知消息給參與方1WebRTC終端;

7.4.2)參與方1WebRTC終端接收到上述通知消息后,發(fā)起與ICE Server的交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-P1;

7.4.3)參與方1WebRTC終端將Offer-P1按照ROAP或JSON格式進(jìn)行包裝并發(fā)送給應(yīng)用服務(wù)器;

7.4.4)應(yīng)用服務(wù)器將ROAP或JSON格式的Offer-P1轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān);

7.4.5)媒體網(wǎng)關(guān)取出ROAP或JSON消息里面的Offer-P1,首先保存一份Offer-P1的副本在本地,然后將原始的Offer-P1當(dāng)中的音視頻編解碼信息更改為多點(diǎn)控制單元能夠識別的格式,刪除媒體流加密密鑰和加密算法信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Offer-P1-MG返回給應(yīng)用服務(wù)器;

7.4.6)應(yīng)用服務(wù)器將Offer-P1-MG作為SIP INVITE消息的消息體,發(fā)送給多點(diǎn)控制單元;

7.4.7)多點(diǎn)控制單元根據(jù)Offer-P1-MG以及本地的媒體能力,生成媒體協(xié)商信息Answer-MCU-P1,并將其封裝的SIP 200OK消息當(dāng)中返回給應(yīng)用服務(wù)器;

7.4.8)應(yīng)用服務(wù)器取出SIP 200OK當(dāng)中的Answer-MCU-P1,以ROAP或JSON格式包裝后發(fā)送給媒體網(wǎng)關(guān);

7.4.9)媒體網(wǎng)關(guān)首先保存一份Answer-MCU-P1的副本在本地作為后面與媒體網(wǎng)關(guān)通信的依據(jù),然后將原始的Answer-MCU-P1當(dāng)中的音視頻編解碼信息更改為Offer-P1副本相適配的格式,增加與Offer-C當(dāng)中媒體流加密密鑰和加密算法相適配的信息,將媒體連接地址更改為媒體網(wǎng)關(guān)本地的候選媒體連接地址,進(jìn)而生成一個全新的媒體協(xié)商信息Answer-MCU-P1-MG返回給應(yīng)用 服務(wù)器;

7.4.10)應(yīng)用服務(wù)器將Answer-MCU-P1-MG以ROAP或JSON格式包裝后轉(zhuǎn)發(fā)給參與者1WebRTC終端;

7.4.11)參與者1WebRTC終端發(fā)送一個ROAP或JSON格式的OK確認(rèn)消息給應(yīng)用服務(wù)器;

7.4.12)應(yīng)用服務(wù)器將該OK確認(rèn)消息轉(zhuǎn)換成SIP ACK消息發(fā)送給多點(diǎn)控制單元;

7.4.13)參與者1WebRTC終端與媒體網(wǎng)關(guān)分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)有多條候選媒體連接地址可以連通。于是按照候選地址的優(yōu)先級確定媒體連接的優(yōu)先級(主機(jī)地址優(yōu)先級最高、主機(jī)對外的公網(wǎng)地址優(yōu)先級次之,媒體中繼地址優(yōu)先級最低),決定使用主機(jī)地址或主機(jī)對外的公網(wǎng)地址來完成兩端之間的媒體建鏈;

7.4.14)參與方1WebRTC終端與多點(diǎn)控制單元利用兩者之間優(yōu)先級最高的媒體鏈路建立雙方之間的媒體通道,媒體網(wǎng)關(guān)與多點(diǎn)控制單元按照協(xié)商過程中的媒體連接地址建立雙方之間的媒體通道。

7.4.15)至7.4.19)可以參考圖18當(dāng)中的1.4.11)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

7.5.1)至7.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

應(yīng)用示例8

圖25是多點(diǎn)控制單元不支持WebRTC協(xié)議棧情形下需要媒體中繼的后呼入第三方的WebRTC自適應(yīng)媒體處理核心流程圖。其主要步驟如下:

1)主持人發(fā)起與參與者1之間的實(shí)時(shí)多媒體通信

8.1.1)至8.1.8)可以參考圖18當(dāng)中的1.1.1)至1.1.10),這里不再贅述。

8.1.9)主持人WebRTC終端與參與者1WebRTC終端分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次進(jìn)行連通性測試,發(fā)現(xiàn)只有媒體中繼地址可以完成兩端之間的媒體建鏈;

8.1.10)主持人WebRTC終端與參與者1WebRTC終端利用兩者之間的ICE中繼服務(wù)器建立實(shí)時(shí)多媒體通信。

2)主持人根據(jù)需要,決定將參與者2加入到討論當(dāng)中來。這樣,點(diǎn)對點(diǎn)的實(shí)時(shí)通信過程就演變成了多方會議的場景。其核心流程如下:

8.2.1)主持人WebRTC終端與ICE Server交互,獲取本地的音視頻編解碼、媒體加密算法和密鑰以及候選的媒體連接地址等媒體面信息Offer-C;

8.2.2)主持人WebRTC終端將上述媒體面信息Offer-C和被邀請方參與方2一起按照ROAP或JSON格式進(jìn)行包裝生成invite消息,然后利用主持人WebRTC終端與應(yīng)用服務(wù)器之間的WebSocket或HTTP(s)長連接發(fā)送給應(yīng)用服務(wù)器;

應(yīng)用服務(wù)器接下來會完成如下幾個方面的工作:

a)完成主持人WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

8.2.3)至8.2.11)可以參考圖24當(dāng)中的7.2.3)至7.2.11),這里不再贅述。

8.2.12)主持人WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

6.2.13)主持人WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

b)完成參與方2WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,并建立兩者之間的媒體通道:

8.3.1)至8.3.12)可以參考圖24當(dāng)中的7.3.1)至7.3.12),這里不再贅 述。

8.3.13)參與方2WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

8.3.14)參與方2WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

c)完成參與方1WebRTC終端與多點(diǎn)控制單元之間的媒體協(xié)商,建立兩者之間的媒體通道,并斷開參與方1WebRTC終端與主持人WebRTC終端之間的媒體鏈路:

8.4.1)至8.4.12)可以參考圖24當(dāng)中的7.4.1)至7.4.12),這里不再贅述。

8.4.13)參與方1WebRTC終端和多點(diǎn)控制單元分別根據(jù)媒體協(xié)商過程中交換的候選媒體連接地址依次與媒體網(wǎng)關(guān)進(jìn)行連通性測試,發(fā)現(xiàn)WebRTC終端與媒體網(wǎng)關(guān)之間只能通過ICE中繼服務(wù)器建立媒體鏈接;

8.4.14)參與方1WebRTC終端與多點(diǎn)控制單元利用各自與媒體網(wǎng)關(guān)之間的媒體鏈路建立通信。

8.4.15)至8.4.19)可以參考圖18當(dāng)中的1.4.11)至1.4.15),這里不再贅述。

這里需要特別指出的是,上述a)、b)和c)之間并無明確的先后順序關(guān)系,在其他實(shí)施例中,a)、b)和c)可以任意交換執(zhí)行次序。

3)應(yīng)用服務(wù)器與媒體服務(wù)器交互,完成多方會議在媒體服務(wù)器上的創(chuàng)建以及所述多方會議媒體合成與展示策略指定和媒體流合成與分發(fā):

8.5.1)至8.5.4)可以參考圖18當(dāng)中的1.5.1)至1.5.4),這里不再贅述。

雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì) 節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1