




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
rsp視頻點(diǎn)播系統(tǒng)的服務(wù)器和客戶端設(shè)計(jì)
隨著計(jì)算機(jī)和計(jì)算機(jī)的快速發(fā)展,以及5g等高速移動(dòng)通信技術(shù)的逐步成熟,尤其是高速訪問網(wǎng)絡(luò)、高速網(wǎng)站和寬帶結(jié)構(gòu)網(wǎng)絡(luò)等先進(jìn)網(wǎng)絡(luò)技術(shù)的出現(xiàn),多媒體通信技術(shù)的網(wǎng)絡(luò)應(yīng)用得到了迅速發(fā)展。在基于Internet的計(jì)算機(jī)網(wǎng)絡(luò)上,流媒體技術(shù)越來越廣泛地應(yīng)用于視頻點(diǎn)播系統(tǒng)。而基于RTSP協(xié)議的視頻點(diǎn)播系統(tǒng)已被廣泛應(yīng)用到視頻點(diǎn)播,視頻會(huì)議,遠(yuǎn)程教育等許多領(lǐng)域。視頻點(diǎn)播系統(tǒng)一般分為文件共享方式、下載方式、流媒體傳輸方式三種系統(tǒng)。文件共享方式和下載方式是通過共享媒體文件和下載媒體文件等獲取數(shù)據(jù),屬于非流式系統(tǒng)。使用流式傳輸技術(shù)的連續(xù)時(shí)基媒體,如音頻、視頻或多媒體文件,其核心部分是傳輸協(xié)議和文件格式。流式傳輸?shù)膶?shí)現(xiàn)有特定的實(shí)時(shí)傳輸協(xié)議,其中包括Internet本身的多媒體傳輸協(xié)議,以及一些實(shí)時(shí)流式傳輸協(xié)議等。通常,需要根據(jù)實(shí)際情況選取合適的實(shí)時(shí)傳輸協(xié)議以保證流媒體的傳輸質(zhì)量,從而更好地發(fā)揮流媒體的作用。1rtps協(xié)議體系1.1rtsp的數(shù)字視頻傳輸協(xié)議實(shí)時(shí)流協(xié)議(Real-TimeStreamingProtocol,RTSP)是由RealNetworks和Netscape共同提出的,該協(xié)議定義了一對(duì)多的應(yīng)用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)的方法。RTSP在體系結(jié)構(gòu)上位于實(shí)時(shí)傳輸協(xié)議(ATransportProtocolforReal-TimeApplications,RTP)和實(shí)時(shí)傳輸控制協(xié)議(RealTimeControlProtocol,RTCP)之上,它使用TCP或UDP完成數(shù)據(jù)傳輸。RTSP是一個(gè)客戶-服務(wù)器多媒體節(jié)目協(xié)議,用于建立并控制一個(gè)或幾個(gè)時(shí)間同步的連續(xù)視頻、音頻流的連接。盡管用RTSP交叉?zhèn)鬏斶B續(xù)媒體流和控制流是可能的,但通常它用來控制流式多媒體數(shù)據(jù)在IP網(wǎng)絡(luò)上的發(fā)送,而并不用于連續(xù)媒體流的傳輸。它提供用于音頻和視頻流的遠(yuǎn)程控制功能,例如:播放、暫停、關(guān)閉等。RTSP是一個(gè)應(yīng)用層協(xié)議,用來與RTP、RTCP等更低層的協(xié)議一起,提供基于Internet的整套流化服務(wù)。它可以選擇發(fā)送通道(例如:UDP、組播UDP和TCP)和基于RTP的發(fā)送機(jī)制。1.2rtsp協(xié)議RTSP協(xié)議位于RTP和RTCP之上,它使用TCP或UDP完成數(shù)據(jù)傳輸,其體系結(jié)構(gòu)如圖1所示。目前,支持基于IP的流媒體網(wǎng)絡(luò)協(xié)議主要有實(shí)時(shí)傳輸協(xié)議RTP、實(shí)時(shí)傳輸控制協(xié)議RTCP、實(shí)時(shí)流協(xié)議RTSP、資源預(yù)留協(xié)議(ResourceReservationProtocol,RSVP)和會(huì)話描述協(xié)議(SessionDescriptionProtocol,SDP)。RTSP協(xié)議主要用于媒體播放客戶端和媒體服務(wù)器之間的網(wǎng)絡(luò)遠(yuǎn)程控制。RTSP可以使用TCP連接協(xié)議也可以使用UDP連接協(xié)議,主要根據(jù)傳輸?shù)臄?shù)據(jù)類型來決定。RTSP提供了一個(gè)可擴(kuò)展框架,使實(shí)時(shí)數(shù)據(jù),如音頻與視頻的受控點(diǎn)播成為可能。1.3狀態(tài)行下的支持功能RTSP中的所有操作都是通過服務(wù)器和客戶端的消息應(yīng)答來完成的,其消息包括請(qǐng)求和應(yīng)答兩類.請(qǐng)求消息的格式如圖2。請(qǐng)求消息由請(qǐng)求行、標(biāo)題行中的各種標(biāo)題域和主體實(shí)體組成。請(qǐng)求行和標(biāo)題行由ASCII字符組成。圖2中的sp域、cr域和lf域分別代表空格字符、回車字符和換行字符。其中的method表示請(qǐng)求命令,主要有以下幾種命令。OPTIONS:客戶端或服務(wù)器端通知另一方自己能接受的選項(xiàng);DESCRIBE:客戶端通過向服務(wù)器發(fā)送請(qǐng)求URL,接受指定的節(jié)目描述或媒體對(duì)象;SETUP:讓服務(wù)器給流分配資源,啟動(dòng)RTSP連接;PLAY:啟動(dòng)SETUP分配流的數(shù)據(jù)傳輸;TEARDOWN:釋放流的資源,RTSP連接停止。除了狀態(tài)行之外,RTSP應(yīng)答消息格式與請(qǐng)求消息的格式相同。狀態(tài)行包含RTSP的版本號(hào),狀態(tài)碼<statuscode>和短語<phrase>,它們組合起來表示客戶請(qǐng)求所獲得的結(jié)果。RTSP客戶機(jī)和服務(wù)器之間的協(xié)議交互開始于OPTION請(qǐng)求/應(yīng)答,然后客戶機(jī)為它感興趣的媒體流發(fā)送一個(gè)DESCRIBE請(qǐng)求。從服務(wù)器返回的應(yīng)答消息可獲得關(guān)于這個(gè)流的具體信息,比如編碼方式等。然后客戶端發(fā)送一個(gè)SETUP請(qǐng)求,其中包括協(xié)議集和端口號(hào),客戶端通過這些協(xié)議集和端口來接收媒體流,服務(wù)器把選中的協(xié)議和端口應(yīng)答給客戶端??蛻舳嗽侔l(fā)送PLAY命令告知服務(wù)器通過先前商定的協(xié)議來傳輸數(shù)據(jù),還可以發(fā)送PAUSE來臨時(shí)暫停傳送,發(fā)送TEARDOWN表示結(jié)束會(huì)話。整個(gè)交互過程如圖3所示。2rtbs協(xié)議流暢系統(tǒng)2.1流媒體金屬點(diǎn)火系統(tǒng)流媒體視頻點(diǎn)播系統(tǒng)是一種為用戶提供實(shí)時(shí)視頻點(diǎn)播服務(wù)的分布式多媒體系統(tǒng),它一般由媒體點(diǎn)播服務(wù)器、通信網(wǎng)絡(luò)和用戶端前設(shè)備(客戶)組成.流媒體點(diǎn)播系統(tǒng)的功能示意如圖4所示。2.2流媒體服務(wù)的上傳機(jī)制流媒體在播放前不是完全下載整個(gè)文件,而是把開始部分內(nèi)容存入內(nèi)存,數(shù)據(jù)流是隨時(shí)傳送隨時(shí)播放。當(dāng)服務(wù)器收到RTSP請(qǐng)求,它首先產(chǎn)生RTSP請(qǐng)求對(duì)象。服務(wù)器通過RTSP協(xié)議的應(yīng)答信息將請(qǐng)求的內(nèi)容以流會(huì)話的形式描述,一個(gè)流會(huì)話由一個(gè)或多個(gè)數(shù)據(jù)流組成,如視頻流和音頻流等。實(shí)際的數(shù)據(jù)流通過RTP協(xié)議傳遞到客戶端。RTP在一對(duì)一或一對(duì)多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現(xiàn)流同步。RTP本身并不能為順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,它依靠RTCP一起提供流量控制和擁塞控制服務(wù)。在RTP會(huì)話期間,各連接者監(jiān)視下層網(wǎng)絡(luò)的性能,并將相關(guān)信息放入RTCP包,周期性地傳送RTCP包來通知發(fā)送方。發(fā)送方也可以用RTCP包提供每次的會(huì)話信息,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計(jì)資料。因此,服務(wù)器可以利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,因有效的反饋和最小的開銷使傳輸效率實(shí)現(xiàn)最佳化。所有的客戶連接請(qǐng)求都是以TCP的端口獲得的,流媒體數(shù)據(jù)也都是打成RTP包,通過UDP端口發(fā)出去的,因此,對(duì)于TCP、UDP端口事件的調(diào)度以及如何把大量的流媒體數(shù)據(jù)從磁盤空間傳遞到網(wǎng)絡(luò)上成為制約流媒體服務(wù)器性能的主要因素。流媒體服務(wù)器面對(duì)一個(gè)單一的客戶,完成的過程如下:①在客戶端發(fā)出RTSP連接請(qǐng)求后,服務(wù)器通過對(duì)TCP端口的監(jiān)聽,讀入請(qǐng)求。②解析請(qǐng)求內(nèi)容,調(diào)入相應(yīng)的流媒體文件。③形成RTP包,分發(fā)數(shù)據(jù)流包,獲得RTCP包。④數(shù)據(jù)包發(fā)送完畢,關(guān)閉連接。在傳輸過程中,主要采取的方式是RTPoverTCP或RTPoverUDP,因此,在RTP端口之外,還存在一個(gè)回傳端口RTCP。在服務(wù)器收到客戶端的RTCP回傳信息后,需要對(duì)其進(jìn)行判斷。如果客戶端的丟包率、解碼率等指標(biāo)在一定限度之下,就認(rèn)為目前傳送的視頻文件可令客戶端獲得最大程度的音視頻享受;否則,考慮改為傳輸更低碼率的視頻文件或放棄這次RTSP會(huì)話,以避免更大范圍的擁塞。2.3實(shí)時(shí)視頻發(fā)布如圖4,客戶端主要通過與服務(wù)器建立連接,用RTP協(xié)議接收媒體數(shù)據(jù)流,并在本地進(jìn)行實(shí)時(shí)播放,同時(shí)反饋給服務(wù)器相關(guān)的信息。主要完成的過程如下:①在客戶端發(fā)出RTSP連接請(qǐng)求。②接收服務(wù)器發(fā)送過來的RTP包,并進(jìn)行音視頻數(shù)據(jù)分離、解碼、播放,同時(shí)發(fā)送RTCP包。③數(shù)據(jù)包接收完畢,關(guān)閉連接。3rtbs協(xié)議的交付系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1客戶端接收媒體流算法設(shè)計(jì)目前RTSP協(xié)議的實(shí)現(xiàn)方式很多,下面以一個(gè)開源代碼實(shí)現(xiàn)的基于RTP/RTCP/RTSP的標(biāo)準(zhǔn)流媒體協(xié)議庫(kù)live為例,對(duì)在嵌入式Linux平臺(tái)上,開發(fā)實(shí)現(xiàn)低成本的流媒體點(diǎn)播系統(tǒng)進(jìn)行介紹。本實(shí)例提供了一個(gè)C/S結(jié)構(gòu)的軟件開發(fā)流程,服務(wù)器發(fā)送媒體流數(shù)據(jù),客戶端接收媒體流數(shù)據(jù),進(jìn)行本地的播放輸出,并可以進(jìn)行暫停,播放等操作的遠(yuǎn)程控制。在嵌入式Linux平臺(tái)上實(shí)現(xiàn)服務(wù)器廣播媒體流數(shù)據(jù)開發(fā)步驟如下:①通過createNew函數(shù)初始化任務(wù)管理的一個(gè)對(duì)象TaskScheduler,統(tǒng)一管理事件循環(huán)和異步事件的處理。②創(chuàng)建一個(gè)RTSPServer對(duì)象,為RTSP協(xié)議的操作和管理提供統(tǒng)一的接口。主要包括RTSP服務(wù)器要處理的每個(gè)客戶端任務(wù)的狀態(tài),以及各類命令解析函數(shù)(包括handleCmd_OPTIONS,handleCmd_DESCRIBE,handleCmd_SETUP,handleCmd_PLAY,handleCmd_TEARDOWN,handleCmd_PAUSE等)。③創(chuàng)建一個(gè)服務(wù)器任務(wù)ServerMediaSession,加入一個(gè)所要廣播的子任務(wù),可供客戶端點(diǎn)播。④通過doEventLoop()函數(shù)進(jìn)入事件循環(huán),等待網(wǎng)絡(luò)數(shù)據(jù),如果有RTSP客戶端請(qǐng)求,則接收,解析相應(yīng)的命令,并對(duì)不同的命令做不同的處理,主要有SETUP、PLAY、PAUSE等操作。如果是播放命令,則通過調(diào)用subsession->startStream()函數(shù)建立RTP連接,向客戶端發(fā)送數(shù)據(jù)。在嵌入式Linux平臺(tái)上實(shí)現(xiàn)客戶端接收媒體流數(shù)據(jù)開發(fā)步驟如下:①通過createNew函數(shù)初始化任務(wù)管理的一個(gè)對(duì)象TaskScheduler,統(tǒng)一管理事件循環(huán)和異步事件的處理。②客戶端給服務(wù)器發(fā)送OPTION,DESCRIBE請(qǐng)求。③創(chuàng)建子任務(wù)隊(duì)列,并為每個(gè)子任務(wù)創(chuàng)建一個(gè)RTPSource對(duì)象。④通過setupStreams函數(shù)為每個(gè)子任務(wù)向服務(wù)器發(fā)送SETUP請(qǐng)求。⑤為每個(gè)子任務(wù)創(chuàng)建一個(gè)文件接收器,可以保存接收到的數(shù)據(jù),也可以不保存,直接播放。⑥通過startPlayingStreams函數(shù),發(fā)送PLAY命令,開始播放媒體流,并通過doEventLoop()進(jìn)入事件循環(huán),連續(xù)播放。3.2sc婦人系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的開發(fā)和調(diào)試環(huán)境如下:硬件環(huán)境:基于IntelXscale嵌入式處理器的硬件系統(tǒng)。軟件環(huán)境:①M(fèi)ontavista嵌入式Linux平臺(tái)。②LiveNetworks公司的開源Live庫(kù)。③開源ffmpeg系列編解碼庫(kù)。3.3網(wǎng)絡(luò)級(jí)調(diào)試在系統(tǒng)開發(fā)過程中,主要采用分塊調(diào)試的方法。整個(gè)視頻點(diǎn)播系統(tǒng)可分為網(wǎng)絡(luò)和本地解碼顯示兩大模塊。其中網(wǎng)絡(luò)級(jí)調(diào)試采取單級(jí)調(diào)試和聯(lián)調(diào)的方法??蛻舳送ㄟ^抓網(wǎng)絡(luò)數(shù)據(jù)包的方式調(diào)試,等發(fā)送數(shù)據(jù)報(bào)正確后,再與服務(wù)器聯(lián)調(diào),也是通過抓包方式調(diào)試。網(wǎng)絡(luò)級(jí)測(cè)試通過后,即可進(jìn)行本地解碼模塊的調(diào)試。本地解碼后,采用直接寫屏的方式顯示視頻數(shù)據(jù)。因此顯示部分可以根據(jù)顯示效果,遇到問題逐個(gè)往前查找原因。3.4視頻節(jié)目的正常觀看在調(diào)試過程中,曾遇到丟包
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年八年級(jí)地理上冊(cè) 1.1疆域教學(xué)實(shí)錄1 (新版)新人教版
- 2023六年級(jí)英語上冊(cè) Unit 3 Holiday fun第3課時(shí)教學(xué)實(shí)錄 牛津譯林版
- 2025年高速救助艇合作協(xié)議書
- 班主任的學(xué)習(xí)交流與分享計(jì)劃
- Unit7 Natural World(教學(xué)設(shè)計(jì))-2023-2024學(xué)年劍橋國(guó)際少兒英語Kid's Box5五年級(jí)下冊(cè)
- 如何提高班級(jí)的學(xué)習(xí)效率計(jì)劃
- 小班美術(shù)活動(dòng)與作品展示計(jì)劃
- 一年級(jí)下數(shù)學(xué)教案-前和后-西師大版
- 提升倉(cāng)庫(kù)管理透明度計(jì)劃
- 學(xué)生學(xué)業(yè)指導(dǎo)方案計(jì)劃
- 2023-2024學(xué)年山東省淄博市高青縣七年級(jí)下學(xué)期期中考試英語試題 (含答案)
- 各國(guó)鋼材牌號(hào)對(duì)照大全
- 標(biāo)準(zhǔn)化班組建設(shè)演示幻燈片
- 環(huán)境及理化因素?fù)p傷課件
- 房樹人的內(nèi)容分析 房樹人分析
- 開題報(bào)告-基于PLC的智能倉(cāng)庫(kù)系統(tǒng)設(shè)計(jì)
- 2023年小學(xué)五年級(jí)下語文七彩全冊(cè)試卷
- 人口社會(huì)學(xué)PPT完整全套教學(xué)課件
- 關(guān)于補(bǔ)辦退伍證的申請(qǐng)
- 休克病人的麻醉處理
- 2023年華中師大一附中高中招生考試?yán)砜凭C合測(cè)試物理題附答案
評(píng)論
0/150
提交評(píng)論