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