亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        RTP/RTCP,RTSP在無線視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)

        2011-06-07 05:53:56李校林劉海波劉利權
        電視技術 2011年19期
        關鍵詞:服務器端數(shù)據(jù)包客戶端

        李校林,劉海波,張 杰,劉利權

        (1.重慶郵電大學 通信新技術應用研究所,重慶 400065;2.重慶信科設計有限公司,重慶 400065)

        0 引言

        無線視頻監(jiān)控系統(tǒng)是以流媒體技術為核心,融合智能傳感器、3G網(wǎng)絡、計算機智能等技術為一體的新型視頻監(jiān)控系統(tǒng)。流媒體技術是指視頻、音頻等數(shù)據(jù)以實時傳輸協(xié)議RTP承載,并以連續(xù)的流形式從源端向目的端傳輸,在目的端接收到一定緩存數(shù)據(jù)后就可以播放出來的多媒體應用。把流媒體技術應用到移動網(wǎng)絡上,就可以稱之為移動流媒體技術。隨著近幾年我國3G網(wǎng)絡的大規(guī)模商用,3G帶來的最直接變化就是移動網(wǎng)絡帶寬不再是視頻業(yè)務發(fā)展的瓶頸。移動流媒體技術在無線網(wǎng)絡中也有了巨大的突破,無線視頻監(jiān)控系統(tǒng)已經(jīng)成為可能。

        本文首先分析了RTP/RTCP[1],RTSP流媒體協(xié)議的基本概念和原理,然后重點研究了RTP/RTSP功能模塊及RTCP傳輸控制模塊的設計和具體實現(xiàn)方法。

        1 協(xié)議介紹

        1.1 流媒體協(xié)議

        流媒體協(xié)議中的RTP主要完成實時視頻數(shù)據(jù)流的傳輸,RTP協(xié)議承載視頻數(shù)據(jù)傳輸任務,但它本身不提供QoS,而需要RTCP協(xié)議為應用層提供視頻質量控制的手段和方法。RTP數(shù)據(jù)包主要在用戶數(shù)據(jù)報協(xié)議(UDP協(xié)議)上傳送數(shù)據(jù)。RTP和RTCP協(xié)同使用,通過實時的反饋和調整使得網(wǎng)絡傳輸效果達到最好,即RTP/RTCP協(xié)議適合用于傳輸實時視頻數(shù)據(jù)流。而控制這些RTP數(shù)據(jù)包的發(fā)送則通過RTSP協(xié)議來完成。

        1.2 實時傳輸協(xié)議(RTP)[2]

        RTP(Real-time Transport Protocol)協(xié)議能夠給具有實時性的視頻、音頻等流媒體數(shù)據(jù)提供端到端的傳輸。RTP協(xié)議把RTP頭加上H.264視頻的RTP負載,并把時間戳和序列號等參數(shù)寫到RTP數(shù)據(jù)包內通過UDP組播方式發(fā)送出去。由于采用UDP協(xié)議發(fā)送數(shù)據(jù)包,所以每次發(fā)送的RTP數(shù)據(jù)包大小不得超過1 460 byte。不同的發(fā)送端和接收端可以通過RTP中的SSRC來標識,RTP又可以利用UDP的組播來支持多點傳送,使得RTP可以使用在多站點應用中。

        1.3 實時傳輸控制協(xié)議(RTCP)

        RTCP(Real-time Transport Control Protocol)[3]與 RTP一起使用可以完成網(wǎng)絡流量控制和擁塞控制。RTCP的主要工作是質量反饋,即通過統(tǒng)計網(wǎng)絡質量參數(shù),然后把網(wǎng)絡狀況反饋給發(fā)送端,發(fā)送端根據(jù)這些參數(shù)作出相應的調整,以適應網(wǎng)絡狀況。RTCP包的發(fā)送和接收的方式與RTP包的方式一樣,也是通過UDP來完成。在RTCP數(shù)據(jù)包中,包含網(wǎng)絡質量的參數(shù)有間隔抖動、包丟失率、往返延遲等,通過RTCP中的RR包將這些參數(shù)反饋給發(fā)送端,從而分析得到當前的網(wǎng)絡狀態(tài),使其作出相應的碼率或甚至編碼方式的調整。

        1.4 實時流協(xié)議(RTSP)[4]

        RTSP(Real-time Streaming Protocol,簡稱 RTSP)作為實時流媒體傳輸中的控制協(xié)議,負責控制實時數(shù)據(jù)RTP包的發(fā)送。RTSP協(xié)議可以控制多個數(shù)據(jù)源連接和發(fā)送,它本身并不發(fā)送數(shù)據(jù)流,RTSP充當流媒體服務器端和客戶端的網(wǎng)絡遠程控制。RTSP可以對流媒體提供播放、暫停、快進、慢退等操作,主要負責定義具體的控制消息。

        1.5 RTP/RTCP,RTSP協(xié)議關系圖

        RTP/RTCP,RTSP協(xié)議關系圖見圖1。其中,RTP/RTCP工作在傳輸層,RTSP工作在應用層。RTP主要承擔數(shù)據(jù)傳輸任務,而RTCP為應用層提供視頻質量控制的手段和方法。RTSP控制RTP數(shù)據(jù)包的發(fā)送。

        圖1 RTP/RTCP,RTSP協(xié)議關系圖

        2 RTP/RTCP,RTSP功能模塊設計

        2.1 監(jiān)控系統(tǒng)結構圖

        該系統(tǒng)分為服務器端和客戶端,此系統(tǒng)有視頻流和控制信號兩條通道,根據(jù)監(jiān)控系統(tǒng)的功能需求,深入研究了移動流媒體技術,給出監(jiān)控系統(tǒng)結構圖,如圖2所示。

        圖2 監(jiān)控系統(tǒng)結構圖

        分析監(jiān)控系統(tǒng)結構圖,視頻流主要依靠RTP承擔傳輸H.264的壓縮數(shù)據(jù),即H.264視頻的RTP負載格式(RTP for H.264),控制信號則靠RTSP完成交互任務。將設計重點放在兩個方面上,一是RTP/RTSP功能模塊即客戶端與服務器端的交互過程,二是RTP發(fā)送過程及RTCP傳輸控制處理過程。

        2.2 RTP/RTSP 功能模塊[5]流程

        本文設計了一個C/S結構的基于RTSP協(xié)議的視頻服務器。下面給出了具體的服務器端的應答處理過程以及客戶端的請求過程。

        2.2.1 服務器端應答過程

        服務器端RTSP請求處理過程見圖3。

        圖3 RTSP請求處理過程

        服務器交互過程如下:

        1)服務器端創(chuàng)建,監(jiān)聽線程開啟,等待客戶端連接;當客戶端請求RTSP連接,會創(chuàng)建一個RTSP會話,保存此客戶信息。

        2)媒體資源服務器收到請求后,如果能正確建立連接,則返回一個獨立的會話序列號,同時服務器開啟新的線程,為該客戶建立一個新的視頻服務流,客戶端需要使用此序列號與服務器端進行進一步的通信,省去中間過程,當客戶端向服務端發(fā)送play請求,請求成功,則客戶變成play狀態(tài);回應ACK。并發(fā)過程為:編碼后啟動RTSP服務,當客戶狀態(tài)是play,則向對應的客戶端發(fā)送RTP,RTCP包。

        3)當客戶端向服務端發(fā)送pause請求,請求成功,則客戶變成pause狀態(tài);回應ACK。并發(fā)過程為:編碼后啟動RTSP服務,當客戶狀態(tài)是pause,則向對應的客戶端暫停發(fā)送RTP,RTCP包。

        4)當客戶端向服務端發(fā)送TEARDOWN請求,請求成功,則刪除對應客戶的信息;回應ACK。

        5)撤銷RTSP會話。

        2.2.2 客戶端請求過程

        客戶端RTSP請求過程如圖4所示。

        客戶端交互過程為:

        圖4 RTSP請求過程

        1)請求得到回應后,創(chuàng)建一個服務信息,同時創(chuàng)建一個并發(fā)過程即RTP包接收過程,等待接收服務器發(fā)送的RTP包,將RTP包放入buffer中待解碼。

        2)當播發(fā)請求發(fā)送時,服務器端開始發(fā)送RTP數(shù)據(jù)包,RTP包接收線程被啟動,開始接收RTP數(shù)據(jù)包。

        3)當暫停請求發(fā)送時,服務器端暫停發(fā)送RTP數(shù)據(jù)包,RTP包接收線程被睡眠,暫停接收RTP數(shù)據(jù)包。

        4)當斷開連接請求發(fā)送成功并得到回應時,則刪除服務信息,并刪除并發(fā)過程。

        2.3 RTP發(fā)送過程及RTCP傳輸控制處理過程[6]

        首先,在服務器端經(jīng)過數(shù)據(jù)采集得到的視頻流進入編碼器編碼壓縮成H.264碼流,然后,把視頻流封裝成H.264視頻的RTP負載格式,并把時間戳和序列號等參數(shù)寫到RTP數(shù)據(jù)包內,再放到RTP包緩沖區(qū),交給下層UDP處理,UDP再對RTP包進行封裝,UDP和RTP共同完成傳輸層協(xié)議的任務,UDP包交給IP網(wǎng)絡層處理,IP網(wǎng)絡層對UDP包再封裝,最后IP數(shù)據(jù)包經(jīng)由網(wǎng)絡向接收端發(fā)送。在客戶端接收到RTP包,再進行RTP包頭處理,去除RTP頭,把RTP負載放入包列表中,排序并判斷是否為一幀,為一幀則解碼、顯示。在同時服務器端周期性的發(fā)送RTCP(SR)包,接收RTCP(RR)包,客戶端則接收RTCP(SR),反饋RTCP(RR),服務器端根據(jù)RR包中的丟包率以了解當前網(wǎng)絡狀況,動態(tài)調整流媒體編碼速率,從而進一步調整RTP發(fā)送速率。服務器端與客戶端的傳輸控制過程見圖5。

        圖5 服務器端與客戶端的傳輸控制過程

        在服務器端進行擁塞控制,除了動態(tài)改變發(fā)送速率,還有就是對發(fā)送buffer進行處理,被動丟棄buffer中過期的RTP包,buffer大小設定為60×1 024 byte,當buffer中滿1460 byte時,組成1個RTP包,并添上時間標簽。因為網(wǎng)絡擁塞,那么此buffer中的RTP包可能有一定的發(fā)送時延,如果當此RTP包的時間標簽加上發(fā)送時延大于當前的時間標簽,則判斷此RTP包失去實時性,考慮丟棄此包,以此來降低網(wǎng)絡擁塞。

        3 RTSP,RTP/RTCP服務器端的實現(xiàn)

        首先創(chuàng)建RTSP服務器,在創(chuàng)建過程中,先建立套接字Socket在TCP的554端口進行監(jiān)聽,然后把連接處理函數(shù)句柄和Socket句柄傳給任務調度器。當RTSP客戶端輸入URL連接服務器時,select返回對應的Socket,進而根據(jù)前面保存的對應關系,可找到對應處理函數(shù)句柄。RTSP服務器收到客戶端的DESCRIBE請求后,根據(jù)請求URL,找到對應的流媒體資源,返回響應消息。RTSPCSession類用于處理單獨的客戶會話,其類成員函數(shù)handle_SETUP()處理客戶端的SETUP請求。對SETUP請求的傳輸頭解析,獲取流媒體發(fā)送傳輸參數(shù)。將這些參數(shù)組裝成響應消息,返回給客戶端。RTSPCSession類成員函數(shù)handle_PLAY()處理客戶端的播放請求。

        播放請求成功后發(fā)送端開始發(fā)送RTP包,首先是設置RTP包頭,再填充H.264編碼幀數(shù)據(jù),最后就發(fā)送RTP數(shù)據(jù)包[7]。然后是計算下一個數(shù)據(jù)包發(fā)送時間,把句柄傳給任務調度器,作為一個延時事件調度。在主循環(huán)中,當任務調度器被調度時,又開始組包然后發(fā)送新的數(shù)據(jù)包,這樣客戶端可以源源不斷地收到服務器傳來的RTP包了。在發(fā)送RTP包時,同時發(fā)送RTCP(SR)包,其就是根據(jù)收到客戶端發(fā)送過來的RTCP(RR)包,提取其中的內容組成RTCP(SR)包,然后根據(jù)時間調度發(fā)送SR包。

        下面列出部分函數(shù):

        在客戶端請求視頻播放效果圖如圖6所示。

        4 小結

        運行客戶端程序,在客戶端通過RTSP請求服務器端的視頻,請求成功后,服務端開始發(fā)送視頻流,在客戶端穩(wěn)定接收碼流,在視頻顯示區(qū)播放比較流暢,圖像清晰。

        圖6 視頻播放效果圖(截圖)

        [1]潘鵬,杜旭,葉婷,等.RTP/RTCP實時傳輸協(xié)議的研究與Linux實現(xiàn)[J]. 計算機工程與應用,2005,24:105-107.

        [2]RFC 3550,RTP:a transport protocol for real-time application[S].2003.

        [3]王彥麗,陳明,陳華,等.基于RTP/RTCP的數(shù)字視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J]. 計算機工程與科學,2009,31(3):58-60.

        [4]SCHULZRINNE H,RAO A,LANPHIER R.RFC 2326,Real time streaming protocol[S].1998.

        [5]章民融,徐亞峰.基于RTSP的流媒體視頻服務器的設計與實現(xiàn)[J].計算機應用與軟件,2006,23(7):93-95.

        [6]劉國柱,王洪林.RTCP反饋和緩沖區(qū)的傳輸控制算法研究[J].計算機工程與設計,2010,31(12):2704.

        [7]王軍,呂海寶,許國梁.基于RTP/RTCP的遠程視頻傳輸軟件的設計[J]. 電視技術,2002,26(12):19-21.

        猜你喜歡
        服務器端數(shù)據(jù)包客戶端
        SmartSniff
        縣級臺在突發(fā)事件報道中如何應用手機客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        淺析異步通信層的架構在ASP.NET 程序中的應用
        成功(2018年10期)2018-03-26 02:56:14
        在Windows中安裝OpenVPN
        基于Libpcap的網(wǎng)絡數(shù)據(jù)包捕獲器的設計與實現(xiàn)
        視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
        客戶端空間數(shù)據(jù)緩存策略
        網(wǎng)頁防篡改中分布式文件同步復制系統(tǒng)
        国产精品麻豆成人av电影艾秋| 日本人妻精品有码字幕| 性欧美丰满熟妇xxxx性久久久| 国产国拍亚洲精品mv在线观看| 国产精品第1页在线观看| 成人国产一区二区三区精品不卡| 国产精品亚洲一区二区三区在线| 欧美日韩精品一区二区视频| 亚洲人成绝费网站色www| 亚洲欧洲日韩另类自拍| 国产视频一区二区三区久久亚洲| 免费人成在线观看视频高潮| 欧洲成人午夜精品无码区久久| 中文字幕久久久人妻无码| 日韩日本国产一区二区| 老太婆性杂交视频| 日本高清色倩视频在线观看 | 久久成人国产精品免费软件| 波多野结衣一区| 手机在线免费看av网站| 所有视频在线观看免费| 国产精品自在线拍国产手机版| 在线视频一区二区日韩国产| 国产av三级精品车模| 国产精品国产亚洲精品看不卡| 国产成人精品av| 亚洲国产AⅤ精品一区二区不卡| av免费网站免费久久网| 2020无码专区人妻系列日韩| 伊人久久网国产伊人| 亚洲中文字幕高清视频| 亚洲最大免费福利视频网| 思思久久96热在精品国产| 亚洲熟女av超清一区二区三区| 天涯成人国产亚洲精品一区av| 亚洲无线码一区二区三区| 亚洲中文无码成人影院在线播放| 一本久久a久久精品综合| 国产丝袜美腿精品91在线看| 久久久精品人妻一区二区三区四| 日韩AV无码中文无码AV|