《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 一個(gè)基于RTP/RTCP的手機(jī)報(bào)警系統(tǒng)

一個(gè)基于RTP/RTCP的手機(jī)報(bào)警系統(tǒng)

2009-04-13
作者:張海軍, 吳克捷, 楊印根,

  摘??要: 在研究RTP/RTCP協(xié)議特點(diǎn)與功能的基礎(chǔ)上,討論了基于RTP/RTCP協(xié)議實(shí)時(shí)視頻傳輸?shù)?a class="innerlink" href="http://forexkbc.com/tags/控制方法" title="控制方法" target="_blank">控制方法,。通過(guò)此控制方法可以有效地提高RTP流的平穩(wěn)性,,減小抖動(dòng),增加網(wǎng)絡(luò)帶寬的利用率,,流暢地傳輸多媒體數(shù)據(jù),。利用GPS、RTP/RTCP等協(xié)議實(shí)現(xiàn)了手機(jī)報(bào)警系統(tǒng),。
  關(guān)鍵詞: RTP/RTCP,; Internet; H.263/H.264,; G.729,; GPS

?

  隨著我國(guó)經(jīng)濟(jì)的迅速增長(zhǎng)和精神生活的不斷豐富,人們?cè)絹?lái)越熱衷于參加一些具有挑戰(zhàn)性的活動(dòng),,而遇到危險(xiǎn)的幾率也大大增加,因此在困境中個(gè)人求助顯得格外重要,。此外,因惡性案件嚴(yán)重地威脅到人身安全,,所以要求相關(guān)部門(mén)加強(qiáng)整治社會(huì)治安力度,、快捷有效地偵破案件。目前手機(jī)的應(yīng)用越來(lái)越普及,,作為一項(xiàng)手機(jī)功能的拓展,,構(gòu)建一套簡(jiǎn)單快捷的手機(jī)報(bào)警系統(tǒng)很有必要,也易于推廣,。
  手機(jī)報(bào)警系統(tǒng)是利用現(xiàn)有手機(jī)加載GPS技術(shù),、網(wǎng)絡(luò)協(xié)議RTP/RTCP以及H.263/H.264、G.729視音頻編碼方式實(shí)現(xiàn)的一鍵快速報(bào)警系統(tǒng),。一鍵快速報(bào)警后,,手機(jī)終端不斷地發(fā)送其位置信息和周?chē)h(huán)境的音頻、視頻信息,,從而實(shí)現(xiàn)其快捷,、隱蔽的報(bào)警,,為公安及相關(guān)部門(mén)施救或破案實(shí)時(shí)地提供有效的現(xiàn)場(chǎng)信息。
1 GPS及GPS信息采集
  GPS(Global Positioning System)全球定位系統(tǒng)[1]是中距離圓形軌道衛(wèi)星定位系統(tǒng),,可以為地球表面絕大部分地區(qū)提供準(zhǔn)確的定位和高精度的時(shí)間基準(zhǔn),。GPS信息包括經(jīng)度、緯度和采集時(shí)間等,,即在定時(shí)器的控制下,,手機(jī)不斷地采集GPS信息并發(fā)送相關(guān)數(shù)據(jù)。獲取GPS坐標(biāo)數(shù)據(jù)模塊的函數(shù)接口如下[2]
  (1)InitDevice()函數(shù):用于初始化GPS設(shè)備驅(qū)動(dòng)程序的函數(shù)接口,。
  (2)LoadThread()函數(shù):用于創(chuàng)建獲取GPS坐標(biāo)數(shù)據(jù)的線程函數(shù)接口,。
  (3)GPSThreadProc(_opt LPVOID lpParameter) 函數(shù):用于獲取GPS坐標(biāo)數(shù)據(jù)的函數(shù)接口。
  (4)BackUpGPSData(MYGPSDATESEND GpsDate) 函數(shù):用于將獲取后的GPS坐標(biāo)數(shù)據(jù)以二制形式存儲(chǔ)在終端本地的函數(shù)接口,。
  (5)UnloadThread()函數(shù) :用于停止GPS線程運(yùn)行的函數(shù)接口,。
  (6)StopTime(int StopTime) 函數(shù):用于停止GPS獲取的時(shí)間設(shè)置。
2 RTP/RTCP協(xié)議及其傳輸控制方法
2.1 RTP/RTCP協(xié)議
[3]
  RTP協(xié)議是用于音頻,、視頻等多媒體數(shù)據(jù)實(shí)時(shí)傳輸?shù)膮f(xié)議,,它包括RTP和RTCP兩個(gè)子協(xié)議。其中,,RTP用于實(shí)時(shí)數(shù)據(jù)端到端傳輸,,RTP包中提供了時(shí)間戳即發(fā)送數(shù)據(jù)塊首字節(jié)的創(chuàng)建時(shí)間和序列號(hào),以達(dá)到數(shù)據(jù)的同步和重組,;而RTCP包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量,、丟失數(shù)據(jù)包的情況和數(shù)據(jù)包到達(dá)時(shí)延抖動(dòng)等信息,可以監(jiān)視網(wǎng)絡(luò)的服務(wù)質(zhì)量,、通信帶寬以及網(wǎng)上傳送的信息,。發(fā)送端可以利用RTCP提供的信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類(lèi)型,。RTP和RTCP配合使用,,可共同提供流量控制和擁塞控制服務(wù),能以有效的反饋和最小的開(kāi)銷(xiāo)使傳輸效率最佳化,,因而特別適合網(wǎng)上實(shí)時(shí)數(shù)據(jù)的傳送,。RTP協(xié)議的數(shù)據(jù)包格式如圖 1所示。

?

?

??? 常用的RTCP包有五種:發(fā)送方報(bào)告包(SR),、接收者報(bào)告包(RR),、源描述包(SDES)、站點(diǎn)離開(kāi)系統(tǒng)報(bào)告包(BYE)和特殊應(yīng)用包(APP),。包的主要數(shù)據(jù)項(xiàng)格式如圖2所示,。

?


??? RTP包通過(guò)下層UDP 來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸,數(shù)據(jù)裝載模型如圖3所示。

?


2.2 實(shí)時(shí)傳輸控制方法
? 遠(yuǎn)程網(wǎng)絡(luò)傳輸?shù)牟豢煽啃灾饕憩F(xiàn)在[4-5]三方面:(1)數(shù)據(jù)包“亂序到達(dá)”,,先發(fā)送數(shù)據(jù)包有可能后到,;(2)在Internet環(huán)境下,網(wǎng)絡(luò)傳輸帶寬變動(dòng)會(huì)引起發(fā)送的數(shù)據(jù)包丟失,;(3)數(shù)據(jù)包到達(dá)的時(shí)延過(guò)大而產(chǎn)生抖動(dòng)會(huì)引起數(shù)據(jù)的失真,。
? 而RTP/RTCP能很好地解決上述問(wèn)題。首先,,在接收端緩沖區(qū)中用RTP包中的序列號(hào)來(lái)調(diào)整到達(dá)數(shù)據(jù)包的順序,,使之與發(fā)送時(shí)的數(shù)據(jù)順序一致;其次,,為了改進(jìn)遠(yuǎn)程視頻傳輸系統(tǒng)的穩(wěn)定性,,建立一個(gè)傳輸控制模型,,這樣就可通過(guò)網(wǎng)絡(luò)狀況的反饋及時(shí)調(diào)整采樣頻率以及編碼格式以適應(yīng)當(dāng)前的網(wǎng)絡(luò)傳輸要求,。RTCP利用主要的兩種控制包SR和RR反饋的信息如數(shù)據(jù)包丟失比、數(shù)據(jù)包丟失率,、吞吐量和吞吐率,、數(shù)據(jù)包到達(dá)時(shí)延抖動(dòng)J(interarrival jitter)和往返傳播時(shí)延等來(lái)調(diào)節(jié)實(shí)時(shí)傳輸,并調(diào)整系統(tǒng)的打包格式,、發(fā)包速率來(lái)保證流暢地傳輸數(shù)據(jù)和清晰地播放視頻,。其數(shù)據(jù)傳輸控制模型如圖4所示。

?


3 手機(jī)報(bào)警系統(tǒng)的組成
??? 手機(jī)報(bào)警系統(tǒng)的結(jié)構(gòu)框圖如圖5所示,,由三大部分構(gòu)成:(1)信息采集部分,,包括智能報(bào)警終端(手機(jī))、移動(dòng)無(wú)線傳輸網(wǎng)絡(luò)和接入服務(wù)器,;(2)中央處理部分(服務(wù)器端),,它是系統(tǒng)的核心,包括各個(gè)服務(wù)器單元,、報(bào)警系統(tǒng)的接口等,;(3)終端即110指揮中心處接入坐席(監(jiān)控端)。各部分功能如下,。

?


??? 報(bào)警終端:
  (1) 使用WinCE鍵盤(pán)鉤子模擬一鍵報(bào)警(長(zhǎng)按綠鍵),。
  (2) 按鍵報(bào)警后,鍵盤(pán)不做任何響應(yīng)直至服務(wù)器發(fā)出結(jié)束指令,。
  (3) 按鍵報(bào)警后,,手機(jī)獲取EEII號(hào)、啟動(dòng)GPRS進(jìn)行設(shè)備認(rèn)證,。
  (4) 認(rèn)證通過(guò),,開(kāi)始傳遞報(bào)警數(shù)據(jù)直至服務(wù)器發(fā)出結(jié)束指令。
  (5) 定時(shí)傳遞GPS坐標(biāo)信息,。
  (6) 手機(jī)本地保留報(bào)警數(shù)據(jù)直至無(wú)存儲(chǔ)空間為止,。
  服務(wù)器:
 ?、?服務(wù)器接到報(bào)警請(qǐng)求后,根據(jù)EEII號(hào)進(jìn)行身份驗(yàn)證,;
 ?、?將報(bào)警索引信息寫(xiě)入數(shù)據(jù)庫(kù),實(shí)時(shí)數(shù)據(jù)寫(xiě)入文件,;
 ?、?通知監(jiān)控端更新監(jiān)控對(duì)象列表;
 ?、?根據(jù)需要,,實(shí)時(shí)轉(zhuǎn)發(fā)報(bào)警數(shù)據(jù)到監(jiān)控端;
 ?、?支持多個(gè)手機(jī)終端,,維護(hù)在線報(bào)警手機(jī)列表;
 ?、?支持多個(gè)監(jiān)控端,,維護(hù)在線監(jiān)控端列表。
  監(jiān)控端:
  (1) 可以定時(shí)刷新報(bào)警列表,。
  (2) 選擇報(bào)警對(duì)象進(jìn)行跟蹤,。
  (3) 動(dòng)態(tài)顯示報(bào)警信息。
  (4) 發(fā)出“結(jié)束報(bào)警”指令,。
4 手機(jī)報(bào)警系統(tǒng)的設(shè)計(jì)
  手機(jī)報(bào)警系統(tǒng)的流程是:首先手機(jī)端發(fā)送注冊(cè)信號(hào)給服務(wù)器端進(jìn)行連接,,注冊(cè)成功后開(kāi)始音頻采集、視頻采集和GPS采集,,同時(shí)進(jìn)行音視頻的壓縮編碼,, RTP分包封裝,并且形成RTCP發(fā)送端報(bào)告,,發(fā)送給服務(wù)器端,。服務(wù)器根據(jù)報(bào)警信息進(jìn)行相關(guān)的處理:存儲(chǔ)數(shù)據(jù)、與監(jiān)控端進(jìn)行連接和發(fā)送報(bào)警信息,。報(bào)警系統(tǒng)的邏輯框圖如圖6所示,。

?


5 手機(jī)報(bào)警系統(tǒng)的實(shí)現(xiàn)
  系統(tǒng)的實(shí)現(xiàn)是在Visual C++6.0環(huán)境下[6-8],采用H.263/H.264視頻編碼[9-10]和G726音頻壓縮編碼[11],。傳輸控制子系統(tǒng)是基于RTP/RTCP協(xié)議構(gòu)建,,通過(guò)傳輸層的UDP? Socket完成實(shí)時(shí)傳輸。手機(jī)端負(fù)責(zé)按鍵報(bào)警,,它包括如下幾個(gè)模塊:?jiǎn)?dòng)GPRS網(wǎng)絡(luò)模塊,、采集音頻數(shù)據(jù)模塊、獲取GPS坐標(biāo)數(shù)據(jù)模塊、數(shù)據(jù)打包發(fā)送模塊,。服務(wù)器端主要分為如下模塊:網(wǎng)絡(luò)管理模塊,、協(xié)議分發(fā)模塊、代理模塊,、管理模塊,、登錄管理模塊、終端管理模塊,、監(jiān)控端管理模塊,、文件管理模塊、數(shù)據(jù)庫(kù)管理模塊,、日志管理模塊及UI等模塊,。
  監(jiān)控端再現(xiàn)報(bào)警人的音視頻和GPS信息,其詳細(xì)實(shí)現(xiàn)如下:
  (1) 監(jiān)控端注冊(cè),,即監(jiān)控端軟件啟動(dòng)后,,啟動(dòng)網(wǎng)絡(luò)監(jiān)聽(tīng),然后自動(dòng)向服務(wù)器進(jìn)行注冊(cè)(注冊(cè)內(nèi)容包括IP地址和端口號(hào)),。如果超過(guò)15s服務(wù)器沒(méi)有響應(yīng),,軟件給出錯(cuò)誤警告,然后退出系統(tǒng),。
  (2) 心跳信號(hào),即監(jiān)控端軟件每15s發(fā)送心跳信號(hào)數(shù)據(jù)包給服務(wù)器,,服務(wù)器據(jù)此來(lái)維護(hù)監(jiān)控端列表,。
  (3) 刷新報(bào)警列表,,即軟件維持一個(gè)當(dāng)前報(bào)警對(duì)象的列表。報(bào)警列表的更新方式有兩種:
 ?、佘浖?dòng)并注冊(cè)后,服務(wù)器即返回當(dāng)前報(bào)警列表,。
  ②當(dāng)服務(wù)器端報(bào)警列表更新的時(shí)候,,向監(jiān)控端發(fā)送變更消息,。
  (4) 選擇報(bào)警對(duì)象進(jìn)行跟蹤,即發(fā)送“跟蹤”指令給服務(wù)器,,如果成功回應(yīng),,接收音視頻數(shù)據(jù),開(kāi)始播放音視頻數(shù)據(jù),;如果25s沒(méi)有應(yīng)答,,則退出請(qǐng)求跟蹤。處理過(guò)程如圖7所示,。

?


  RTP協(xié)議中用于監(jiān)控端與服務(wù)器軟件的接口函數(shù)如下:
  (1)RTPProtocolInit()函數(shù):用于初始化RTP,,判斷連接服務(wù)器是否成功的函數(shù)接口。
  (2)onCrlDataArrive(const RTPAddress frm,const CrlType crltype, unsigned char *data, const int length, const char *id)函數(shù):用于實(shí)時(shí)接收服務(wù)器返回的信息數(shù)據(jù)函數(shù)接口,。
  (3)SendData(CrlType crltype,unsigned char * Data,int Length) 函數(shù):利用RTP協(xié)議定時(shí)發(fā)送心跳信息及向服務(wù)器注冊(cè)的信息函數(shù)接口,。
  RTP/RTCP協(xié)議選取數(shù)據(jù)包丟失比,、數(shù)據(jù)包丟失率,、吞吐量和吞吐率,、數(shù)據(jù)包到達(dá)時(shí)延抖動(dòng)和往返傳播時(shí)延等服務(wù)質(zhì)量控制參數(shù),,作為動(dòng)態(tài)反饋來(lái)自動(dòng)判斷網(wǎng)絡(luò)狀況,,并根據(jù)網(wǎng)絡(luò)狀況自動(dòng)調(diào)節(jié)編碼方式,,因而這種協(xié)議非常適合多媒體數(shù)據(jù)實(shí)時(shí)傳輸,?;赗TP/RTCP設(shè)計(jì)并成功實(shí)現(xiàn)了手機(jī)報(bào)警系統(tǒng),,經(jīng)過(guò)仿真實(shí)驗(yàn),視頻,、音頻等數(shù)據(jù)傳輸都很流暢,該系統(tǒng)正在測(cè)試和推廣使用中,。手機(jī)用戶(hù)的大幅增加和手機(jī)費(fèi)用的逐步降低,,為該技術(shù)的推廣提供了便利條件,。

參考文獻(xiàn)
[1] ?LOVSE J W,? TESKEY W F, LACHAPELLE G, et al.Dynamic ?deformation monitoring of tall structures using?GPS technology[J]. Journal of Surveying Engineering.1995,121(1):35-40.
[2] ?周建鄭.GPS測(cè)量定位技術(shù)[M].北京:化學(xué)工業(yè)出版社,2004.
[3] ?SCHULZRINNE H, CASNER S, FREDEIRCK R, et a1.RTP: a transport? protocol for real—time applications[S].RFC 1889,,1996.
[4] ?BUSSE I,, DEFFNER B,, SCHULZRINNE H. Dynamic?QoS control of multimedia applications based on RTP? [J].Computer Communication,,1996,,19(1):49-58.
[5] ?ZHANG Ke, XIE? Zhong Cheng,, JU Jiu Bin. Real-time?repairing lost packets based on real—time transport protocol[J]. Journal of Software,2001,,7(12):1042-1049.
[6] ?黃維通. Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,,2003:84-147.
[7] ?歐建平,婁強(qiáng)生.網(wǎng)絡(luò)與多媒體通信技術(shù)[M].北京:人民郵電出版社,,2002.
[8] ?蔣東興. Windows Sockets 網(wǎng)絡(luò)程序設(shè)計(jì)大全[M].北京:清華大學(xué)出版社,,1999:117-162.
[9] ?IETF? RFC2190. RTP payload format for H.263 video?streams[S].1997.
[10] WEN Ger. H.264/AV Cover IP? [J]. IEEET Rans Circuits-Syst Video Technology,2003,,13: 645-656.
[11] CHOU P A, MORH A E, WANG A, et a1. Error control ?for receiver—driven layered multicast of audio and video?[J]. IEEE Transactions on? Multimedia,,2001;3(1):l08-122.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。