《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TMS320DM8168的RTSP服務(wù)器系統(tǒng)設(shè)計及實(shí)現(xiàn)
基于TMS320DM8168的RTSP服務(wù)器系統(tǒng)設(shè)計及實(shí)現(xiàn)
電子技術(shù)應(yīng)用2015年第12期
付 雄,卿粼波,何小海,尹 雷,白 勇
四川大學(xué) 電子信息學(xué)院圖像信息研究所,四川 成都610065
摘要: 基于TMS320DM8168嵌入式平臺實(shí)現(xiàn)了RTSP流媒體服務(wù)器的設(shè)計,詳細(xì)分析了TMS320DM8168的軟硬件架構(gòu)、RTSP服務(wù)器的工作原理以及實(shí)現(xiàn)過程。以TMS320DM8168為核心,首先將采集的實(shí)時視頻數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換、預(yù)處理、H.264編碼以及本地存儲,然后對H.264碼流進(jìn)行RTP封包,最后發(fā)送到網(wǎng)絡(luò)上進(jìn)行實(shí)時傳輸。經(jīng)測試,該系統(tǒng)能同時實(shí)現(xiàn)16路D1視頻的實(shí)時監(jiān)控并具有較好的實(shí)時性。
中圖分類號: TP393
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.003

中文引用格式: 付雄,卿粼波,何小海,等. 基于TMS320DM8168的RTSP服務(wù)器系統(tǒng)設(shè)計及實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(12):18-21.
英文引用格式: Fu Xiong,Qing Linbo,He Xiaohai,et al. The design and implementation of RTSP server system based on TMS320DM8168[J].Application of Electronic Technique,2015,41(12):18-21.
The design and implementation of RTSP server system based on TMS320DM8168
Fu Xiong,Qing Linbo,He Xiaohai,Yin Lei,Bai Yong
College of Electronics and Information Engineer,Image Information Institute,Sichuan University,Chengdu 610065,China
Abstract: A RTSP streaming media server based on TMS320DM8168 embedded platform is designed in this paper. The hardware and software of TMS320DM8168 are analyzed in detail,so as the working principle and process of implementation of RTSP server. As TMS320DM8168 as core, after the process of analog to digital conversion, pretreatment, H.264 encoding, and local storage, we package real-time video data encode by H.264 as RTP model. Finally, we send the data to the network for real-time transmission. The results of test have proved our system can perform well on 16 road D1 video monitoring in real-time.
Key words : streaming media;embedded platform;H.264 coding;real-time monitoring

    

0 引言

    隨著信息化科技、網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,流媒體技術(shù)已變得日趨成熟,在網(wǎng)絡(luò)數(shù)據(jù)傳輸中變得尤為重要,極大地方便了人們與外界的通信,成為了網(wǎng)絡(luò)應(yīng)用的重要發(fā)展方向。傳統(tǒng)的傳輸方式是通過網(wǎng)絡(luò)將視頻或者音頻下載到本地硬盤上,而且必須等下載完成后才能播放觀看,針對這種缺點(diǎn),提出了流媒體技術(shù)。流媒體技術(shù)涉及到視頻的采集、預(yù)處理、編碼、解碼、網(wǎng)絡(luò)傳輸?shù)榷喾矫?它將經(jīng)過壓縮編碼后的視頻放到網(wǎng)絡(luò)服務(wù)器上,使用戶可以直接通過網(wǎng)絡(luò)IP來實(shí)時觀看視頻,適用于遠(yuǎn)程視頻監(jiān)控、在線直播、實(shí)時視頻會議等場合。

    目前,國內(nèi)外對實(shí)時視頻監(jiān)控都進(jìn)行了深入研究,并在實(shí)際產(chǎn)品中進(jìn)行應(yīng)用,其技術(shù)方案越來越成熟。目前的主流監(jiān)控系統(tǒng),雖然都集成了網(wǎng)絡(luò)監(jiān)控和本地監(jiān)控功能,但由于受網(wǎng)絡(luò)帶寬的限制,每秒鐘只能傳輸有限的數(shù)據(jù)量,實(shí)時性較差,同時絕大多數(shù)系統(tǒng)都是在PC上實(shí)現(xiàn),只能滿足單路的視頻傳輸。通過對一些常用的應(yīng)用層協(xié)議(如RTSP、HTTP、SSDPD等)進(jìn)行統(tǒng)計分析[1],本文比較了在服務(wù)器高并發(fā)條件下這些協(xié)議在系統(tǒng)性能和穩(wěn)定性方面帶來的影響。文獻(xiàn)[2-3]比較了RTSP協(xié)議和HTTP協(xié)議在網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的性能,分析出RTSP協(xié)議在針對幀率和花屏方面的性能有很大幅度的提升,并具有較好的實(shí)時性。隨著嵌入式系統(tǒng)的快速發(fā)展,如何在嵌入式平臺上實(shí)現(xiàn)多路視頻實(shí)時監(jiān)控已成為非常熱門的研究方向。為此,本文設(shè)計了一套基于TMS320DM8168嵌入式平臺的RTSP服務(wù)器系統(tǒng),該系統(tǒng)能同時實(shí)現(xiàn)16路D1 30 Fps視頻的遠(yuǎn)程實(shí)時監(jiān)控并進(jìn)行本地存儲,解決了常見網(wǎng)絡(luò)監(jiān)控系統(tǒng)在監(jiān)控畫質(zhì)和視頻實(shí)時性方面的缺陷。經(jīng)測試,該系統(tǒng)實(shí)時性好、可靠性高,具有一定的應(yīng)用價值。

1 硬件平臺選擇

    本文選用TI公司推出的基于達(dá)芬奇架構(gòu)的TMS320DM8168作為硬件平臺,其總體架構(gòu)如圖1所示,它具有處理能力強(qiáng)和運(yùn)算速度快等特點(diǎn),能同時實(shí)現(xiàn)16路D1 30 Fps視頻的采集、編碼以及網(wǎng)絡(luò)傳輸,還支持3個60 幀/s的1080P通道,編解碼器時延低于50 ms,滿足本文多路視頻監(jiān)控的需求。

qrs1-t1.gif

1.1 TMS320DM8168芯片結(jié)構(gòu)

    TMS320DM8168內(nèi)部集成了ARM Cortex A8、DSP C674X+、M3 VIDEO、M3 VPSS 4個處理器。Cortex A8處理器作為系統(tǒng)的主控制器,時鐘頻率高達(dá)1.2 GHz,負(fù)責(zé)整個系統(tǒng)的運(yùn)行、控制外設(shè)管理,可運(yùn)行Linux、Android等操作系統(tǒng),適合用于多任務(wù)多線程的操作。C674X架構(gòu)的浮點(diǎn)型DSP處理器的最高時鐘頻率為1.0 GHz,主要運(yùn)行BIOS6實(shí)時系統(tǒng),用于對視頻圖像的處理。在視頻圖像方面,TMS320DM8168內(nèi)部集成了兩個Cortex M3處理器,其中VPSS Cortex M3處理器主要控制HDVPSS高清視頻處理子系統(tǒng),用來實(shí)現(xiàn)視頻的捕獲、去噪、縮放、顯示等功能。Video Cortex M3處理器主要控制3個HDVICP高清視頻圖像協(xié)處理器,用于對視頻圖像進(jìn)行編解碼,如H.264、MPEG4,還有兩個Video Port輸入和輸出端口,可配置成高清或者標(biāo)清模式,用于采集或輸出視頻。

1.2 多通道視頻處理框架

    由于TMS320DM8168是一款多核異構(gòu)的芯片,同時擁有4個核心處理器,如何控制4個核心處理器之間的協(xié)同工作成為了一個至關(guān)重要問題。對此,本系統(tǒng)采用了一套多處理器軟件編程框架——多通道視頻處理框架(Multi channel framework,MCFW)。MCFW針對視頻的采集、處理和顯示等,為開發(fā)者創(chuàng)建了一系列的處理節(jié)點(diǎn)(Link),屏蔽了底層硬件平臺的細(xì)節(jié),為上層的應(yīng)用程序開發(fā)提供了豐富的API接口[4]。Link是MCFW軟件框架中最基本的視頻數(shù)據(jù)流單元,每一個Link都是一個獨(dú)立的線程,各Link之間通過指針來實(shí)現(xiàn)數(shù)據(jù)流的相互傳遞,也可以并行執(zhí)行。對于每一個核心處理器,在它們內(nèi)部的數(shù)據(jù)處理都是由Link來實(shí)現(xiàn)的,典型的Link有視頻采集Link(Caputre Link)、去噪Link(Nfs Link)、編碼Link(Encoder Link)、解碼Link(Decoder Link)、顯示Link(Display Link)等,開發(fā)者可以直接利用MCFW中的Link建立需要的視頻鏈路(chain),無需去研究每一個link的具體實(shí)現(xiàn)過程。

2 RTSP協(xié)議分析

    RTSP(Real-Time Streaming Protocol[5])協(xié)議是由Real Networks和Netscape共同提出的一種客戶端到服務(wù)器端的多媒體描述協(xié)議,它是一個多媒體控制協(xié)議,能控制媒體流在IP網(wǎng)絡(luò)上的實(shí)時傳輸,同時提供視頻和音頻的遠(yuǎn)程控制,如快進(jìn)、后退、暫停/播放等。RTSP在體系結(jié)構(gòu)上位于實(shí)時傳輸協(xié)議(Real-time Transport Protocol,RTP)和實(shí)時傳輸控制協(xié)議(Real-time Transport Control Protocol,RTCP)之上,它使用TCP、UDP或RTP完成數(shù)據(jù)傳輸。其體系結(jié)構(gòu)圖如圖2所示。

qrs1-t2.gif

    根據(jù)RTSP協(xié)議的工作原理[6],RTSP服務(wù)器與客戶端通過會話交互的方式連接。在一次完整的交互過程中,首先,客戶端需要按順序依次向RTSP服務(wù)器發(fā)送OPTIONS、DESCRIBE、SETUP、PLAY命令請求消息,并從RTSP服務(wù)器得到反饋信息。然后,客戶端再對這些信息進(jìn)行分析并響應(yīng)。其中,OPTIONS命令目的是得到服務(wù)器提供的可用方法,DESCRIBE命令用于得到會話描述信息(SDP),SETUP命令提醒服務(wù)器建立會話并確定傳輸模式,PLAY命令告訴服務(wù)器開始在SETUP建立的流上傳輸數(shù)據(jù)。在播放過程中客戶端還可以發(fā)送可選命令對媒體流進(jìn)行控制,比如快進(jìn)、后退、暫停/播放等。最后,客戶端可發(fā)送TERADOWN命令請求關(guān)閉會話。

3 RTSP服務(wù)器系統(tǒng)實(shí)現(xiàn)

    本文軟件架構(gòu)的設(shè)計均在MCFW框架中實(shí)現(xiàn),按照不同的功能進(jìn)行劃分,系統(tǒng)主要分為視頻采集、視頻處理、視頻編碼、本地存儲以及RTSP服務(wù)器5個部分。

3.1 視頻采集處理和編碼設(shè)計

    本文通過MCFW中的Link搭建了一條數(shù)據(jù)鏈路來實(shí)現(xiàn)RTSP服務(wù)器前端的視頻采集、預(yù)處理以及視頻編碼。該數(shù)據(jù)鏈路能完成16路D1 30 Fps的視頻采集,通過配置TVP5158視頻解碼芯片的參數(shù),采集的模擬視頻數(shù)據(jù)經(jīng)過解碼芯片轉(zhuǎn)換成YUV格式數(shù)字視頻,同時傳遞給TMS320DM8168內(nèi)部的4個核心處理器分別進(jìn)行相應(yīng)處理,包括nfs(去噪)、dei(去隔行)、scalar(縮放)和encoder(編碼)等。視頻編碼采用H.264編碼,H.264是一種高性能的視頻編解碼技術(shù),在具有高壓縮比率的同時還能擁有高質(zhì)量流暢的圖像,并可以采用4種壓縮方式,分別是BP(基本畫質(zhì))、EP(進(jìn)階畫質(zhì))、MP(主流畫質(zhì))、HP(高級畫質(zhì))。H.264編碼完成后,由ARM Cortex A8處理器完成H.264視頻數(shù)據(jù)的本地存儲和網(wǎng)絡(luò)傳輸,本地存儲直接采用寫文件的形式,存儲在SATA硬盤中,具體的數(shù)據(jù)鏈路如圖3所示。

qrs1-t3.gif

3.2 RTSP服務(wù)器設(shè)計

    RTSP服務(wù)器主要實(shí)現(xiàn)從TMS320DM8168 Cortex A8端獲取編碼后的H.264碼流并進(jìn)行RTP封包發(fā)送[7]。當(dāng)接收到客戶端的連接請求時,RTSP服務(wù)器先完成與該客戶端的會話交互,然后把封裝好的RTP包發(fā)送給客戶端。根據(jù)RTSP協(xié)議的實(shí)現(xiàn)原理,RTSP服務(wù)器端主要由RTSP會話交互線程和碼流獲取線程組成。

3.2.1 RTSP會話交互線程

    RTSP會話交互線程主要負(fù)責(zé)RTSP服務(wù)器的創(chuàng)建、初始化、關(guān)閉以及與客戶端之間的消息應(yīng)答。首先進(jìn)行套接字創(chuàng)建,建立TCP socket,綁定服務(wù)器IP,用來傳送和接收消息,同時進(jìn)行RTSP端口監(jiān)聽和會話處理,并完成服務(wù)器與客戶端之間的消息交互。RTSP服務(wù)器的會話控制通過TCP連接,監(jiān)聽是否建立在TCP之上,使用RTSP的通用554端口號和listen()函數(shù)進(jìn)行監(jiān)聽,當(dāng)有客戶端發(fā)出與RTSP服務(wù)器進(jìn)行連接請求時,服務(wù)器能立刻監(jiān)測到,并與客戶端建立會話。

    會話成功建立后,RTSP服務(wù)器會依次接受到客戶端發(fā)送的會話命令,其中包含IP地址、端口號以及要獲取的碼流通道等信息,對這些信息進(jìn)行分析處理后,將該客戶端加入會話列表中,使能RTP發(fā)送狀態(tài)并繼續(xù)監(jiān)聽,查看是否有其他客戶端的連接請求并作類似處理,這樣便實(shí)現(xiàn)了一對多的并發(fā)功能。程序流程圖如圖4所示。

qrs1-t4.gif

3.2.2 碼流獲取線程

    碼流獲取線程主要實(shí)現(xiàn)H.264碼流的實(shí)時獲取、RTP封包及發(fā)送。如圖5所示,由于TMS320DM8168最多能同時支持16路視頻輸入,因此該線程包含了16個子線程,每一個子線程分別對應(yīng)TMS320DM8168的16路視頻通道號。首先,利用MCFW中的IpcBitsInLink_getFull-VideoBitStreamBufs()函數(shù)從TMS320DM8168 Cortex A8端獲取H.264視頻數(shù)據(jù),分析視頻數(shù)據(jù)的輸入通道號,并送入對應(yīng)的子線程,按照RTP封包策略進(jìn)行RTP封包。通過標(biāo)記正確的時間戳以及序列號等信息封裝成RTP數(shù)據(jù)包,然后判斷有無客戶端存在,若存在客戶端且RTP發(fā)送狀態(tài)使能,則利用sendto()函數(shù)發(fā)送視頻數(shù)據(jù),發(fā)送完后釋放資源并返回準(zhǔn)備接受下一幀數(shù)據(jù);若不存在客戶端,則釋放資源后返回繼續(xù)獲取碼流進(jìn)行RTP封包。

qrs1-t5.gif

    RTSP的數(shù)據(jù)流發(fā)送基于RTP/UDP協(xié)議,因此,無論是否有客戶端發(fā)出連接請求,數(shù)據(jù)都會持續(xù)發(fā)送。按照RTP數(shù)據(jù)傳輸協(xié)議的封包格式[8],RTSP服務(wù)器接收到H.264視頻數(shù)據(jù)后,首先過濾出每一幀視頻數(shù)據(jù)的NAL單元,將其裝入RTP 報文數(shù)據(jù)負(fù)載段進(jìn)行RTP封包,配置12 B的RTP報文頭,包括版本號、標(biāo)志位、填充位、時間戳、序列號等信息,然后經(jīng)傳輸層封裝UDP報頭,在IP層封裝IP報頭,最后發(fā)送到網(wǎng)絡(luò)上。由于每一個網(wǎng)絡(luò)抽象層單元(NALU)包含的數(shù)據(jù)量不同,其大小也會不一樣,因此,當(dāng)要傳輸?shù)腘ALU超過最大傳輸單元MTU(Maximum Transmission Unit)時,為了減少丟包率,需要進(jìn)行NALU分片,在以太網(wǎng)中默認(rèn)的MTU為1 500 B。本系統(tǒng)選擇以1 400 B作為最大傳輸單元,如果一幀視頻數(shù)據(jù)小于1 400 B,一般采用單個NAL單元模式,直接將視頻數(shù)據(jù)進(jìn)行RTP封包并發(fā)送出去,若大于1 400 B,則需要對視頻數(shù)據(jù)進(jìn)行分割,把NALU單元進(jìn)行分片RTP封包發(fā)送。

4 實(shí)驗(yàn)結(jié)果及數(shù)據(jù)分析

    本文設(shè)計的RTSP服務(wù)器流媒體系統(tǒng)運(yùn)行在TMS320DM8168嵌入式開發(fā)平臺上,RTSP服務(wù)器端通過實(shí)時監(jiān)聽網(wǎng)絡(luò)上的請求,在與客戶端進(jìn)行RTSP交互認(rèn)證后,把視頻數(shù)據(jù)發(fā)送給客戶端,客戶端通過IP地址網(wǎng)絡(luò)訪問RTSP服務(wù)器,就能實(shí)時接收到服務(wù)器端發(fā)送的視頻數(shù)據(jù)。這里以4路視頻為例,圖6為利用ffmpeg播放器實(shí)時接收RTSP服務(wù)器端的4路視頻。

qrs1-t6.gif

    視頻的延時大小直接體現(xiàn)了服務(wù)器端性能的好壞,造成視頻延時的原因主要包括以下幾部分:視頻采集時間、H.264編碼時間、RTP打包時間、網(wǎng)絡(luò)傳輸時間以及ffmpeg播放器的解碼時間。本文分別用H.264的4種畫質(zhì)級別在局域網(wǎng)環(huán)境下進(jìn)行測試,由于ffmpeg播放器的網(wǎng)絡(luò)緩存時間會對視頻的延時產(chǎn)生影響,這里我們采用ffmpeg播放器默認(rèn)的網(wǎng)絡(luò)緩存時間,延時情況如表1所示。

qrs1-b1.gif

    通過數(shù)據(jù)分析表明,在穩(wěn)定的網(wǎng)絡(luò)環(huán)境下,視頻畫質(zhì)越高和視頻通道數(shù)越多,最終的視頻延時就越大。經(jīng)測試,在采集16路D1 30 Fps視頻和采用H.264高級畫質(zhì)(HP)編碼的情況下,最大的延時為0.84 s,監(jiān)控視頻具有較好的實(shí)時性,可以實(shí)現(xiàn)流暢、清晰的多路遠(yuǎn)程視頻監(jiān)控。

5 結(jié)論

    本文設(shè)計并實(shí)現(xiàn)了一套基于TMS320DM8168嵌入式平臺的RTSP服務(wù)器系統(tǒng)。首先以TMS320DM8168為核心實(shí)現(xiàn)了16路D1 30 Fps視頻的采集、預(yù)處理、H.264編碼以及本地存儲。其次,在遠(yuǎn)程視頻監(jiān)控方面,以RTSP流媒體協(xié)議為基礎(chǔ),設(shè)計并實(shí)現(xiàn)了RTSP服務(wù)器系統(tǒng)。最后,測試結(jié)果表明該服務(wù)器工作穩(wěn)定,具有較好的實(shí)時性和可靠性。

參考文獻(xiàn)

[1] 李軍,倪宏,陳君,等.一種應(yīng)用層協(xié)議解析加速算法[J].四川大學(xué)學(xué)報(工程科學(xué)版),2014(4):014.

[2] CAI X,OUYANG G,ZHANG X.The design of streaming media video terminal based on embedded linux[C].Future Generation Communication and Networking(FGCN),2014 8th International Conference on IEEE,2014:68-71.

[3] 茅炎菲,黃忠東.基于RTSP協(xié)議網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].計算機(jī)工程與設(shè)計,2011,32(7):2523-2526.

[4] 管慶,朱海,王凱,等.基于TMS320DM8168的視頻監(jiān)控跟蹤系統(tǒng)[J].數(shù)據(jù)采集與處理,2013(6):652-657.

[5] RFC2326.Realtimestreamingprotocol(RTSP)[S].

[6] CHU D,JIANG C,HAO Z,et al.The design and implementation of video surveillance system based on H.264,SIP,RTP/RTCP and RTSP[C].Computational Intelligence and Design(ISCID),2013 Sixth International Symposium on.IEEE,2013,2:39-43.

[7] 鄭亮.基于DM8168多路視頻監(jiān)控系統(tǒng)研制[D].杭州:杭州電子科技大學(xué),2014.

[8] 李校林,劉利權(quán),張杰.基于RTP的H.264視頻流實(shí)時打包傳輸?shù)难芯縖J].計算機(jī)工程與科學(xué),2012,34(5):168-171.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。