[發(fā)明專利]一種基于WebRTC的MCU系統(tǒng)及方法有效
| 申請(qǐng)?zhí)枺?/td> | 202010909199.5 | 申請(qǐng)日: | 2020-09-02 |
| 公開(公告)號(hào): | CN112235238B | 公開(公告)日: | 2022-11-01 |
| 發(fā)明(設(shè)計(jì))人: | 方輝 | 申請(qǐng)(專利權(quán))人: | 武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司 |
| 主分類號(hào): | H04L9/40 | 分類號(hào): | H04L9/40;H04L65/1066;H04L65/403;H04L65/60;H04L65/65;H04N21/485 |
| 代理公司: | 北京匯澤知識(shí)產(chǎn)權(quán)代理有限公司 11228 | 代理人: | 鄭飛 |
| 地址: | 430074 湖*** | 國(guó)省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 webrtc mcu 系統(tǒng) 方法 | ||
1.一種基于WebRTC的MCU系統(tǒng),其特征在于,所述MCU系統(tǒng)包括WebRTC服務(wù)器、Mixer服務(wù)器和STUN/TURN服務(wù)器;
所述WebRTC服務(wù)器用于接收來(lái)自終端用戶的加入房間請(qǐng)求,將終端用戶加入進(jìn)房間,并接收房間內(nèi)自各個(gè)參與者發(fā)布的音視頻流,將各個(gè)參與者發(fā)布的音視頻流轉(zhuǎn)發(fā)給Mixer服務(wù)器;
所述Mixer服務(wù)器用于將從WebRTC服務(wù)器獲取到的多路音視頻流進(jìn)行混流處理,將多路音視頻流混合成一路音視頻流,形成混合流,將所述混合流重新發(fā)布到WebRTC服務(wù)器中,同時(shí)管理各個(gè)混流窗口位置;
所述STUN/TURN服務(wù)器基于coturn開源服務(wù)器搭建,用于ICE實(shí)現(xiàn)內(nèi)網(wǎng)穿透功能;
其中,所述Mixer服務(wù)器具體用于:
接收來(lái)自WebRTC服務(wù)器的混流請(qǐng)求,所述混流請(qǐng)求中包含房間ID以及WebRTC服務(wù)器中用于接收混合流的收流端口號(hào);
確認(rèn)是否已經(jīng)存在以對(duì)應(yīng)房間ID命名的混流進(jìn)程,如果存在,將接收的音視頻流加入已經(jīng)存在的混流進(jìn)程中,否則,創(chuàng)建一個(gè)新的以房間ID命名的混流進(jìn)程,將接收的音視頻流加入新的混流進(jìn)程中;
為新加入的音視頻流分配一個(gè)混流窗口,用來(lái)顯示該音視頻流的位置,用來(lái)顯示該音視頻流的位置,基于GStreamer框架創(chuàng)建混流器,將多路音視頻流混合成單路的混合流,將混流后的音視頻流轉(zhuǎn)發(fā)至WebRTC服務(wù)器的收流端口;
其中,所述WebRTC服務(wù)器具體用于:
接收來(lái)自終端用戶的加入房間請(qǐng)求,所述加入房間請(qǐng)求中包含鑒權(quán)信息,所述鑒權(quán)信息包括房間ID、用戶名密碼以及STUN/TURN的地址;
判斷房間ID和用戶名密碼是否匹配,若不匹配,提示無(wú)權(quán)限,流程結(jié)束,若成功匹配,進(jìn)行ICE交互操作,如果ICE交互失敗,流程結(jié)束,否則,開始接收來(lái)自參與者的音視頻流,將所述音視頻流轉(zhuǎn)發(fā)到Mixer服務(wù)器,并啟動(dòng)一個(gè)收流端口,用于接收來(lái)自Mixer服務(wù)器的混合流;
接收來(lái)自Mixer服務(wù)器的混合流,通知參與者去訂閱混合流,其中,混合流包含房間內(nèi)所有成員的畫面信息以及聲音信息;
其中,所述Mixer服務(wù)器為多個(gè),WebRTC服務(wù)器包括Room模塊、Streaming模塊和WebRTC協(xié)議層;
所述Room模塊用于接收管理者的房間創(chuàng)建請(qǐng)求,為管理者創(chuàng)建房間,并接收來(lái)自終端用戶的加入房間請(qǐng)求,針對(duì)每個(gè)加入的終端用戶進(jìn)行鑒權(quán),將鑒權(quán)通過(guò)的終端用戶加入到房間;
所述Streaming模塊用于在房間內(nèi)有參與者發(fā)布音視頻流時(shí),獲取到該音視頻流,并將其轉(zhuǎn)發(fā)給可用的或者負(fù)載低的Mixer服務(wù)器,由對(duì)應(yīng)的Mixer服務(wù)器進(jìn)行混流處理,并接收來(lái)自Mixer服務(wù)器混流后的音視頻流,通知各個(gè)參與者訂閱;
所述WebRTC協(xié)議層用于底層的WebRTC協(xié)議的實(shí)現(xiàn);
其中,所述Room模塊還用在有參與者離開房間時(shí),通知其它參與者,并同時(shí)告知Streaming模塊,Streaming模塊還用于在有參與者離開房間時(shí),通知Mixer服務(wù)器刪除對(duì)應(yīng)的一路混流窗口。
2.一種基于WebRTC的MCU方法,其特征在于,所述方法包括:
步驟1,WebRTC服務(wù)器接收來(lái)自終端用戶的加入房間請(qǐng)求,將終端用戶加入進(jìn)房間,并接收房間內(nèi)自各個(gè)參與者發(fā)布的音視頻流,將各個(gè)參與者發(fā)布的音視頻流轉(zhuǎn)發(fā)給Mixer服務(wù)器;
步驟2,Mixer服務(wù)器將從WebRTC服務(wù)器獲取到的多路音視頻流進(jìn)行混流處理,將多路音視頻流混合成一路音視頻流,形成混合流,并將所述混合流重新發(fā)布到WebRTC服務(wù)器中;
其中,WebRTC服務(wù)器接收來(lái)自終端用戶的加入房間請(qǐng)求,將終端用戶加入進(jìn)房間,并接收房間內(nèi)自各個(gè)參與者發(fā)布的音視頻流,將各個(gè)參與者發(fā)布的音視頻流轉(zhuǎn)發(fā)給Mixer服務(wù)器具體包括:
步驟301,接收來(lái)自終端用戶的加入房間請(qǐng)求,所述加入房間請(qǐng)求中包含鑒權(quán)信息,所述鑒權(quán)信息包括房間ID、用戶名密碼以及STUN/TURN的地址;
步驟302,判斷房間ID和用戶名密碼是否匹配,若不匹配,進(jìn)入步驟303;若成功匹配,進(jìn)行步驟304;
步驟303,提示無(wú)權(quán)限,流程結(jié)束;
步驟304,進(jìn)行ICE交互操作,如果ICE交互失敗,進(jìn)入步驟305,否則,進(jìn)入步驟306;
步驟305,ICE交互失敗,流程結(jié)束;
步驟306,開始接收來(lái)自參與者的音視頻流數(shù)據(jù);
步驟307,判斷當(dāng)前房前參與者人數(shù),如果小于6人,進(jìn)入步驟309,否則進(jìn)入步驟308;
步驟308,通知房間內(nèi)其它參與者訂閱該路視頻流;
步驟309,將音視頻流轉(zhuǎn)發(fā)到Mixer服務(wù)器,并啟動(dòng)一個(gè)收流端口,用于接收來(lái)自Mixer服務(wù)器的混合流,進(jìn)入步驟310;
步驟310,接收來(lái)自Mixer服務(wù)器的混合流,該混合流包含房間內(nèi)所有成員的畫面信息以及聲音信息;
步驟311,獲取到混合流后,通知參與者去訂閱混合流;
其中,步驟2中,Mixer服務(wù)器將從WebRTC服務(wù)器獲取到的多路音視頻流進(jìn)行混流處理,將多路音視頻流混合成一路音視頻流,形成混合流,并將所述混合流重新發(fā)布到WebRTC服務(wù)器具體包括:
步驟401,接收來(lái)自WebRTC服務(wù)器的混流請(qǐng)求,所述混流請(qǐng)求中包含房間ID以及WebRTC服務(wù)器中用于接收混合流的收流端口號(hào);
步驟402,確認(rèn)是否已經(jīng)存在以對(duì)應(yīng)房間ID命名的混流進(jìn)程,如果存在進(jìn)入步驟403,否則進(jìn)入步驟404;
步驟403,將接收的音視頻流加入已經(jīng)存在的混流進(jìn)程中,使同一房間ID內(nèi)的音視頻流執(zhí)行同一個(gè)混流進(jìn)程,并進(jìn)入步驟405;
步驟404,創(chuàng)建一個(gè)新的以房間ID命名的混流進(jìn)程,保證同一房間內(nèi)的音視頻流都執(zhí)行同一混流進(jìn)程,加入到新的混流進(jìn)程后,進(jìn)入步驟405;
步驟405,為新加入的音視頻流分配一個(gè)混流窗口,用來(lái)顯示該音視頻流的位置,進(jìn)入步驟406;
步驟406,基于GStreamer框架創(chuàng)建混流器,將多路音視頻流混合成單路的混合流;
步驟407,將混流后的音視頻流轉(zhuǎn)發(fā)至WebRTC服務(wù)器的收流端口;
步驟408,當(dāng)收到終端用戶的窗口放大請(qǐng)求后,轉(zhuǎn)發(fā)單路流;
步驟409,當(dāng)收到終端的窗口縮小請(qǐng)求后,重新執(zhí)行步驟406,直到整個(gè)流程結(jié)束。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司,未經(jīng)武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010909199.5/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種網(wǎng)頁(yè)實(shí)時(shí)通信方法、系統(tǒng)及服務(wù)器和客戶端
- 可縮放Web實(shí)時(shí)通信媒體引擎以及相關(guān)的方法、系統(tǒng)
- 背靠背虛擬WEB實(shí)時(shí)通信代理以及相關(guān)的方法、系統(tǒng)
- 虛擬WEB實(shí)時(shí)通信網(wǎng)關(guān)以及相關(guān)的方法、系統(tǒng)
- 用于提供網(wǎng)絡(luò)管理的方法和系統(tǒng)
- 為Web實(shí)時(shí)通信(WebRTC)交互流提供智能管理的方法和系統(tǒng)
- 一種基于網(wǎng)頁(yè)的實(shí)時(shí)通信的媒體處理方法與裝置
- 網(wǎng)頁(yè)實(shí)時(shí)通信中服務(wù)質(zhì)量會(huì)話參數(shù)的傳遞方法及轉(zhuǎn)換網(wǎng)關(guān)
- 視頻會(huì)議加入方法、多接入會(huì)議服務(wù)器和視頻會(huì)議系統(tǒng)
- Chrome的webrtc-internals工具顯示終端應(yīng)用程序的方法





