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