專利名稱::一種網(wǎng)絡(luò)媒體服務(wù)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)多媒體
技術(shù)領(lǐng)域:
,具體涉及一種解決NAT(NetAddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)穿越問題的網(wǎng)絡(luò)媒體服務(wù)方法。
背景技術(shù):
:目前,隨著互聯(lián)網(wǎng)的普及和多媒體技術(shù)在互聯(lián)網(wǎng)上的廣泛應(yīng)用,迫切需要能解決實時傳送音頻、視頻和計算機動畫等媒體文件的技術(shù),流式傳輸技術(shù)及流媒體便是在這種背景下應(yīng)運而生的。通俗的講,在互聯(lián)網(wǎng)上的音頻服務(wù)器和視頻服務(wù)器將聲頻、圖像或動畫等媒體文件從服務(wù)器向客戶端實時連續(xù)傳輸時,用戶不必等待全部媒體文件下載完畢,而只需延遲幾秒或十幾秒,就可以在用戶的計算機上播放,而文件的其余部分則由用戶的計算機在后臺繼續(xù)接收,直至播放完畢或用戶中止操作,這種技術(shù)使用戶在播放音頻、視頻或動畫等媒體的等待時間成百倍的減少,而且不需要太多的緩存。在一個完整的流媒體服務(wù)系統(tǒng)中,按照媒體數(shù)據(jù)的流動方向,可以將網(wǎng)絡(luò)節(jié)點劃分為媒體源、流服務(wù)器、終端播放器三大部分。媒體源負責(zé)媒體流的編碼和網(wǎng)絡(luò)發(fā)送,一般由編碼器實現(xiàn),流服務(wù)器負責(zé)媒體流的存儲或轉(zhuǎn)發(fā)控制,終端播放器負責(zé)媒體流的解碼和呈現(xiàn),三部分由適合多媒體實時傳輸協(xié)議的網(wǎng)絡(luò)進行連接。流媒體服務(wù)中一般的控制協(xié)議采用客戶端/服務(wù)器體系結(jié)構(gòu),請求媒體碼流的一方為客戶端,提供媒體碼流的一方為服務(wù)端。服務(wù)端等待客戶端媒體請求,接收到客戶端的請求后,解析請求取得客戶端的IP地址和端口號,然后將請求的媒體數(shù)據(jù)發(fā)送到客戶端。因此,在整個媒體流服務(wù)提供過程中,流服務(wù)器一方面作為終端播放器的服務(wù)端,另一方面則作為媒體源的客戶端。隨著Internet(互聯(lián)網(wǎng))網(wǎng)絡(luò)的普及,很多Intranet(內(nèi)聯(lián)網(wǎng))的視頻需要在Internet網(wǎng)絡(luò)上點播,此時媒體源位于網(wǎng)關(guān)設(shè)備之后,現(xiàn)有網(wǎng)關(guān)設(shè)備通常運行NAT功能,所以媒體源是位于私網(wǎng)的,例如電信級視頻監(jiān)控系統(tǒng)廣泛分布的監(jiān)控前端就是部署在運營商私網(wǎng)之內(nèi)的。根據(jù)上述接收和發(fā)送機制,媒體源位于私網(wǎng)造成的問題是流服務(wù)器無法訪問媒體源,也不能將媒體碼流轉(zhuǎn)發(fā)給終端播放器。對上述這種NAT穿越問題,目前業(yè)界常用的解決方案是ALG(ApplicationLayerGateway,應(yīng)用層網(wǎng)關(guān))和ProxyServer(代理服務(wù)器)。ALG是最簡單的方法,但是大量現(xiàn)網(wǎng)網(wǎng)關(guān)設(shè)備并不支持特定業(yè)務(wù),升級是不現(xiàn)實的,而使用ProxyServer顯著增加設(shè)備投資,并且占用公網(wǎng)IP,因此也不能為運營商所接受。
發(fā)明內(nèi)容為了克服現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種網(wǎng)絡(luò)媒體服務(wù)方法,即,針對流服務(wù)器位于公網(wǎng)總能訪問的特點,在媒體流提供服務(wù)過程中變換服務(wù)端和客戶端角色,從而將運營商私網(wǎng)媒體源的媒體流順利傳送到播放器終端,實現(xiàn)對位于運營商私網(wǎng)的媒體源的音頻碼流和視頻碼流的接收、轉(zhuǎn)發(fā)或存儲,而且不影響現(xiàn)網(wǎng)網(wǎng)關(guān)設(shè)備,也不增加額外的硬件設(shè)備投資和公網(wǎng)IP資源消耗。本發(fā)明具體是這樣實現(xiàn)的一種網(wǎng)絡(luò)媒體服務(wù)方法,進行如下處理將作為媒體流提供端的媒體源作為客戶端,作為媒體流請求端的流服務(wù)器作為服務(wù)端;流服務(wù)器在監(jiān)聽端口等待媒體源的連接請求,媒體源主動連接流服務(wù)器,發(fā)送媒體流的媒體描述信息到流服務(wù)器,流服務(wù)器建立起服務(wù)會話并維護媒體描述信息;媒體源和流服務(wù)器協(xié)商媒體流的傳輸方式,當(dāng)媒體源的媒體流傳輸準(zhǔn)備就緒時通知流服務(wù)器,流服務(wù)器接收到終端播放器的流服務(wù)請求時,通知媒體源開始發(fā)送媒體流,接收媒體源的媒體流,緩沖并轉(zhuǎn)發(fā)給終端播放器。在流服務(wù)器等候終端播放器的流服務(wù)請求時,為了維護其與流服務(wù)器兩者之間的媒體通道,媒體源每隔一定時間向流服務(wù)器的服務(wù)程序發(fā)送握手消息。流服務(wù)器在規(guī)定的時間內(nèi)沒有收到媒體源發(fā)送的握手消息,則認為媒體源已經(jīng)宕掉,關(guān)閉服務(wù)會話,刪除媒體描述信息。在一定的時間內(nèi),流服務(wù)器沒有收到終端播放器的流服務(wù)請求,則流服務(wù)器通知媒體源停止發(fā)送媒體流,繼續(xù)保持流服務(wù)器與媒體源間的媒體連接,等候后續(xù)的終端播放器的流服務(wù)請求,直至媒體源主動斷開々某體連接。所述的媒體源主動斷開媒體連接,是指基于系統(tǒng)靜態(tài)配置或負載均衡的考慮,媒體源主動向流服務(wù)器發(fā)出關(guān)閉媒體連接請求,流服務(wù)器收到該請求后,關(guān)閉服務(wù)會話,刪除媒體描述信息。所述流服務(wù)器收到終端播放器的流服務(wù)請求時,進行如下處理流服務(wù)器查詢與請求所對應(yīng)的媒體源的連接狀況,如果連接沒有建立,則流服務(wù)器拒絕終端播放器的流服務(wù)請求;如果連接建立,則向媒體源發(fā)送媒體流數(shù)據(jù)請求消息,媒體源開始向流服務(wù)器發(fā)送4某體流數(shù)據(jù)。在多媒體網(wǎng)絡(luò)中,媒體源位于網(wǎng)關(guān)或NAT之后,本發(fā)明提出的網(wǎng)絡(luò)媒體服務(wù)方法,將流服務(wù)器與媒體源建立媒體連接,順利將媒體數(shù)據(jù)轉(zhuǎn)發(fā)至終端播放器或保存于網(wǎng)絡(luò)存儲設(shè)備,從而實現(xiàn)網(wǎng)絡(luò)媒體服務(wù)的方法,本發(fā)明有效的解決了媒體源在NAT后常規(guī)流服務(wù)方法的媒體控制信令無法穿越NAT的問題,并且不影響現(xiàn)有網(wǎng)關(guān)設(shè)備,不占用公網(wǎng)IP資源,是一種公私網(wǎng)通用的網(wǎng)絡(luò)媒體服務(wù)方法,特別適合在NAT后大規(guī)模部署媒體源的應(yīng)用場合,如電信級視頻監(jiān)控系統(tǒng)等。圖1是本發(fā)明應(yīng)用場景示意圖2是本發(fā)明實施例應(yīng)用實例基本流程示意圖。具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式進行詳細說明。如圖1所示,網(wǎng)絡(luò)流媒體服務(wù)系統(tǒng)包括一個或多個流服務(wù)器以及通過網(wǎng)絡(luò)與流服務(wù)器相連的一個或多個編碼器,編碼器作為媒體源與流服務(wù)器一般是一對一的關(guān)系。其中,編碼器可以是編碼硬件設(shè)備或編碼軟件程序,采集各種數(shù)字或模擬音頻數(shù)據(jù)和視頻數(shù)據(jù),實時壓縮編碼成符合ISO和ITU等標(biāo)準(zhǔn)的音頻和視頻,并以流媒體的方式進行Intranet和Intemet傳播等功能,編碼器可以分布于固定或移動的公眾場合、行業(yè)內(nèi)部等,最終接入運營商網(wǎng)絡(luò)。運營商網(wǎng)絡(luò)節(jié)點部署流服務(wù)器和存儲等設(shè)備,流服務(wù)器具有外網(wǎng)IP地址,能夠被外網(wǎng)或者內(nèi)網(wǎng)訪問,流服務(wù)器能夠根據(jù)終端播放器的流服務(wù)請求,把編碼器的實時碼流傳送給終端播放器。對于流服務(wù)器而言,對處于內(nèi)網(wǎng)的編碼器所在設(shè)備的IP地址和端口是不可知的,因此流服務(wù)器不能按照常規(guī)處理向編碼器發(fā)送媒體請求從而接收編碼器的媒體碼流并轉(zhuǎn)發(fā)給終端播放器。但是流服務(wù)器通常位于外網(wǎng),編碼器的信令和碼流可以穿透NAT正確發(fā)送給流服務(wù)器。因此,對編碼器和流服務(wù)器的客戶端/服務(wù)器角色加以轉(zhuǎn)換,由流服務(wù)器監(jiān)聽編碼器的媒體連接請求,編碼器主動連接流服務(wù)器,告訴流服務(wù)器相關(guān)的媒體描述信息,流服務(wù)器維護媒體描述信息并建立起服務(wù)會話,然后編碼器和流服務(wù)器協(xié)商媒體流的傳輸方式,當(dāng)編碼器的媒體碼流(例如,音頻流和視頻流)傳輸準(zhǔn)備就緒時通知流服務(wù)器,流服務(wù)器接收到終端播放器的流服務(wù)請求時,通知編碼器開始發(fā)送媒體碼流,接收編碼器的媒體碼流,緩沖并轉(zhuǎn)發(fā)給終端播放器。如果一段時間內(nèi)沒有任何終端播放器需要流服務(wù),流服務(wù)器通知編碼器停止發(fā)送媒體碼流,從而節(jié)省系統(tǒng)開銷和帶寬,但是流服務(wù)器與編碼器間的媒體連接還是繼續(xù)保持,等候后續(xù)的終端播放器的流服務(wù)請求,直至編碼器基于一定的策略主動斷開媒體連接,服務(wù)器將刪除媒體描述信息并撤銷服務(wù)會話,這個過程對處于外網(wǎng)的編碼器也同樣適用。本發(fā)明上述方法的具體工作步驟如下步驟l,流服務(wù)器在監(jiān)聽端口等待編碼器的連接請求。步驟2,編碼器向流服務(wù)器IP地址和監(jiān)聽端口發(fā)送音頻流描述請求消息和視頻流描述請求消息,消息包含了編碼器音頻流和視頻流的媒體描述信息,流服務(wù)器接收到請求后建立服務(wù)會話,并維護媒體描述信息。步驟3,編碼器與流服務(wù)器進行媒體流傳輸方式協(xié)商。步驟4,編碼器向流服務(wù)器發(fā)送音頻流和視頻流就緒通知消息,告知流服務(wù)器音頻流和視頻流已經(jīng)準(zhǔn)備就緒,正在等待流服務(wù)器的后續(xù)命令以開始音頻流和視頻流的網(wǎng)絡(luò)傳輸。步驟5,編碼器向流服務(wù)器發(fā)送握手消息,用于維護兩者間的媒體通道,等候后續(xù)的終端流服務(wù)請求,編碼器每隔一定時間(例如,20秒)向流服務(wù)器的服務(wù)程序發(fā)送該消息,服務(wù)器在一定時間內(nèi)(例如,20秒或者40秒)沒有收到該消息的時候,就認為編碼器已經(jīng)宕掉,關(guān)閉服務(wù)會話,刪除媒體描述信息。步驟6,流服務(wù)器收到終端播放器的流服務(wù)請求,查詢與請求所對應(yīng)的編碼器的連接狀況,如果連接沒有建立,流服務(wù)器拒絕終端播放器的流服務(wù)請求,實現(xiàn)上可以通過業(yè)務(wù)邏輯避免這種情況的發(fā)生,如果流服務(wù)器查詢到連接后,向編碼器發(fā)送音頻數(shù)據(jù)請求消息和視頻數(shù)據(jù)請求消息,編碼器開始向流服務(wù)器發(fā)送音頻數(shù)據(jù)和視頻數(shù)據(jù)。步驟7,流服務(wù)器接收并向終端播放器轉(zhuǎn)發(fā)實時媒體數(shù)據(jù),服務(wù)過程中流服務(wù)器可以控制音頻數(shù)據(jù)和視頻數(shù)據(jù)的停止和發(fā)送。由流服務(wù)器控制的停止音頻數(shù)據(jù)和視頻數(shù)據(jù)傳輸?shù)那闆r是,流服務(wù)器檢測到一定時段內(nèi)(例如,30秒或者60秒)沒有終端播放器請求媒體流,則向編碼器發(fā)送停止發(fā)送音頻數(shù)據(jù)請求消息和視頻數(shù)據(jù)請求消息,編碼器停止向流服務(wù)器發(fā)送音頻數(shù)據(jù)和-見頻數(shù)據(jù)。步驟8,編碼器向流服務(wù)器發(fā)出關(guān)閉媒體連接請求,流服務(wù)器收到該請求后,關(guān)閉服務(wù)會話,刪除媒體描述信息。編碼器主動關(guān)閉媒體連接可以是基于系統(tǒng)靜態(tài)配置或負載均衡動態(tài)策略等不限。步驟1至步驟8的實現(xiàn)可以選擇全新實現(xiàn)或者基于現(xiàn)有媒體控制協(xié)議做擴展,如RTSP(Real-timeStreamingProtocol,實時流協(xié)-漢)和擴展、SIP和擴展,對協(xié)議種類和擴展形式不限。如圖2所示,是本發(fā)明所述方法的具體實施例的一個應(yīng)用實例——電信級視頻監(jiān)控業(yè)務(wù)中基于RTSP協(xié)議的實時碼流服務(wù)在電信級視頻監(jiān)控系統(tǒng)中,監(jiān)控前端是集成了攝像頭、麥克風(fēng)、告警檢測、編碼器、網(wǎng)卡等功能的設(shè)備,監(jiān)控前端數(shù)量繁多,廣泛分布于內(nèi)網(wǎng),最終通過NAT接入運營商網(wǎng)絡(luò),運營商網(wǎng)絡(luò)的流服務(wù)器具有外網(wǎng)地址,用于接收和轉(zhuǎn)發(fā)監(jiān)控前端的實時碼流,監(jiān)控客戶端負責(zé)將碼流解碼呈現(xiàn)給用戶。監(jiān)控前端提供MPEG-4的視頻,枧頻傳輸遵循RFC3016(用于MPEG-4視聽流的RTP負載格式),音頻傳輸遵循ISMA協(xié)議規(guī)范,監(jiān)控前端和流服務(wù)器的媒體交互消息采用RTSP協(xié)議及其擴展實現(xiàn)。根據(jù)本發(fā)明所迷方法,電信級監(jiān)控業(yè)務(wù)中基于RTSP協(xié)議的實時碼流服務(wù),具體是這樣實現(xiàn)的步驟l,運營商網(wǎng)絡(luò)流服務(wù)器打開RTSP監(jiān)聽端口,等待監(jiān)控前端的連接請求;步驟2,內(nèi)網(wǎng)的監(jiān)控前端上電,讀取配置信息,得到流服務(wù)器IP地址和RTSP監(jiān)聽端口號,向流服務(wù)器發(fā)送RTSPANNOUNCE(實時流協(xié)議應(yīng)答)消息,包含監(jiān)控前端的SDP(SessionDescriptionProtocol,會話描述協(xié)議)信息,RTSP消息格式參見標(biāo)準(zhǔn)RTSP協(xié)議,此處不再贅述;步驟3,流服務(wù)器收到RTSPANNOUNCE消息后,保存SDP,創(chuàng)建RTSP服務(wù)會話;步驟4,監(jiān)控前端向流服務(wù)器發(fā)送RTSPSETUP(實時流協(xié)議建立)消息,根據(jù)監(jiān)控前端的SDP,步驟4可重復(fù)進行多次,選擇RTP(Real-timeTransportProtocol,實時傳輸協(xié)議)/TCP/IP或RTP/UDP/IP傳輸方式。步驟5,流服務(wù)器收到SETUP消息后,響應(yīng)服務(wù)器的傳輸端口等信息;步驟6,監(jiān)控前端主動向流服務(wù)器發(fā)送UDP包以打通到流服務(wù)器的RTP和<table>tableseeoriginaldocumentpage10</column></row><table>關(guān)鍵域為x-WAITPLAY,取值為yes,表示等待后續(xù)命令才開始媒體碼流的傳輸。步驟7,流服務(wù)器收到監(jiān)控客戶端的實時監(jiān)控請求,找到對應(yīng)的監(jiān)控前端連接會話,向監(jiān)控前端發(fā)送RTSPSET—PARAMETER消息和"PLAY:START"x-PLAYCTRL擴展,監(jiān)控前端開始向流服務(wù)器發(fā)送媒體碼流,流服務(wù)器接收到碼流后轉(zhuǎn)發(fā)給監(jiān)控客戶端。<table>tableseeoriginaldocumentpage10</column></row><table>步驟8,流服務(wù)器檢測到連續(xù)30秒沒有收到監(jiān)控客戶端的服務(wù)請求時,向監(jiān)控前端發(fā)送RTSPSET—PARAMETER消息和"PLAY:STOP"x-PLAYCTRL擴展,監(jiān)控前端停止媒體碼流的發(fā)送。步驟9,監(jiān)控前端向流服務(wù)器發(fā)送RTSPOPTION消息保持媒體連接,如果流服務(wù)器超過20秒收不到OPTION消息,主動斷開連接,回收資源。步驟IO,監(jiān)控前端向流服務(wù)器發(fā)送RTSPTEARDOWN消息斷開媒體連接,流服務(wù)器回收資源。本發(fā)明提出的網(wǎng)絡(luò)媒體服務(wù)方法,轉(zhuǎn)變一般流媒體服務(wù)過程中媒體源作為服務(wù)器而流服務(wù)器作為客戶端的常規(guī)模式,對運營商私網(wǎng)的媒體源的音頻碼流和視頻碼流進行接收、轉(zhuǎn)發(fā)或存儲,不影響現(xiàn)網(wǎng)網(wǎng)關(guān)設(shè)備,不增加額外的硬件設(shè)備投資和運營商IP資源消耗,是一種公私網(wǎng)通用的網(wǎng)絡(luò)媒體服務(wù)方法,特別適合在NAT后大規(guī)模部署媒體源的應(yīng)用場合。使用本發(fā)明的設(shè)計思想及其任何等效變換實現(xiàn)的監(jiān)控告警錄像,均應(yīng)屬于本發(fā)明的保護范圍。權(quán)利要求1.一種網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于將作為媒體流提供端的媒體源作為客戶端,作為媒體流請求端的流服務(wù)器作為服務(wù)端;流服務(wù)器在監(jiān)聽端口等待媒體源的連接請求,媒體源主動連接流服務(wù)器,發(fā)送媒體流的媒體描述信息到流服務(wù)器,流服務(wù)器建立起服務(wù)會話并維護媒體描述信息;媒體源和流服務(wù)器協(xié)商媒體流的傳輸方式,當(dāng)媒體源的媒體流傳輸準(zhǔn)備就緒時通知流服務(wù)器,流服務(wù)器接收到終端播放器的流服務(wù)請求時,通知媒體源開始發(fā)送媒體流,接收媒體源的媒體流,緩沖并轉(zhuǎn)發(fā)給終端播放器。2.如權(quán)利要求l所述的網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于在流服務(wù)器等候終端播放器的流服務(wù)請求時,為了維護與流服務(wù)器兩者之間的媒體通道,媒體源每隔一定時間向流服務(wù)器的服務(wù)程序發(fā)送握手消息。3.如權(quán)利要求2所述的網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于流服務(wù)器在規(guī)定的時間內(nèi)沒有收到媒體源發(fā)送的握手消息,則認為媒體源已經(jīng)宕掉,關(guān)閉服務(wù)會話,刪除媒體描述信息。4.如權(quán)利要求1或2所述的網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于在一定的時間內(nèi),流服務(wù)器沒有收到終端播放器的流服務(wù)請求,則流服務(wù)器通知媒體源停止發(fā)送媒體流,繼續(xù)保持流服務(wù)器與媒體源間的媒體連接,等候后續(xù)的終端播放器的流服務(wù)請求,直至媒體源主動斷開媒體連接。5.如權(quán)利要求4所述的網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于,所述的媒體源主動斷開媒體連接,是指基于系統(tǒng)靜態(tài)配置或負載均衡的考慮,媒體源主動向流服務(wù)器發(fā)出關(guān)閉媒體連接請求,流服務(wù)器收到該請求后,關(guān)閉服務(wù)會話,刪除媒體描述信息。6.如權(quán)利要求l所述的網(wǎng)絡(luò)媒體服務(wù)方法,其特征在于,所述流服務(wù)器收到終端播放器的流服務(wù)請求時,進行如下處理流服務(wù)器查詢與請求所對應(yīng)的媒體源的連接狀況,如果連接沒有建立,則流服務(wù)器拒絕終端播放器的流服務(wù)請求;如果連接建立,則向媒體源發(fā)送媒體流數(shù)據(jù)請求消息,媒體源開始向流服務(wù)器發(fā)送媒體流數(shù)據(jù)。全文摘要本發(fā)明公開了一種網(wǎng)絡(luò)媒體服務(wù)方法,將作為媒體流提供端的媒體源作為客戶端,作為媒體流請求端的流服務(wù)器作為服務(wù)端;流服務(wù)器在監(jiān)聽端口等待媒體源的連接請求,媒體源主動連接流服務(wù)器,發(fā)送媒體流的媒體描述信息到流服務(wù)器,流服務(wù)器建立起服務(wù)會話并維護媒體描述信息;媒體源和流服務(wù)器協(xié)商媒體流的傳輸方式,當(dāng)媒體源的媒體流傳輸準(zhǔn)備就緒時通知流服務(wù)器,流服務(wù)器接收到終端播放器的流服務(wù)請求時,通知媒體源開始發(fā)送媒體流,接收媒體源的媒體流,緩沖并轉(zhuǎn)發(fā)給終端播放器。采用本發(fā)明所述方法,不影響現(xiàn)有網(wǎng)關(guān)設(shè)備,不占用公網(wǎng)IP資源,是一種公私網(wǎng)通用的網(wǎng)絡(luò)媒體服務(wù)方法,特別適合在網(wǎng)絡(luò)地址轉(zhuǎn)換后大規(guī)模部署媒體源的應(yīng)用場合。文檔編號H04L12/56GK101309203SQ20071010782公開日2008年11月19日申請日期2007年5月17日優(yōu)先權(quán)日2007年5月17日發(fā)明者盧王飛,李竹平,崗隆申請人:中興通訊股份有限公司