本發(fā)明涉及計(jì)算機(jī)視頻直播技術(shù)領(lǐng)域,尤其涉及基于sip+rtp與rtmp協(xié)議互通的實(shí)時(shí)直播方法。
背景技術(shù):
現(xiàn)有成熟的多媒體通訊方案主要分為兩大類,sip+rtp通訊方案和rtmp通訊方案:
sip+rtp通訊方案:廣泛應(yīng)用于即時(shí)通訊,視頻會(huì)議領(lǐng)域,實(shí)時(shí)性高,但在網(wǎng)絡(luò)抖動(dòng)較大的情況下無法保證音視頻質(zhì)量,大規(guī)模負(fù)載代價(jià)較高。
rtmp通訊方案:廣泛應(yīng)用于在線直播,安防監(jiān)控領(lǐng)域,音視頻質(zhì)量好,但音視頻延遲較大,在實(shí)時(shí)性要求高時(shí),無法保證通話雙方,多方的實(shí)時(shí)性。
兩種方案采用不同協(xié)議和不同封裝方法,不能原生性互通。
目前常用的解決方案是服務(wù)器將音視頻數(shù)據(jù)組裝成flv格式文件存儲(chǔ)于硬盤,接收終端拉取音視頻數(shù)據(jù)時(shí),從硬盤中讀取音視頻數(shù)據(jù)并進(jìn)行下發(fā)到發(fā)送終端,適用點(diǎn)播,錄播實(shí)時(shí)性能不高的應(yīng)用場(chǎng)景。
由于需要把文件存儲(chǔ)到硬盤,再從硬盤讀取,文件的封裝以及解析,硬盤io讀寫過程耗時(shí),不適用實(shí)時(shí)性高的視頻直播、視頻會(huì)議、視頻通話。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)中不足之處提供一種基于sip+rtp與rtmp協(xié)議互通的實(shí)時(shí)直播系統(tǒng)方法,目的是在不同網(wǎng)絡(luò)和應(yīng)用場(chǎng)景下?lián)駜?yōu)選擇sip+rtp或rtmp協(xié)議方式,無需結(jié)束本次音視頻通信進(jìn)行實(shí)時(shí)切換,保證音視頻流暢質(zhì)量和音視頻實(shí)時(shí)性。
本發(fā)明所采用的技術(shù)方案具體步驟如下:
發(fā)送終端根據(jù)網(wǎng)絡(luò)狀況及應(yīng)用場(chǎng)景選擇sip+rtp或rtmp協(xié)議方式,推送音視頻數(shù)據(jù)到媒體服務(wù)器的輸入適配層;
媒體服務(wù)器對(duì)發(fā)送終端鑒權(quán),媒體服務(wù)器鑒權(quán)成功則與發(fā)送終端建立連接并接收數(shù)據(jù);
媒體服務(wù)器的輸入適配層解析發(fā)送終端推送上來的信令及媒體數(shù)據(jù),并提交媒體裸數(shù)據(jù)給媒體處理層;
接收終端根據(jù)網(wǎng)絡(luò)狀況及應(yīng)用場(chǎng)景選擇sip+rtp或rtmp協(xié)議方式向媒體服務(wù)器的輸出適配層建立連接并提交拉取音視頻數(shù)據(jù)請(qǐng)求;
媒體服務(wù)器對(duì)接收終端鑒權(quán),媒體服務(wù)器鑒權(quán)成功則與接收終端建立連接并根據(jù)接收終端選擇的接入方式下發(fā)媒體數(shù)據(jù)。
上述發(fā)送終端是獲取音視頻數(shù)據(jù)的通道,包括手機(jī)app產(chǎn)品、web端、pc電腦;所述接收終端是接收音視頻數(shù)據(jù)的通道,包括手機(jī)app產(chǎn)品、web端、pc電腦。
上述媒體裸數(shù)據(jù)是媒體數(shù)據(jù)經(jīng)過上千次采樣處理后的數(shù)字化聲音、圖像。
進(jìn)一步的,媒體服務(wù)器包括輸入適配層、媒體處理層和輸出適配層,具體包括:
輸入適配層解析和封裝發(fā)送終端傳輸?shù)囊粢曨l數(shù)據(jù),并對(duì)sip+rtp或rtmp協(xié)議下的數(shù)據(jù)進(jìn)行編碼和數(shù)據(jù)進(jìn)行封裝;
媒體處理層通過用戶id和密碼進(jìn)行鑒權(quán),成功則接收發(fā)送終端數(shù)據(jù),并處理含有控制信息的內(nèi)部信令和采樣后的音視頻數(shù)據(jù),控制sip+rtp和rtmp協(xié)議方式是否需要實(shí)時(shí)切換;
輸出適配層按照接收終端的拉取數(shù)據(jù)請(qǐng)求,獲取媒體處理層中的內(nèi)部信令和音視頻數(shù)據(jù),并處理接收終端的拉取數(shù)據(jù)請(qǐng)求,根據(jù)選擇的sip+rtp或rtmp協(xié)議方式,建立對(duì)應(yīng)連接后下發(fā)媒體數(shù)據(jù)到接收終端;
進(jìn)一步的,當(dāng)網(wǎng)絡(luò)質(zhì)量出現(xiàn)下降,sip+rtp協(xié)議方式和rtmp協(xié)議方式實(shí)時(shí)切換包括:sip+rtp或rtmp協(xié)議方式下的音視頻數(shù)據(jù)經(jīng)過媒體服務(wù)器的輸入適配層,媒體處理層和輸出適配層的控制和協(xié)調(diào),轉(zhuǎn)換為rtmp或sip+rtp協(xié)議方式下的音視頻數(shù)據(jù)。
上述實(shí)時(shí)切換是音視頻直播系統(tǒng)下的實(shí)時(shí)切換,通訊雙方實(shí)時(shí)看到對(duì)方圖像、聽到對(duì)方聲音,保證實(shí)時(shí)通訊下流暢音視頻質(zhì)量。
上述音頻編碼格式采用g721、g729、ilbc、sppek,silk、opus的一種或多種。
上述視頻編碼格式采用h263、h263+、h264、vp8的一種或多種。
本發(fā)明的有益效果:
通過建立輸入適配層和輸出適配層,媒體服務(wù)器無需緩存大量數(shù)據(jù),通話質(zhì)量不佳,多人視頻信號(hào)中斷時(shí),實(shí)時(shí)秒級(jí)切換sip+rtp和rtmp兩種通信方式,速度快,大規(guī)模并發(fā)處理能力強(qiáng),無需中斷本次直播。
實(shí)時(shí)直播時(shí),實(shí)效互動(dòng)性強(qiáng),音視頻數(shù)據(jù)經(jīng)過壓縮處理,不費(fèi)流量,不占用內(nèi)存和網(wǎng)絡(luò)。
附圖說明
圖1為本發(fā)明sip+rtp與rtmp互通模式總體架構(gòu)圖;
圖2為本發(fā)明sip+rtp與rtmp互通模式工作流程圖;
圖3為本發(fā)明sip+rtp與rtmp互通模式狀態(tài)流程圖。
具體實(shí)施方式
為了更好的說明本發(fā)明,現(xiàn)結(jié)合實(shí)施例及附圖作進(jìn)一步的說明。
本發(fā)明是基于sip+rtp與rtmp協(xié)議互通的實(shí)時(shí)直播方法,實(shí)施案例所述方法列舉實(shí)時(shí)直播視頻系統(tǒng)的應(yīng)用,還可應(yīng)用一對(duì)多,多對(duì)多視頻會(huì)議應(yīng)用場(chǎng)景。
如圖1所示,基于sip+rtp與rtmp協(xié)議互通的實(shí)時(shí)直播方法具體包括:
發(fā)送終端采集sip+rtp或rtmp協(xié)議下的音視頻數(shù)據(jù),發(fā)送終端1采集sip+rtp協(xié)議下的音視頻數(shù)據(jù),發(fā)送終端2采集rtmp協(xié)議下的音視頻數(shù)據(jù),采集兩種不同協(xié)議數(shù)據(jù)的發(fā)送終端數(shù)量可擴(kuò)展至多個(gè),發(fā)送終端1至發(fā)送終端m1發(fā)送sip+rtp協(xié)議下的音視頻數(shù)據(jù),發(fā)送終端2至發(fā)送終端m2發(fā)送rtmp協(xié)議下的音視頻數(shù)據(jù);
采集主體包括ios系統(tǒng),安卓系統(tǒng)和嵌入式網(wǎng)絡(luò)系統(tǒng),電腦端,主要采集和接收sip+rtp和rtmp兩種協(xié)議音視頻數(shù)據(jù)。
發(fā)送終端在實(shí)時(shí)直播或互動(dòng)時(shí),媒體服務(wù)器根據(jù)當(dāng)前網(wǎng)絡(luò)信號(hào)強(qiáng)弱,直播或音頻信號(hào)流暢度,以及視頻直播者的應(yīng)用場(chǎng)景,實(shí)時(shí)控制和監(jiān)聽每個(gè)終端端口,發(fā)現(xiàn)視頻使用者出現(xiàn)等待,或畫面延時(shí),媒體處理層通過多線程動(dòng)態(tài)切換兩種協(xié)議通信模式,保證實(shí)時(shí)直播的流暢度。
輸出適配層根據(jù)接收終端的拉取數(shù)據(jù)請(qǐng)求,輸出對(duì)應(yīng)連接方式下的數(shù)據(jù)。
接收終端1至接收終端n1接收轉(zhuǎn)換后的rtmp協(xié)議下的音視頻數(shù)據(jù),接收終端2至接收終端n2接收轉(zhuǎn)換后的sip+rtp協(xié)議下的音視頻數(shù)據(jù)。
基于總體架構(gòu)圖,如圖2所示進(jìn)一步的工作流程圖,具體實(shí)施步驟如下:
s101:發(fā)送終端根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)和應(yīng)用場(chǎng)景選擇sip+rtp或rtmp方式推送音視頻數(shù)據(jù)到媒體服務(wù)器輸入適配器層,其中發(fā)送終端根據(jù)應(yīng)用狀態(tài)可以改變成接收終端,在視頻通話中,通話發(fā)起端可成為接收終端,發(fā)送終端是實(shí)時(shí)直播系統(tǒng)的web端,pc端以及手機(jī)app;
s102:所述媒體服務(wù)器在實(shí)時(shí)直播系統(tǒng)中主要是對(duì)用戶鑒權(quán)獲取合法請(qǐng)求,并和發(fā)送終端建立連接,包括當(dāng)前用戶的id和密碼信息,鑒權(quán)成功獲取聲音和圖像,失敗不能訪問系統(tǒng);
s103:媒體服務(wù)器的輸入適配層解析發(fā)送終端推送上來的信令以及媒體數(shù)據(jù),并提交媒體裸數(shù)據(jù)給媒體處理層,所述信令用來傳輸數(shù)據(jù)與控制信息,所有的通信過程均由它判定和指示,通過函數(shù),消息隊(duì)列來進(jìn)行控制;
所述媒體裸數(shù)據(jù)是經(jīng)過上千次采樣后的數(shù)字化聲音和圖像,應(yīng)用場(chǎng)景是混音開會(huì),混屏視頻等場(chǎng)景,多人方格顯示在線視頻會(huì)進(jìn)行;
s104:接收終端根據(jù)網(wǎng)絡(luò)狀況及應(yīng)用場(chǎng)景選擇sip+rtp或rtmp方式向媒體服務(wù)器的輸出適配層建立連接并提交拉取媒體數(shù)據(jù)請(qǐng)求;
s105:媒體服務(wù)器對(duì)接收終端鑒權(quán),鑒權(quán)成功則與接收終端建立連接并根據(jù)接收終端選擇的接入方式下發(fā)媒體數(shù)據(jù),所述接收終端表現(xiàn)形式為視頻播放者使用各類手機(jī)app訪問系統(tǒng),web網(wǎng)頁端以及電腦端。
如圖3所示,sip+rtp和rtmp互通模式狀態(tài)流程圖:
當(dāng)網(wǎng)絡(luò)質(zhì)量下降時(shí),sip+rtp模式如何轉(zhuǎn)換成rtmp模式,包括實(shí)時(shí)直播時(shí)視頻數(shù)據(jù)錄入到播放這個(gè)過程;
首先發(fā)送終端將sip信令發(fā)送至輸入適配層,獲得媒體服務(wù)器鑒權(quán)后,輸入適配層將內(nèi)部信令和媒體裸數(shù)據(jù)交給媒體處理層處理;
鑒權(quán)是以用戶id和密碼訪問實(shí)時(shí)直播視頻系統(tǒng),所述內(nèi)部信令是指通過函數(shù)消息隊(duì)列統(tǒng)一處理和控制接收的音視頻數(shù)據(jù),成功獲得鑒權(quán)后,rtp封裝音視頻數(shù)據(jù)到媒體服務(wù)器,將采樣處理的媒體裸數(shù)據(jù)提交給媒體處理層;
當(dāng)網(wǎng)絡(luò)質(zhì)量下降時(shí),在3g、4g網(wǎng)絡(luò)中有延時(shí),卡頓現(xiàn)象,由于數(shù)據(jù)在通信網(wǎng)絡(luò)上是以數(shù)據(jù)包為單位傳輸?shù)模瑪?shù)據(jù)包的傳輸不是線性的,不可能百分之百的完成,出現(xiàn)物理線路故障、設(shè)備故障、病毒攻擊、路由信息錯(cuò)誤等原因,總會(huì)有一定的損失傳輸?shù)?,目前丟包、包順序混亂時(shí)常出現(xiàn),視頻信號(hào)出現(xiàn)卡頓,sip+rtp方式不在適用,所述媒體處理層關(guān)閉sip+rtp這種方式,選擇rtmp方式,方式切換前接收終端向媒體服務(wù)器發(fā)送以rtmp方式拉取數(shù)據(jù)的請(qǐng)求;
媒體服務(wù)器對(duì)接收終端鑒權(quán),用戶鑒權(quán)是對(duì)該用戶使用直播系統(tǒng)數(shù)據(jù)業(yè)務(wù)的合法性和有效性進(jìn)行檢查,狀態(tài)是否為激活;
媒體服務(wù)器的輸出適配層根據(jù)接收終端的拉取數(shù)據(jù)請(qǐng)求,獲取媒體處理層中的內(nèi)部信令和音視頻數(shù)據(jù),并根據(jù)接收終端選擇的接入方式下發(fā)媒體數(shù)據(jù);
所述信令是一種用于控制的信號(hào),是保證用戶信息有效且可靠傳輸?shù)母黝愋盘?hào)。
本發(fā)明實(shí)施實(shí)例所述服務(wù)器無需緩存大量數(shù)據(jù),反應(yīng)靈活,長時(shí)間實(shí)時(shí)直播時(shí)對(duì)寬帶資源占有很少,媒體使用者只需很少的流量即可在線觀看,也無需結(jié)束本次直播觀看。
最后,本發(fā)明實(shí)施案例重點(diǎn)強(qiáng)調(diào)sip+rtp/rtmp模式在實(shí)時(shí)直播系統(tǒng)中的互通,但不僅僅限于此部分,也涉及錄播點(diǎn)播以及相關(guān)領(lǐng)域,相關(guān)技術(shù)人員可在不違背發(fā)明精神的情況下進(jìn)行擴(kuò)展和研究,對(duì)等同本發(fā)明的技術(shù)范圍內(nèi)保留申請(qǐng)專利。