亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于Android移動終端的視頻監(jiān)控系統(tǒng)的制作方法

文檔序號:7806922閱讀:276來源:國知局
專利名稱:基于Android移動終端的視頻監(jiān)控系統(tǒng)的制作方法
技術(shù)領域
本發(fā)明涉及移動視頻監(jiān)控領域,是一種在3G網(wǎng)絡下基于Android移動終端的遠程視頻監(jiān)控系統(tǒng)。
背景技術(shù)
視頻監(jiān)控業(yè)務具有悠久的歷史,在傳統(tǒng)上廣泛應用于安防、交通事故處理等行業(yè)應用領域。隨著人們對信息技術(shù)的深入研究,圖像處理、視頻壓縮等技術(shù)得到了迅速發(fā)展, 視頻編碼壓縮逐漸向高壓縮率、高質(zhì)量、低傳輸率發(fā)展,例如MPEG-4、JVT、H. 264等,以這些技術(shù)為基礎的視頻監(jiān)控技術(shù)不斷成熟。2009年中國工信部發(fā)放3G牌照,中國移動網(wǎng)絡正式進入3G時代。這引起了傳統(tǒng)互聯(lián)網(wǎng)應用向移動互聯(lián)網(wǎng)應用的轉(zhuǎn)變,原有移動網(wǎng)絡的局限性對移動視頻監(jiān)控發(fā)展的束縛逐漸減弱。同時,隨著手機功能的增強、性能的提升,由視頻監(jiān)控技術(shù)和移動網(wǎng)絡技術(shù)融合而來的移動視頻監(jiān)控正逐漸成為視頻監(jiān)控的新趨勢。近年來,由Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)Android在移動終端市場上迅速擴張,其中HTC、三星等主流移動終端生產(chǎn)商都相繼采用 Android系統(tǒng)作為新一代智能手機的操作系統(tǒng)。如今,Android手機已經(jīng)占據(jù)了市場半壁江山,各種應用程序也層出不窮,因此開發(fā)基于Android系統(tǒng)的視頻監(jiān)控應用程序十分有利于移動視頻監(jiān)控的推廣與普及,有著非常寬廣的市場前景。經(jīng)對現(xiàn)有專利進行檢索,與移動視頻監(jiān)控相關的專利或產(chǎn)品已經(jīng)有出現(xiàn),但在已公布的專利文獻和產(chǎn)品中尚未有涉及在基于Android系統(tǒng)的移動終端上的視頻監(jiān)控實現(xiàn)。

發(fā)明內(nèi)容
為了克服現(xiàn)有視頻監(jiān)控系統(tǒng)無法適用于Android系統(tǒng)的不足,本發(fā)明提供一種在基于Android系統(tǒng)的移動終端上實現(xiàn)視頻監(jiān)控系統(tǒng),以達到通過移動通信網(wǎng)絡,使用 Android移動終端來進行實時視頻監(jiān)控。為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是一種基于Android移動終端的視頻監(jiān)控,由設備端、服務器端和Android移動終端組成,它們之間用3G網(wǎng)絡相連接,其中設備端負責采集視頻數(shù)據(jù)、H. 264圖像壓縮和 RTP (Real Time Protocol)分片打包;服務器端包括 SIP Cession Initiation Protocol) 信令服務器和視頻轉(zhuǎn)發(fā)服務器,SIP信令服務器主要通過SIP協(xié)議對用戶與設備進行管理、 操控,視頻轉(zhuǎn)發(fā)服務器是在用戶邀請視頻時與設備端和Android終端同時建立起RTP連接, 負責將視頻數(shù)據(jù)從設備端轉(zhuǎn)發(fā)至Android移動終端;在Android移動終端上為用戶提供最直觀的視頻監(jiān)控界面,(I)Android移動客戶端與SIP信令服務器之間采用SIP協(xié)議進行交互,用戶發(fā)起會話請求后,使用用戶名與密碼進行注冊登錄,登錄成功后用戶可進行設備列表請求、視頻邀請操作;( Android移動客戶端與視頻轉(zhuǎn)發(fā)服務器采用RTP協(xié)議傳輸視頻數(shù)據(jù),鑒于3G網(wǎng)絡可能會出現(xiàn)數(shù)據(jù)包丟包和亂序而導致畫面丟幀的現(xiàn)象,客戶端在接收到 RTP數(shù)據(jù)包時并不馬上處理,而是采用了緩存機制;(3)Android移動客戶端同步了讀寫兩個線程,分別進行NAL(Network Abstraction Layer)的組包與解碼。進一步,采用SIP協(xié)議作為控制信令采用MjSip庫來實現(xiàn)RFC3^1協(xié)議中定義的標準的SIP協(xié)議棧架構(gòu),SIP會話由用戶發(fā)起注冊登錄開始,SIP服務器成功認證SHAl加密的用戶密碼后,根據(jù)用戶請求設備的SIP消息頭中的用戶ID回復相應權(quán)限下的設備列表; 移動客戶端與設備端只進行間接交互,用戶可通過服務器向在線設備發(fā)送視頻請求,設備端接受請求后回復給用戶建立媒體流所需的信息。在用戶登錄期間,移動客戶端需定時發(fā)送SIP心跳包進行會話?;睢T龠M一步,所述緩存機制中,采用RTP協(xié)議傳輸視頻數(shù)據(jù)設備端采集的視頻數(shù)據(jù)通過視頻服務器轉(zhuǎn)發(fā)至移動客戶端,針對3G網(wǎng)絡中的RTP包亂序與丟包現(xiàn)象,客戶端對收到的RTP先進行緩存排序,緩存隊列采用java鏈表形式,每個RTP包根據(jù)kquenceNumber 從小到大插入到緩存隊列中。更進一步,讀寫線程同步進行NAL的組包與解碼開辟了一定大小的NAL緩存區(qū), 寫線程從RTP緩存中依次提取數(shù)據(jù)進行NAL組幀,并將完整的NAL放入可寫的NAL緩存單元中,并為此緩存單元加上只讀鎖;讀線程依次從可讀的NAL緩存單元中讀取數(shù)據(jù)送入解碼器中進行解碼,解碼完成后,為該緩存單元加上只寫鎖。讀寫線程對NAL緩存進行循環(huán)操作,線程間通過上述的鎖機制與synchronized實現(xiàn)同步。本發(fā)明的有益效果為通過移動通信網(wǎng)絡,使用Android移動終端來進行實時視頻監(jiān)控。


圖1為本發(fā)明的視頻監(jiān)控系統(tǒng)框架圖。圖2為本發(fā)明的SIP會話流程圖。圖3為本發(fā)明的用戶登錄SIP交互示意圖。圖4為本發(fā)明的請求設備列表SIP交互示意圖。圖5為本發(fā)明的請求視頻SIP交互示意圖。圖6為本發(fā)明的緩存以及讀寫線程示意圖。圖7為本發(fā)明的NAL組包流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明做進一步描述。參照圖1 與7,一種基于Android移動終端的視頻監(jiān)控,由設備端、服務器端和 Android移動終端組成,它們之間通過hternet相連接,其中Android移動終端通過3G網(wǎng)絡接入hternet。設備端負責采集視頻數(shù)據(jù)、H. 264圖像壓縮和RTP (Real Time Protocol) 分片打包;服務器端包括SIP (kssion Initiation Protocol)信令服務器和視頻轉(zhuǎn)發(fā)服務器,SIP信令服務器主要通過SIP協(xié)議對用戶與設備進行管理、操控,視頻轉(zhuǎn)發(fā)服務器是在用戶邀請視頻時與設備端和Android終端同時建立起RTP連接,負責將視頻數(shù)據(jù)從設備端轉(zhuǎn)發(fā)至Android移動終端;在Android移動終端上為用戶提供最直觀的視頻監(jiān)控界面, (I)Android移動客戶端與SIP信令服務器之間采用SIP協(xié)議進行交互,用戶發(fā)起會話請求后,使用用戶名與密碼進行注冊登錄,登錄成功后用戶可進行設備列表請求、視頻邀請操作;( Android移動客戶端與視頻轉(zhuǎn)發(fā)服務器采用RTP協(xié)議傳輸視頻數(shù)據(jù),鑒于3G網(wǎng)絡可能會出現(xiàn)數(shù)據(jù)包丟包和亂序而導致畫面丟幀的現(xiàn)象,客戶端在接收到RTP數(shù)據(jù)包時并不馬上處理,而是采用了緩存機制;(3)Android移動客戶端同步了讀寫兩個線程,分別進行 NAL (Network Abstraction Layer)的組包與解碼。整個視頻監(jiān)控系統(tǒng)的框架如附圖1所示,系統(tǒng)中主要存在兩種數(shù)據(jù)流媒體流和控制信息流(信令)??刂菩畔⒘鞑捎肧IP協(xié)議,用戶和設備端必須向SIP服務器注冊登錄,它們之間的信令交互需要經(jīng)過SIP信令服務器轉(zhuǎn)發(fā),主要解決私網(wǎng)的穿透問題。媒體流由設備端向視頻服務器發(fā)送,經(jīng)視頻轉(zhuǎn)發(fā)服務器轉(zhuǎn)發(fā)后到達Android移動客戶端,主要解決一個設備多個用戶同時觀看的問題。SIP是類似于HTTP的基于文本的應用層協(xié)議,本發(fā)明采用MjSip庫來實現(xiàn) Android移動客戶端上的SIP協(xié)議,MjSip是采用Java語言的協(xié)議棧,它實現(xiàn)了 RFC3^1協(xié)議中定義的標準的層次化的協(xié)議棧架構(gòu)。整個SIP會話流程如附圖2所示,SIP信令交互主要產(chǎn)生在這幾次用戶動作(a)注冊登錄。如附圖3所示,用戶登錄協(xié)商時,REGISTER消息中的From頭域先采用公共ID發(fā)起第一步注冊,在SIP信令服務器回復對應用戶名的ID號和加密用的種子 SEED 后,程序采用 SHAl (Secure Hash Algorithm)算法進行處理SHAl (SEED+SHA1 (用戶名密碼)),并將得到的消息摘要作為PASSWORD發(fā)回SIP信令服務器進行第二步注冊,服務器若驗證通過則登錄成功;(b)設備列表請求。如附圖4所示,每個用戶權(quán)限下有一定數(shù)量的網(wǎng)絡攝像機設備,用戶在登錄成功后,客戶端會發(fā)送SUBSCRIBE消息請求設備列表,SIP信令服務器接收到請求后回復2000K以及包含設備列表的NOTIFY消息;(c)請求視頻。如附圖5所示,用戶點擊在線設備時,客戶端即向SIP信令服務器發(fā)送INVITE消息邀請視頻,服務器再將此消息轉(zhuǎn)發(fā)至設備端,設備端回復2000K消息,消息內(nèi)容包含了視頻轉(zhuǎn)發(fā)服務器的IP與端口號以及魔數(shù)magic值,回調(diào)函數(shù)提取magic值并處理后得到視頻激活包的內(nèi)容;用戶若停止觀看視頻,客戶端則會向設備端發(fā)送BYE消息,通知設備端結(jié)束視頻數(shù)據(jù)傳輸。MjSip庫中的!Provider package是SIP協(xié)議棧傳輸層相關的類包,其中 Sipftxwider類實現(xiàn)了 SIP的傳輸層,用于發(fā)送和接收SIP消息。我們新建了 SipProvider 類的一個派生類,并在此派生類中構(gòu)建了 SIP消息生成函數(shù)CreateMessage (),并重寫了 TransportListener 接口類中的 processReceivedMessageO 函數(shù)。當終端需要向 SIP 月艮務器發(fā)送SIP消息時,程序先調(diào)用CreateMessage ()函數(shù),函數(shù)根據(jù)傳入的消息類型等參數(shù)生成相應的SIP消息,再調(diào)用Sipftxwider類中的SendMessageO函數(shù)進行發(fā)送。當收到 SIP消息時,程序回調(diào)processReceivedMessageO函數(shù)來處理SIP消息的內(nèi)容,Android移動客戶端與SIP信令服務器交互的消息體是采用XML格式,鑒于移動終端的內(nèi)存資源比較有限,解析時我們使用基于事件驅(qū)動的SAX方式來獲取所需的XML節(jié)點內(nèi)容。Android移動客戶端與視頻轉(zhuǎn)發(fā)服務器之間的視頻傳輸基于RTP協(xié)議。為了糾正 RTP包的亂序,本發(fā)明在接收時設立了緩存機制,另外,為保證視頻監(jiān)控擁有良好的實時性, 開辟了讀寫兩個線程同時進行NAL組包與解碼,如附圖6所示(1)本發(fā)明中的RTP包緩存隊列采用Java鏈表形式,根據(jù)kquenceNumber將收到的RTP包不斷插入到緩存隊列中,使RTP緩存隊列中的RTP包都按照kquenceNumber從小到大排序,糾正了網(wǎng)絡中的亂序。本發(fā)明中創(chuàng)建了 MreamBuf和MreamBufNode兩個類 StreamBufNode類定義了 RTP緩存鏈表節(jié)點的數(shù)據(jù)結(jié)構(gòu)和操作方法;StreamBuf類定義了 RTP緩存鏈表的數(shù)據(jù)結(jié)構(gòu)和操作方法,并實現(xiàn)了按kquenceNumber從小到大插入鏈表節(jié)點的方法 AdcTToBufBySeq ()。(2)由于網(wǎng)絡存在丟包,為了防止出現(xiàn)NAL缺損造成解碼出錯的現(xiàn)象,寫線程在對從RTP緩存中提取出來的NAL數(shù)據(jù)進行重新組幀時,采取了一定的規(guī)則,如附圖7所示,如果發(fā)現(xiàn)有丟包現(xiàn)象則進行如下處理如果丟失的為I幀的RTP包,則丟棄該幀以及該幀之后的所有幀,直到下一個I幀出現(xiàn)為止;如果丟失的為B幀或P幀的RTP包,則直接丟棄該幀。本發(fā)明中創(chuàng)建了 Nalbuffer類,該類定義了 NAL緩存單位的數(shù)據(jù)結(jié)構(gòu)和操作方法,其數(shù)據(jù)結(jié)構(gòu)中包含了讀寫標志變量,讀寫方法加入synchronized關鍵字來聲明為同步方法,一旦一個線程進入一個實例的任何同步方法,其他線程將不能進入同一實例的任何其他同步方法,由此保證了讀寫線程不會發(fā)生沖突。另外,讀寫線程對NAL緩存進行循環(huán)操作,通過 wait ()與notifyO方法實現(xiàn)兩線程間的通信。寫線程從RTP緩存中依次提取數(shù)據(jù)進行NAL 組幀,并檢測下一 NAL緩存單位是否可寫若不可寫,則調(diào)用wait ()函數(shù)進入睡眠狀態(tài),等待讀線程完成解碼后調(diào)用notify ()函數(shù)來喚醒;若可寫,則將完整的NAL放入該NAL緩存單元中,并將此緩存單元置為只讀狀態(tài);同樣,讀線程依次從NAL緩存單元進行操作時也需檢測緩存單元是否可讀若不可讀,則調(diào)用wait ()函數(shù)進入睡眠狀態(tài),等待寫線程完成組幀后調(diào)用notifyO函數(shù)來喚醒;若可讀,則讀取其中數(shù)據(jù)送入解碼器中進行解碼,并將該緩存單元置為只寫狀態(tài)。本發(fā)明在Android移動終端上很好地實現(xiàn)了私網(wǎng)對私網(wǎng)的視頻傳輸和一對多的視頻監(jiān)控。平臺控制信令采用SIP協(xié)議,達到了良好的用戶管理和設備操控機制;媒體視頻流采用RTP協(xié)議,并建立了緩存機制,同時開辟讀寫線程進行NAL組包與解碼,在一定程度上保證了視頻畫面的流暢度與實時性。
權(quán)利要求
1.一種基于Android移動終端的視頻監(jiān)控系統(tǒng),其特征在于所述視頻監(jiān)控系統(tǒng)由設備端、服務器端和Android移動終端組成,它們之間通過hternet相連接,其中Android 移動終端通過3G網(wǎng)絡接入Internet,其中設備端負責采集視頻數(shù)據(jù)、H. 264圖像壓縮和 RTP分片打包;服務器端包括SIP信令服務器和視頻轉(zhuǎn)發(fā)服務器,SIP信令服務器主要通過SIP協(xié)議對用戶與設備進行管理、操控,視頻轉(zhuǎn)發(fā)服務器是在用戶邀請視頻時與設備端和Android終端同時建立起RTP連接,負責將視頻數(shù)據(jù)從設備端轉(zhuǎn)發(fā)至Android移動終端; 在Android移動終端上為用戶提供視頻監(jiān)控界面,所述Android移動終端上實現(xiàn)如下操作 (I)Android移動客戶端與SIP信令服務器之間采用SIP協(xié)議進行交互,用戶發(fā)起會話請求后,使用用戶名與密碼進行注冊登錄,登錄成功后用戶可進行設備列表請求、視頻邀請操作;( Android移動客戶端與視頻轉(zhuǎn)發(fā)服務器采用RTP協(xié)議傳輸視頻數(shù)據(jù),客戶端在接收到RTP數(shù)據(jù)包時并不馬上處理,而是采用了緩存機制;(3) Android移動客戶端同步了讀寫兩個線程,分別進行NAL的組包與解碼。
2.根據(jù)權(quán)利要求1所述的基于Android移動終端的視頻監(jiān)控系統(tǒng),其特征在于采用 SIP協(xié)議作為控制信令采用MjSip庫來實現(xiàn)RFC3261協(xié)議中定義的標準的SIP協(xié)議棧架構(gòu),SIP會話由用戶發(fā)起注冊登錄開始,SIP服務器成功認證SHAl加密的用戶密碼后,根據(jù)用戶請求設備的SIP消息頭中的用戶ID回復相應權(quán)限下的設備列表;移動客戶端與設備端只進行間接交互,用戶可通過服務器向在線設備發(fā)送視頻請求,設備端接受請求后回復給用戶建立媒體流所需的信息。在用戶登錄期間,移動客戶端需定時發(fā)送SIP心跳包進行會話?;睢?br> 3.根據(jù)權(quán)利要求1或2所述的基于Android移動終端的視頻監(jiān)控系統(tǒng),其特征在于 所述緩存機制中,采用RTP協(xié)議傳輸視頻數(shù)據(jù)設備端采集的視頻數(shù)據(jù)通過視頻服務器轉(zhuǎn)發(fā)至移動客戶端,針對3G網(wǎng)絡中的RTP包亂序與丟包現(xiàn)象,客戶端對收到的RTP先進行緩存排序,緩存隊列采用java鏈表形式,每個RTP包根據(jù)kquenceNumber從小到大插入到緩存隊列中。
4.根據(jù)權(quán)利要求1或2所述的基于Android移動終端的視頻監(jiān)控系統(tǒng),其特征在于 讀寫線程同步進行NAL的組包與解碼開辟了一定大小的NAL緩存區(qū),寫線程從RTP緩存中依次提取數(shù)據(jù)進行NAL組幀,并將完整的NAL放入可寫的NAL緩存單元中,并為此緩存單元加上只讀鎖;讀線程依次從可讀的NAL緩存單元中讀取數(shù)據(jù)送入解碼器中進行解碼,解碼完成后,為該緩存單元加上只寫鎖。讀寫線程對NAL緩存進行循環(huán)操作,線程間通過上述的鎖機制與synchronized實現(xiàn)同步。
全文摘要
一種基于Android移動終端的視頻監(jiān)控,由設備端、服務器端和Android移動終端組成,它們之間用Internet相連接,其中Android移動終端通過3G網(wǎng)絡接入Internet,設備端負責采集視頻數(shù)據(jù)、H.264圖像壓縮和RTP(Real Time Protocol)分片打包;服務器端包括SIP(Session Initiation Protocol)信令服務器和視頻轉(zhuǎn)發(fā)服務器,SIP信令服務器主要通過SIP協(xié)議對用戶與設備進行管理、操控,視頻轉(zhuǎn)發(fā)服務器是在用戶邀請視頻時與設備端和Android終端同時建立起RTP連接,負責將視頻數(shù)據(jù)從設備端轉(zhuǎn)發(fā)至Android移動終端;在Android移動終端上為用戶提供最直觀的視頻監(jiān)控界面。本發(fā)明通過移動通信網(wǎng)絡,使用Android移動終端來進行實時視頻監(jiān)控。
文檔編號H04L29/06GK102547239SQ20111045170
公開日2012年7月4日 申請日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者孟利民, 宋秀蘭, 徐志江, 戴而正, 竺偉 申請人:杭州普諾科技有限公司, 浙江工業(yè)大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1