Rtmp與rudp結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)。
【背景技術(shù)】
[0002]流媒體技術(shù)是把連續(xù)的影像和聲音信息經(jīng)過(guò)壓縮處理后放上網(wǎng)站服務(wù)器,讓用戶一邊下載一邊觀看、收聽(tīng),而不要等整個(gè)壓縮文件下載到自己的計(jì)算機(jī)上才可以觀看的網(wǎng)絡(luò)傳輸技術(shù)。在網(wǎng)上進(jìn)行流媒體傳輸時(shí),技術(shù)方面,所傳輸?shù)奈募仨氈谱鞒蛇m合流媒體傳輸?shù)牧髅襟w格式文件,傳輸方面,流媒體的傳輸需要合適的傳輸協(xié)議,在Internet上的文件傳輸大部分都是建立在TCP協(xié)議的基礎(chǔ)上,也有一些是以FTP傳輸協(xié)議的方式進(jìn)行傳輸,但采用這些傳輸協(xié)議都不能實(shí)現(xiàn)實(shí)時(shí)方式的傳輸。隨著流媒體技術(shù)的深入研究,比較成熟的流媒體傳輸一般都是采用建立在UDP協(xié)議上的RTP/RTSP實(shí)時(shí)傳輸協(xié)議。
[0003]流媒體的傳輸技術(shù)分兩種,一種是順序流式傳輸,另一種是實(shí)時(shí)流式傳輸。順序流式傳輸是順序下載,在下載文件的同時(shí)用戶可以觀看,但是,用戶的觀看與服務(wù)器上的傳輸并不是同步進(jìn)行的,用戶是在一段延時(shí)后才能看到服務(wù)器上傳出來(lái)的信息,或者說(shuō)用戶看到的總是服務(wù)器在若干時(shí)間以前傳出來(lái)的信息。在這過(guò)程中,用戶只能觀看已下載的那部分,而不能要求跳到還未下載的部分。
[0004]在實(shí)時(shí)流式傳輸中,音視頻信息可被實(shí)時(shí)觀看到。在觀看過(guò)程中用戶可快進(jìn)或后退以觀看前面或后面的內(nèi)容,但是在這種傳輸方式中,如果網(wǎng)絡(luò)傳輸狀況不理想,則收到的信號(hào)效果比較差。
【發(fā)明內(nèi)容】
[0005 ]針對(duì)上述問(wèn)題中存在的不足之處,本發(fā)明提供一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng),包括:物理架構(gòu)和邏輯架構(gòu);
[0007]所述物理架構(gòu)采用三級(jí)交換網(wǎng)絡(luò),一級(jí)交換網(wǎng)絡(luò)為媒體轉(zhuǎn)發(fā)服務(wù)器MTS,用于接收通過(guò)RUDP傳輸?shù)牧髅襟w信息;二級(jí)交換網(wǎng)絡(luò)為流媒體服務(wù)器MSS,所述MSS與所述MTS相連,用于接收MTS通過(guò)RTMP推流的信息;三級(jí)交換網(wǎng)絡(luò)為用戶界面層,用戶界面層與所述MSS相連,用于訪問(wèn)MSS;
[0008]所述邏輯架構(gòu)采用四層架構(gòu),從底層至上層依次為L(zhǎng)inux內(nèi)核、網(wǎng)絡(luò)層、MTS層和接口層;所述網(wǎng)絡(luò)層通過(guò)API接口訪問(wèn)Linux內(nèi)核。
[0009]作為本發(fā)明的進(jìn)一步改進(jìn),所述MSS包括多個(gè)內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N,每一個(gè)所述⑶N包括一個(gè)源流媒體服務(wù)器MSS origin和多個(gè)邊界流媒體服務(wù)器MSS edge。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn),所述用戶界面層與MSS之間是雙向訪問(wèn)和互動(dòng)的。
[0011]作為本發(fā)明的進(jìn)一步改進(jìn),所述網(wǎng)絡(luò)層包括網(wǎng)絡(luò)適配層、NetAPI接口和EventDr i ve,其中NetAPI接口遵循TCP/UDP協(xié)議,event Dr ive通過(guò)epol I函數(shù)進(jìn)行Linux訪問(wèn)。
[0012]作為本發(fā)明的進(jìn)一步改進(jìn),所述MTS層包括房間管理模塊、游客管理模塊、認(rèn)證鑒權(quán)模塊、媒體轉(zhuǎn)發(fā)模塊、直播推流模塊和故障管理模塊中的一種或多種。
[0013]作為本發(fā)明的進(jìn)一步改進(jìn),所述接口層包括媒體資源管理服務(wù)器接口MRSinterface、媒體任務(wù)管理服務(wù)器接口MTM interface、流媒體服務(wù)器接口MSS interface和客戶端器接口Client interface中的一種或多種。
[0014]本發(fā)明還公開(kāi)了一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的推流方法,包括:
[0015]步驟一、流媒體從助手端通過(guò)RUDP實(shí)時(shí)傳輸至MTS,所述流媒體包括音頻、視頻數(shù)據(jù)包;
[0016]步驟二、流媒體進(jìn)入MTS的緩沖隊(duì)列進(jìn)行去抖動(dòng)后,判斷緩沖隊(duì)列中是否有數(shù)據(jù),若有數(shù)據(jù),則進(jìn)入步驟三;
[0017]步驟三、將數(shù)據(jù)封裝成RTMP流推送至MSS中,然后判斷是否結(jié)束直播,如果是,則關(guān)閉直播,結(jié)束推送。
[0018]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟二中,若緩沖隊(duì)列中沒(méi)有數(shù)據(jù),則MTS繼續(xù)接收助手端推送的流媒體,并重復(fù)步驟一。
[0019]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟三中,如果不結(jié)束直播,則MTS繼續(xù)接收助手端推送的流媒體,并重復(fù)步驟一。
[0020]作為本發(fā)明的進(jìn)一步改進(jìn),
[0021 ]所述將數(shù)據(jù)封裝成RTMP流推送至MSS中包括:
[0022]數(shù)據(jù)封裝成RTMP流推送至源流媒體服務(wù)器MSS origin中;
[0023]在每個(gè)⑶N的內(nèi)部,源流媒體服務(wù)器MSS origin通過(guò)RTMP將流媒體信息推送到多個(gè)MSS edge 中;
[0024]用戶界面層通過(guò)邊界流媒體服務(wù)器MSSedge接收流媒體信息或與邊界流媒體服務(wù)器MSS edge進(jìn)行交互。
[0025]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
[0026]本發(fā)明公開(kāi)的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng),在MTS接收流媒體信息時(shí),采用RUDP協(xié)議;在MTS將流媒體信息推送至MSS時(shí),采用RTMP協(xié)議,RUDP主要為了彌補(bǔ)RTMP復(fù)雜網(wǎng)絡(luò)環(huán)境下傳輸信號(hào)差的缺陷;本發(fā)明可以使整個(gè)系統(tǒng)的分發(fā)效率提高一倍,提高復(fù)雜網(wǎng)絡(luò)環(huán)境下直播系統(tǒng)中音視頻流媒體的傳輸質(zhì)量和傳輸效率,并且無(wú)需安裝客戶端程序;
[0027]本發(fā)明公開(kāi)的CDN采用流媒體服務(wù)器集群技術(shù),克服單機(jī)系統(tǒng)輸出帶寬及并發(fā)能力不足的缺點(diǎn),可極大提升系統(tǒng)支持的并發(fā)流數(shù)目,減少或避免單點(diǎn)失效帶來(lái)的不良影響。
【附圖說(shuō)明】
[0028]圖1為本發(fā)明一種實(shí)施例公開(kāi)的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的物理架構(gòu)圖;
[0029]圖2為本發(fā)明一種實(shí)施例公開(kāi)的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的邏輯架構(gòu)圖;
[0030]圖3為本發(fā)明一種實(shí)施例公開(kāi)的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的推送流程圖;
[0031]圖4為本發(fā)明一種實(shí)施例公開(kāi)的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的⑶N分發(fā)流程圖。
[0032]圖中:1、媒體轉(zhuǎn)發(fā)服務(wù)器MTS;2、流媒體服務(wù)器MSS;3、用戶界面層;4、Linux內(nèi)核;
5、網(wǎng)絡(luò)層;6、MTS層;7、接口層。
【具體實(shí)施方式】
[0033]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]本發(fā)明提供一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng),包括:物理架構(gòu)和邏輯架構(gòu);物理架構(gòu)采用三級(jí)交換網(wǎng)絡(luò),一級(jí)交換網(wǎng)絡(luò)為媒體轉(zhuǎn)發(fā)服務(wù)器MTS,用于接收通過(guò)RUDP傳輸?shù)牧髅襟w信息;二級(jí)交換網(wǎng)絡(luò)為流媒體服務(wù)器MSS,MSS與MTS相連,用于接收MTS通過(guò)RTMP推流的信息;三級(jí)交換網(wǎng)絡(luò)為用戶界面層,用戶界面層與MSS相連,用于訪問(wèn)MSS;邏輯架構(gòu)采用四層架構(gòu),從底層至上層依次為L(zhǎng)inux內(nèi)核、網(wǎng)絡(luò)層、MTS層和接口層;網(wǎng)絡(luò)層通過(guò)API接口訪問(wèn)Linux內(nèi)核。
[0035]本發(fā)明提供一種RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)的推流方法,包括:
[0036]步驟一、流媒體從助手端通過(guò)RUDP實(shí)時(shí)傳輸至MTS,流媒體包括音頻、視頻數(shù)據(jù)包;
[0037]步驟二、流媒體進(jìn)入MTS的緩沖隊(duì)列進(jìn)行去抖動(dòng)后,判斷緩沖隊(duì)列中是否有數(shù)據(jù),若有數(shù)據(jù),則進(jìn)入步驟三;
[0038]步驟三、將數(shù)據(jù)封裝成RTMP流推送至MSS中,然后判斷是否結(jié)束直播,如果是,則關(guān)閉直播,結(jié)束推送。
[0039]本發(fā)明介紹的RTMP與RUDP結(jié)合的實(shí)時(shí)流媒體直播系統(tǒng)可以提高復(fù)雜網(wǎng)絡(luò)環(huán)境下直播系統(tǒng)中音視頻流媒體的傳輸質(zhì)量和傳輸效率,并且無(wú)需安裝客戶端程序,大大簡(jiǎn)化了客戶操作的復(fù)雜度。
[0040]RTMP協(xié)議全稱是Real Time Messaging Protocol,即實(shí)時(shí)消息傳送協(xié)議,用于在Flash平臺(tái)之間傳遞視音頻以及數(shù)據(jù)。與RTSP和RTP組合提供流媒體服務(wù)的方式不同,RTMP協(xié)議本身既可以傳輸多媒體數(shù)據(jù)也可以控制多媒體播放。RTMP協(xié)議使用TCP協(xié)議作為其傳輸層的網(wǎng)絡(luò)協(xié)議。TCP是面向連接的,提供可靠交付的協(xié)議,因此在互聯(lián)網(wǎng)上傳輸時(shí)不會(huì)出現(xiàn)丟包情況,從而保證了用戶體驗(yàn)(QoE)。但是TCP協(xié)議提供可靠交付的代價(jià)就是增加了一些額外的開(kāi)銷,占用了一些帶寬和處理機(jī)資源。UDP雖然開(kāi)銷小,速率高但它是基于消息的不可靠傳遞協(xié)議。直播系統(tǒng)對(duì)視音頻傳輸要求具備一定的可靠性,為此就自然地考慮到在UDP的基礎(chǔ)上增加一些為保證可靠數(shù)據(jù)傳遞所必需的功能使其成為一個(gè)基于消息的可靠傳遞協(xié)議這就是RUDP協(xié)議。支持RTMP協(xié)議的流媒體客戶端可以制作成一個(gè)普通的Flash文件,只要安裝過(guò)Flash Player的網(wǎng)頁(yè)瀏覽器就可以自動(dòng)下載該文件并運(yùn)行它。而Flash Player是一個(gè)上網(wǎng)必備的插件。據(jù)統(tǒng)計(jì),全世界98%的網(wǎng)頁(yè)瀏覽器都安裝了Flash Player。因此,普通用戶不需要任何操作,只要使用網(wǎng)頁(yè)瀏覽器打開(kāi)播放頁(yè)面,就可以收看流媒體。
[0041 ] RUDP主要是為了彌補(bǔ)RTMP復(fù)雜網(wǎng)絡(luò)環(huán)境下傳輸信號(hào)差的缺陷,因?yàn)镽TMP是基于TCP的。本發(fā)明可以使整個(gè)系統(tǒng)的分發(fā)效率提高一倍,是因?yàn)镸SS