rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計_第1頁
rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計_第2頁
rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計_第3頁
rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計_第4頁
rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

rsp視頻點播系統(tǒng)的服務(wù)器和客戶端設(shè)計

隨著計算機和計算機的快速發(fā)展,以及5g等高速移動通信技術(shù)的逐步成熟,尤其是高速訪問網(wǎng)絡(luò)、高速網(wǎng)站和寬帶結(jié)構(gòu)網(wǎng)絡(luò)等先進網(wǎng)絡(luò)技術(shù)的出現(xiàn),多媒體通信技術(shù)的網(wǎng)絡(luò)應(yīng)用得到了迅速發(fā)展。在基于Internet的計算機網(wǎng)絡(luò)上,流媒體技術(shù)越來越廣泛地應(yīng)用于視頻點播系統(tǒng)。而基于RTSP協(xié)議的視頻點播系統(tǒng)已被廣泛應(yīng)用到視頻點播,視頻會議,遠程教育等許多領(lǐng)域。視頻點播系統(tǒng)一般分為文件共享方式、下載方式、流媒體傳輸方式三種系統(tǒng)。文件共享方式和下載方式是通過共享媒體文件和下載媒體文件等獲取數(shù)據(jù),屬于非流式系統(tǒng)。使用流式傳輸技術(shù)的連續(xù)時基媒體,如音頻、視頻或多媒體文件,其核心部分是傳輸協(xié)議和文件格式。流式傳輸?shù)膶崿F(xiàn)有特定的實時傳輸協(xié)議,其中包括Internet本身的多媒體傳輸協(xié)議,以及一些實時流式傳輸協(xié)議等。通常,需要根據(jù)實際情況選取合適的實時傳輸協(xié)議以保證流媒體的傳輸質(zhì)量,從而更好地發(fā)揮流媒體的作用。1rtps協(xié)議體系1.1rtsp的數(shù)字視頻傳輸協(xié)議實時流協(xié)議(Real-TimeStreamingProtocol,RTSP)是由RealNetworks和Netscape共同提出的,該協(xié)議定義了一對多的應(yīng)用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)的方法。RTSP在體系結(jié)構(gòu)上位于實時傳輸協(xié)議(ATransportProtocolforReal-TimeApplications,RTP)和實時傳輸控制協(xié)議(RealTimeControlProtocol,RTCP)之上,它使用TCP或UDP完成數(shù)據(jù)傳輸。RTSP是一個客戶-服務(wù)器多媒體節(jié)目協(xié)議,用于建立并控制一個或幾個時間同步的連續(xù)視頻、音頻流的連接。盡管用RTSP交叉?zhèn)鬏斶B續(xù)媒體流和控制流是可能的,但通常它用來控制流式多媒體數(shù)據(jù)在IP網(wǎng)絡(luò)上的發(fā)送,而并不用于連續(xù)媒體流的傳輸。它提供用于音頻和視頻流的遠程控制功能,例如:播放、暫停、關(guān)閉等。RTSP是一個應(yīng)用層協(xié)議,用來與RTP、RTCP等更低層的協(xié)議一起,提供基于Internet的整套流化服務(wù)。它可以選擇發(fā)送通道(例如:UDP、組播UDP和TCP)和基于RTP的發(fā)送機制。1.2rtsp協(xié)議RTSP協(xié)議位于RTP和RTCP之上,它使用TCP或UDP完成數(shù)據(jù)傳輸,其體系結(jié)構(gòu)如圖1所示。目前,支持基于IP的流媒體網(wǎng)絡(luò)協(xié)議主要有實時傳輸協(xié)議RTP、實時傳輸控制協(xié)議RTCP、實時流協(xié)議RTSP、資源預(yù)留協(xié)議(ResourceReservationProtocol,RSVP)和會話描述協(xié)議(SessionDescriptionProtocol,SDP)。RTSP協(xié)議主要用于媒體播放客戶端和媒體服務(wù)器之間的網(wǎng)絡(luò)遠程控制。RTSP可以使用TCP連接協(xié)議也可以使用UDP連接協(xié)議,主要根據(jù)傳輸?shù)臄?shù)據(jù)類型來決定。RTSP提供了一個可擴展框架,使實時數(shù)據(jù),如音頻與視頻的受控點播成為可能。1.3狀態(tài)行下的支持功能RTSP中的所有操作都是通過服務(wù)器和客戶端的消息應(yīng)答來完成的,其消息包括請求和應(yīng)答兩類.請求消息的格式如圖2。請求消息由請求行、標題行中的各種標題域和主體實體組成。請求行和標題行由ASCII字符組成。圖2中的sp域、cr域和lf域分別代表空格字符、回車字符和換行字符。其中的method表示請求命令,主要有以下幾種命令。OPTIONS:客戶端或服務(wù)器端通知另一方自己能接受的選項;DESCRIBE:客戶端通過向服務(wù)器發(fā)送請求URL,接受指定的節(jié)目描述或媒體對象;SETUP:讓服務(wù)器給流分配資源,啟動RTSP連接;PLAY:啟動SETUP分配流的數(shù)據(jù)傳輸;TEARDOWN:釋放流的資源,RTSP連接停止。除了狀態(tài)行之外,RTSP應(yīng)答消息格式與請求消息的格式相同。狀態(tài)行包含RTSP的版本號,狀態(tài)碼<statuscode>和短語<phrase>,它們組合起來表示客戶請求所獲得的結(jié)果。RTSP客戶機和服務(wù)器之間的協(xié)議交互開始于OPTION請求/應(yīng)答,然后客戶機為它感興趣的媒體流發(fā)送一個DESCRIBE請求。從服務(wù)器返回的應(yīng)答消息可獲得關(guān)于這個流的具體信息,比如編碼方式等。然后客戶端發(fā)送一個SETUP請求,其中包括協(xié)議集和端口號,客戶端通過這些協(xié)議集和端口來接收媒體流,服務(wù)器把選中的協(xié)議和端口應(yīng)答給客戶端??蛻舳嗽侔l(fā)送PLAY命令告知服務(wù)器通過先前商定的協(xié)議來傳輸數(shù)據(jù),還可以發(fā)送PAUSE來臨時暫停傳送,發(fā)送TEARDOWN表示結(jié)束會話。整個交互過程如圖3所示。2rtbs協(xié)議流暢系統(tǒng)2.1流媒體金屬點火系統(tǒng)流媒體視頻點播系統(tǒng)是一種為用戶提供實時視頻點播服務(wù)的分布式多媒體系統(tǒng),它一般由媒體點播服務(wù)器、通信網(wǎng)絡(luò)和用戶端前設(shè)備(客戶)組成.流媒體點播系統(tǒng)的功能示意如圖4所示。2.2流媒體服務(wù)的上傳機制流媒體在播放前不是完全下載整個文件,而是把開始部分內(nèi)容存入內(nèi)存,數(shù)據(jù)流是隨時傳送隨時播放。當(dāng)服務(wù)器收到RTSP請求,它首先產(chǎn)生RTSP請求對象。服務(wù)器通過RTSP協(xié)議的應(yīng)答信息將請求的內(nèi)容以流會話的形式描述,一個流會話由一個或多個數(shù)據(jù)流組成,如視頻流和音頻流等。實際的數(shù)據(jù)流通過RTP協(xié)議傳遞到客戶端。RTP在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現(xiàn)流同步。RTP本身并不能為順序傳送數(shù)據(jù)包提供可靠的傳送機制,它依靠RTCP一起提供流量控制和擁塞控制服務(wù)。在RTP會話期間,各連接者監(jiān)視下層網(wǎng)絡(luò)的性能,并將相關(guān)信息放入RTCP包,周期性地傳送RTCP包來通知發(fā)送方。發(fā)送方也可以用RTCP包提供每次的會話信息,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料。因此,服務(wù)器可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,因有效的反饋和最小的開銷使傳輸效率實現(xiàn)最佳化。所有的客戶連接請求都是以TCP的端口獲得的,流媒體數(shù)據(jù)也都是打成RTP包,通過UDP端口發(fā)出去的,因此,對于TCP、UDP端口事件的調(diào)度以及如何把大量的流媒體數(shù)據(jù)從磁盤空間傳遞到網(wǎng)絡(luò)上成為制約流媒體服務(wù)器性能的主要因素。流媒體服務(wù)器面對一個單一的客戶,完成的過程如下:①在客戶端發(fā)出RTSP連接請求后,服務(wù)器通過對TCP端口的監(jiān)聽,讀入請求。②解析請求內(nèi)容,調(diào)入相應(yīng)的流媒體文件。③形成RTP包,分發(fā)數(shù)據(jù)流包,獲得RTCP包。④數(shù)據(jù)包發(fā)送完畢,關(guān)閉連接。在傳輸過程中,主要采取的方式是RTPoverTCP或RTPoverUDP,因此,在RTP端口之外,還存在一個回傳端口RTCP。在服務(wù)器收到客戶端的RTCP回傳信息后,需要對其進行判斷。如果客戶端的丟包率、解碼率等指標在一定限度之下,就認為目前傳送的視頻文件可令客戶端獲得最大程度的音視頻享受;否則,考慮改為傳輸更低碼率的視頻文件或放棄這次RTSP會話,以避免更大范圍的擁塞。2.3實時視頻發(fā)布如圖4,客戶端主要通過與服務(wù)器建立連接,用RTP協(xié)議接收媒體數(shù)據(jù)流,并在本地進行實時播放,同時反饋給服務(wù)器相關(guān)的信息。主要完成的過程如下:①在客戶端發(fā)出RTSP連接請求。②接收服務(wù)器發(fā)送過來的RTP包,并進行音視頻數(shù)據(jù)分離、解碼、播放,同時發(fā)送RTCP包。③數(shù)據(jù)包接收完畢,關(guān)閉連接。3rtbs協(xié)議的交付系統(tǒng)設(shè)計與實現(xiàn)3.1客戶端接收媒體流算法設(shè)計目前RTSP協(xié)議的實現(xiàn)方式很多,下面以一個開源代碼實現(xiàn)的基于RTP/RTCP/RTSP的標準流媒體協(xié)議庫live為例,對在嵌入式Linux平臺上,開發(fā)實現(xiàn)低成本的流媒體點播系統(tǒng)進行介紹。本實例提供了一個C/S結(jié)構(gòu)的軟件開發(fā)流程,服務(wù)器發(fā)送媒體流數(shù)據(jù),客戶端接收媒體流數(shù)據(jù),進行本地的播放輸出,并可以進行暫停,播放等操作的遠程控制。在嵌入式Linux平臺上實現(xiàn)服務(wù)器廣播媒體流數(shù)據(jù)開發(fā)步驟如下:①通過createNew函數(shù)初始化任務(wù)管理的一個對象TaskScheduler,統(tǒng)一管理事件循環(huán)和異步事件的處理。②創(chuàng)建一個RTSPServer對象,為RTSP協(xié)議的操作和管理提供統(tǒng)一的接口。主要包括RTSP服務(wù)器要處理的每個客戶端任務(wù)的狀態(tài),以及各類命令解析函數(shù)(包括handleCmd_OPTIONS,handleCmd_DESCRIBE,handleCmd_SETUP,handleCmd_PLAY,handleCmd_TEARDOWN,handleCmd_PAUSE等)。③創(chuàng)建一個服務(wù)器任務(wù)ServerMediaSession,加入一個所要廣播的子任務(wù),可供客戶端點播。④通過doEventLoop()函數(shù)進入事件循環(huán),等待網(wǎng)絡(luò)數(shù)據(jù),如果有RTSP客戶端請求,則接收,解析相應(yīng)的命令,并對不同的命令做不同的處理,主要有SETUP、PLAY、PAUSE等操作。如果是播放命令,則通過調(diào)用subsession->startStream()函數(shù)建立RTP連接,向客戶端發(fā)送數(shù)據(jù)。在嵌入式Linux平臺上實現(xiàn)客戶端接收媒體流數(shù)據(jù)開發(fā)步驟如下:①通過createNew函數(shù)初始化任務(wù)管理的一個對象TaskScheduler,統(tǒng)一管理事件循環(huán)和異步事件的處理。②客戶端給服務(wù)器發(fā)送OPTION,DESCRIBE請求。③創(chuàng)建子任務(wù)隊列,并為每個子任務(wù)創(chuàng)建一個RTPSource對象。④通過setupStreams函數(shù)為每個子任務(wù)向服務(wù)器發(fā)送SETUP請求。⑤為每個子任務(wù)創(chuàng)建一個文件接收器,可以保存接收到的數(shù)據(jù),也可以不保存,直接播放。⑥通過startPlayingStreams函數(shù),發(fā)送PLAY命令,開始播放媒體流,并通過doEventLoop()進入事件循環(huán),連續(xù)播放。3.2sc婦人系統(tǒng)的軟件設(shè)計本系統(tǒng)的開發(fā)和調(diào)試環(huán)境如下:硬件環(huán)境:基于IntelXscale嵌入式處理器的硬件系統(tǒng)。軟件環(huán)境:①Montavista嵌入式Linux平臺。②LiveNetworks公司的開源Live庫。③開源ffmpeg系列編解碼庫。3.3網(wǎng)絡(luò)級調(diào)試在系統(tǒng)開發(fā)過程中,主要采用分塊調(diào)試的方法。整個視頻點播系統(tǒng)可分為網(wǎng)絡(luò)和本地解碼顯示兩大模塊。其中網(wǎng)絡(luò)級調(diào)試采取單級調(diào)試和聯(lián)調(diào)的方法??蛻舳送ㄟ^抓網(wǎng)絡(luò)數(shù)據(jù)包的方式調(diào)試,等發(fā)送數(shù)據(jù)報正確后,再與服務(wù)器聯(lián)調(diào),也是通過抓包方式調(diào)試。網(wǎng)絡(luò)級測試通過后,即可進行本地解碼模塊的調(diào)試。本地解碼后,采用直接寫屏的方式顯示視頻數(shù)據(jù)。因此顯示部分可以根據(jù)顯示效果,遇到問題逐個往前查找原因。3.4視頻節(jié)目的正常觀看在調(diào)試過程中,曾遇到丟包

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論