《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 視頻監(jiān)控在高速路作業(yè)調(diào)度系統(tǒng)上的應(yīng)用
視頻監(jiān)控在高速路作業(yè)調(diào)度系統(tǒng)上的應(yīng)用
2015年電子技術(shù)應(yīng)用第1期
陳 嫻,彭 宏,吳海巍
(浙江工業(yè)大學(xué) 信息工程學(xué)院 浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310023)
摘要: 高速作業(yè)的管理是高速管理的重要方面。首先介紹了高速公路的發(fā)展現(xiàn)狀和高速作業(yè)管理上面臨的問(wèn)題和挑戰(zhàn),從遠(yuǎn)程管理的角度出發(fā),構(gòu)建了高速作業(yè)調(diào)度系統(tǒng)。該文簡(jiǎn)單介紹了系統(tǒng)總體設(shè)計(jì)框架并詳細(xì)闡述了客戶(hù)端上視頻模塊的設(shè)計(jì)與實(shí)現(xiàn)方法。最后對(duì)該客戶(hù)端進(jìn)行測(cè)試,驗(yàn)證其實(shí)際的效果,證明該設(shè)計(jì)在監(jiān)控和調(diào)度領(lǐng)域有良好的應(yīng)用和發(fā)展前景。
Abstract:
Key words :

  摘  要: 高速作業(yè)的管理是高速管理的重要方面。首先介紹了高速公路的發(fā)展現(xiàn)狀和高速作業(yè)管理上面臨的問(wèn)題和挑戰(zhàn),從遠(yuǎn)程管理的角度出發(fā),構(gòu)建了高速作業(yè)調(diào)度系統(tǒng)。該文簡(jiǎn)單介紹了系統(tǒng)總體設(shè)計(jì)框架并詳細(xì)闡述了客戶(hù)端上視頻模塊的設(shè)計(jì)與實(shí)現(xiàn)方法。最后對(duì)該客戶(hù)端進(jìn)行測(cè)試,驗(yàn)證其實(shí)際的效果,證明該設(shè)計(jì)在監(jiān)控和調(diào)度領(lǐng)域有良好的應(yīng)用和發(fā)展前景。

  關(guān)鍵詞: 高速作業(yè)管理;遠(yuǎn)程監(jiān)控;指揮調(diào)度

0 引言

  近年來(lái),我國(guó)的高速公路建設(shè)日新月異,建成通車(chē)?yán)锍讨鹉晟仙肪W(wǎng)更加稠密[1],在經(jīng)濟(jì)社會(huì)發(fā)展總體格局中的地位越來(lái)越重要。然而,隨著路網(wǎng)密集度的提高,高速公路上出現(xiàn)事故/故障的概率也越來(lái)越大,給事故/故障的快速反應(yīng)和及時(shí)處理工作提出了更高的要求。同時(shí),隨著道路承載量的劇增,道路設(shè)施的日常維護(hù)工作也變得越來(lái)越重要。傳統(tǒng)的高速路作業(yè)模式具有反應(yīng)速度慢、統(tǒng)一管理調(diào)度能力弱等缺點(diǎn)。隨著計(jì)算機(jī)的普及和信息技術(shù)的發(fā)展,計(jì)算機(jī)化、網(wǎng)絡(luò)化和智能化日益成為人們生產(chǎn)生活的主要方式,同時(shí)隨著多媒體計(jì)算機(jī)性能的提高和網(wǎng)絡(luò)帶寬的增大,視頻監(jiān)控也在各行各業(yè)得到了廣泛的應(yīng)用。因此,為了提高高速路作業(yè)的管理調(diào)度能力,本文將視頻監(jiān)控應(yīng)用于高速路作業(yè)的管理調(diào)度中,實(shí)現(xiàn)在戶(hù)內(nèi)對(duì)遠(yuǎn)程高速路上的排障和養(yǎng)護(hù)工作的監(jiān)控、調(diào)度和管理。

1 系統(tǒng)總體架構(gòu)

  高速作業(yè)調(diào)度系統(tǒng)由戶(hù)外作業(yè)設(shè)備端、服務(wù)器平臺(tái)和客戶(hù)端3部分組成。整個(gè)系統(tǒng)設(shè)計(jì)框架如圖1所示。

001.jpg

  本系統(tǒng)設(shè)計(jì)中,服務(wù)器平臺(tái)由SIP[2]信令服務(wù)器、媒體轉(zhuǎn)發(fā)服務(wù)器和FTP服務(wù)器組成,信令服務(wù)器負(fù)責(zé)客戶(hù)端與終端、客戶(hù)端與服務(wù)器之間的信息交互,媒體轉(zhuǎn)發(fā)服務(wù)器負(fù)責(zé)H.264視頻流的轉(zhuǎn)發(fā),F(xiàn)TP服務(wù)器負(fù)責(zé)圖像資料的管理、存儲(chǔ)和下載工作。戶(hù)外作業(yè)設(shè)備端由手機(jī)設(shè)備組成,在手機(jī)上裝一個(gè)協(xié)助高速作業(yè)完成的APP,其主要功能是實(shí)現(xiàn)戶(hù)外作業(yè)人員的登錄管理,對(duì)調(diào)度中心派發(fā)的任務(wù)的查看和完成情況的匯報(bào),同時(shí)在執(zhí)行任務(wù)時(shí)傳送實(shí)時(shí)視頻畫(huà)面到調(diào)度中心,讓調(diào)度中心隨時(shí)掌控戶(hù)外作業(yè)情況并做出及時(shí)的調(diào)度響應(yīng)。此外還可以上傳圖像和數(shù)據(jù)資料到FTP服務(wù)器進(jìn)行存檔。客戶(hù)端緊緊圍繞高速公路排障與養(yǎng)護(hù)工作進(jìn)行設(shè)計(jì),主要實(shí)現(xiàn)對(duì)遠(yuǎn)程高速作業(yè)的實(shí)時(shí)監(jiān)控和調(diào)度管理,以及對(duì)數(shù)據(jù)資料的統(tǒng)一管理和統(tǒng)計(jì)分析等。

2 客戶(hù)端功能模塊的設(shè)計(jì)

  高速作業(yè)調(diào)度系統(tǒng)客戶(hù)端主要包括用戶(hù)管理、視頻監(jiān)控、雙向語(yǔ)音、任務(wù)管理、軌跡查詢(xún)、視圖管理和報(bào)表管理等幾個(gè)模塊,如圖2所示。各模塊之間相互協(xié)調(diào)工作,實(shí)現(xiàn)對(duì)高速作業(yè)的遠(yuǎn)程監(jiān)控與調(diào)度。

002.jpg

  用戶(hù)管理模塊由用戶(hù)登錄和密碼修改兩個(gè)子模塊組成,主要負(fù)責(zé)用戶(hù)的登錄驗(yàn)證和密碼修改工作;任務(wù)管理模塊分為任務(wù)派發(fā)和任務(wù)查詢(xún)兩個(gè)子模塊,主要實(shí)現(xiàn)向遠(yuǎn)程設(shè)備終端派發(fā)高速作業(yè)任務(wù)并對(duì)高速任務(wù)的詳細(xì)情況進(jìn)行查詢(xún)顯示;視頻監(jiān)控模塊包括設(shè)備列表獲取、視頻播放、本地錄像、圖像抓取、云臺(tái)控制、參數(shù)設(shè)置等功能,主要實(shí)現(xiàn)對(duì)事故/故障現(xiàn)場(chǎng)的具體情況進(jìn)行動(dòng)態(tài)了解,從而可以做出及時(shí)調(diào)度響應(yīng);雙向語(yǔ)音功能利用SIP電話(huà)機(jī)實(shí)現(xiàn),客戶(hù)端可以呼叫終端設(shè)備,終端設(shè)備也可以呼叫客戶(hù)端,實(shí)現(xiàn)調(diào)度中心人員與戶(hù)外作業(yè)人員的通話(huà),完成指揮調(diào)度;軌跡查詢(xún)模塊包括實(shí)時(shí)軌跡跟蹤和歷史軌跡查詢(xún),主要實(shí)現(xiàn)對(duì)養(yǎng)護(hù)人員的巡邏情況進(jìn)行實(shí)時(shí)跟蹤和養(yǎng)護(hù)的歷史軌跡記錄的查詢(xún);視圖管理模塊主要實(shí)現(xiàn)對(duì)排障和養(yǎng)護(hù)作業(yè)中設(shè)備端上傳的圖像和視頻數(shù)據(jù)進(jìn)行統(tǒng)一管理和保存;報(bào)表管理模塊主要實(shí)現(xiàn)對(duì)排障和養(yǎng)護(hù)的數(shù)據(jù)信息分時(shí)間段進(jìn)行查詢(xún)預(yù)覽、統(tǒng)計(jì)分析和報(bào)表導(dǎo)出的工作。

3 視頻監(jiān)控模塊的設(shè)計(jì)與實(shí)現(xiàn)

  將視頻監(jiān)控技術(shù)應(yīng)用于高速作業(yè)調(diào)度管理中,可以實(shí)現(xiàn)在戶(hù)內(nèi)對(duì)遠(yuǎn)程高速路上的排障和養(yǎng)護(hù)作業(yè)進(jìn)行實(shí)時(shí)監(jiān)控管理。尤其在處理重大交通事故時(shí),清障作業(yè)人員利用手機(jī)捕獲實(shí)時(shí)視頻畫(huà)面發(fā)送到調(diào)度中心,各級(jí)相關(guān)負(fù)責(zé)人不需親臨現(xiàn)場(chǎng)就可動(dòng)態(tài)掌控事故現(xiàn)場(chǎng)的情況,做出正確的決策,完成靈活調(diào)度。

  視頻監(jiān)控模塊中視頻數(shù)據(jù)采用H264格式,打包成RTP/UDP包在網(wǎng)絡(luò)中傳輸。客戶(hù)端先進(jìn)行實(shí)時(shí)視頻的請(qǐng)求,在請(qǐng)求成功后,開(kāi)啟線(xiàn)程接收流媒體服務(wù)器轉(zhuǎn)發(fā)的RTP包,并對(duì)接收到的視頻RTP包進(jìn)行處理,獲取H264數(shù)據(jù),再利用DirectShow視頻處理機(jī)制[3]設(shè)計(jì)視頻播放鏈路來(lái)實(shí)現(xiàn)實(shí)時(shí)視頻數(shù)據(jù)的解碼和播放,整個(gè)流程如圖3所示。

003.jpg

  3.1 實(shí)時(shí)視頻請(qǐng)求

  實(shí)時(shí)視頻請(qǐng)求采用SIP信令完成客戶(hù)端與設(shè)備端的通信。客戶(hù)端先發(fā)送INVITE消息到SIP信令服務(wù)器,SIP信令服務(wù)器查詢(xún)被請(qǐng)求的設(shè)備的地址,將INVITE消息轉(zhuǎn)發(fā)給終端手機(jī)設(shè)備,手機(jī)設(shè)備接到請(qǐng)求后試圖開(kāi)啟視頻,在完成視頻開(kāi)啟后發(fā)送確認(rèn)信息和媒體信息到SIP信令服務(wù)器,SIP信令服務(wù)器轉(zhuǎn)發(fā)確認(rèn)信息和媒體信息給客戶(hù)端,客戶(hù)端再對(duì)信息進(jìn)行確認(rèn),完成視頻請(qǐng)求的過(guò)程,整個(gè)流程如圖4所示。

004.jpg

  3.2 RTP包的處理

005.jpg

  視頻請(qǐng)求成功后,客戶(hù)端開(kāi)啟RTP接收線(xiàn)程進(jìn)行RTP包的接收。其中收到的RTP包的結(jié)構(gòu)如圖5所示,RTP包由RTP包頭和RTP負(fù)載組成,其中RTP負(fù)載為NALU數(shù)據(jù),而NALU數(shù)據(jù)又由一個(gè)字節(jié)的NALU數(shù)據(jù)頭和一個(gè)較長(zhǎng)的NALU數(shù)據(jù)域組成[4]。

  客戶(hù)端調(diào)用JRTPLIB庫(kù)對(duì)RTP包進(jìn)行處理。首先對(duì)接收到的RTP包進(jìn)行解包,取出RTP的負(fù)載數(shù)據(jù)。由于本系統(tǒng)的RTP包是基于UDP傳輸?shù)?,UDP是無(wú)連接的傳輸,客戶(hù)端上接收到的RTP包可能存在亂序等問(wèn)題,故將取出的負(fù)載數(shù)據(jù)按其序列號(hào)進(jìn)行重新排序存入一級(jí)緩存中。其關(guān)鍵代碼如下:

  pack=GetNextPacket()//獲取RTP包

  packetoder=pack->GetSequenceNumber();

  //獲取接收到的RTP包的序列號(hào)

  StreamBufNode*pRtpFrameNode=new StreamBufNode

 ?。ǎ╟har*)pack->GetPayloadData(),

  pack->GetPayloadLength(),(int)packetoder,0);

  //利用獲取的RTP包信息組裝數(shù)據(jù)節(jié)點(diǎn)

  m_pVFragmentBuffer->AddToBufBySeq(pRtpFrameNode);

  //按序列號(hào)排序,暫存一級(jí)緩存中

  ProcessNalu();

  //對(duì)一級(jí)緩存中的數(shù)據(jù)進(jìn)行重組,推送到二級(jí)緩存中

  在一級(jí)緩存中將不斷對(duì)RTP數(shù)據(jù)包進(jìn)行存儲(chǔ)和移除操作,為了提高運(yùn)行效率,一級(jí)緩存采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

  當(dāng)緩存到一定量后,將一級(jí)緩存中的數(shù)據(jù)取出進(jìn)行進(jìn)一步的處理。由于RTP包有一個(gè)MTU值,當(dāng)NALU數(shù)據(jù)長(zhǎng)度過(guò)大時(shí)需要對(duì)其進(jìn)行分片傳輸,因此接收到的RTP包中的負(fù)載數(shù)據(jù)可能是一個(gè)NALU幀,也有可能是一個(gè)NALU分片數(shù)據(jù),利用第一個(gè)字節(jié)的TYPE值來(lái)判斷負(fù)載數(shù)據(jù)是一個(gè)完整的NALU數(shù)據(jù)幀還是一個(gè)NALU分片。若為完整的NALU數(shù)據(jù)幀,則直接將其存入二級(jí)緩存中,為后續(xù)的視頻播放提供數(shù)據(jù)源;若為NALU分片,則利用FU頭中的S、E、R值來(lái)判定NALU分片是頭分片還是尾分片還是中間分片,對(duì)NALU分片進(jìn)行重組,還原為一個(gè)NALU數(shù)據(jù)幀后存入二級(jí)緩存等待后續(xù)播放。關(guān)鍵代碼如下:

  pPayloadData=(unsigned char*)pStreamBufNode->GetData();//獲取一級(jí)緩存中的RTP負(fù)載

  //利用分片F(xiàn)U指示字節(jié)和FU頭區(qū)分不同的NALU數(shù)據(jù)

  if(m_pH264RTPReceive->ProcessHeader(pPayloadData,length,nFragment)==true){

  //完整的NALU幀

  if(nFragment==FRAGMENT_NO){加上00 00 00 01分隔符直接推向二級(jí)緩存;}

  //NALU分片幀的頭分片

  else if(nFragment==FRAGMENT_START){加上00 00 00 01分隔符;}

  //NALU分片幀的中間分片

  else if(nFragment==FRAGMENT_MIDDLE){將中間分片加在頭分片后面;}

  //NALU分片幀的尾分片

  else if(nFragment==FRAGMENT_END){加入尾分片,將重組的NALU幀推向二級(jí)緩存}

  }

  一級(jí)緩存和二級(jí)緩存的大小設(shè)置也很重要,若將緩存設(shè)置得過(guò)大,會(huì)造成很大的實(shí)時(shí)視頻播放時(shí)延;若將緩存設(shè)得過(guò)小,由于沒(méi)有對(duì)足夠的RTP負(fù)載數(shù)據(jù)進(jìn)行排序,會(huì)造成視頻畫(huà)面回退的現(xiàn)象。考慮到網(wǎng)絡(luò)壞境和幀率等綜合因素的影響,本軟件將一級(jí)緩存大小設(shè)置為幀率的0.7倍,二級(jí)緩存的大小設(shè)置為幀率的0.8倍。

  3.3 實(shí)時(shí)視頻播放鏈路的搭建

006.jpg

  本系統(tǒng)的實(shí)時(shí)視頻播放鏈路采用DirectShow機(jī)制進(jìn)行搭建,鏈路由Source Filter、Transform Filter和Render Filter組成,如圖6所示。該鏈路的Source Filter繼承自CSource類(lèi),內(nèi)部包含一個(gè)處理RTP包的類(lèi)和一個(gè)PIN接口類(lèi),主要完成RTP包的處理以及將獲取的H264數(shù)據(jù)幀推送到Transform Filter中。Transform Filter調(diào)用ffdshow解碼器[5]控件,它能幫助實(shí)現(xiàn)H264視頻數(shù)據(jù)的解碼工作,并將解碼后的源數(shù)據(jù)傳遞到Render Filter。Render Filter調(diào)用系統(tǒng)默認(rèn)的播放設(shè)備進(jìn)行實(shí)時(shí)視頻播放。

  4 客戶(hù)端測(cè)試

  本文設(shè)計(jì)的高速作業(yè)調(diào)度系統(tǒng)如圖7所示。在網(wǎng)絡(luò)情況正常條件下,對(duì)系統(tǒng)進(jìn)行性能測(cè)試,軟件各模塊運(yùn)行正常。對(duì)視頻模塊進(jìn)行測(cè)試,測(cè)試結(jié)果如表1所示。

007.jpg

5 結(jié)束語(yǔ)

  綜上所述,該高速作業(yè)調(diào)度系統(tǒng)的設(shè)計(jì)可以有效提高對(duì)戶(hù)外高速作業(yè)的監(jiān)管和調(diào)度力度。此外,對(duì)該系統(tǒng)進(jìn)行進(jìn)一步改進(jìn),也可以將其應(yīng)用到其他領(lǐng)域的監(jiān)控和指揮調(diào)度上,具有廣闊的市場(chǎng)空間和良好的發(fā)展前景。

參考文獻(xiàn)

  [1] 李廷.基于移動(dòng)網(wǎng)絡(luò)技術(shù)的高速公路智能管理系統(tǒng)[D].北京:北京郵電大學(xué),2008.

  [2] 司端鋒,韓心慧,龍勤,等.SIP標(biāo)準(zhǔn)中的核心技術(shù)與研究進(jìn)展[J].北京大學(xué)軟件學(xué)報(bào),2005,16(2):239-250.

  [3] 陸其明.DirectShow開(kāi)發(fā)指南[M].北京:清華大學(xué)出版社,2003.

  [4] 許寧.基于RTP協(xié)議的移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].通信技術(shù),2014,47(4):455-458.

  [5] 劉祎瑋.Visual C++視頻/音頻開(kāi)發(fā)實(shí)用工程案例精選[M].北京:人民郵電出版社,2004.


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