索旭東,林 琳,李康華,李冀川,蕭潤明
(智能移動機器人(中山)研究院,廣東 中山 528400)
隨著智能移動機器人、攝像頭、人工智能、無線通信等相關(guān)產(chǎn)業(yè)技術(shù)的發(fā)展[1],市面上許多監(jiān)控室采用固定攝像頭和有線網(wǎng)絡(luò),這種系統(tǒng)架構(gòu)缺點被不斷放大,視頻監(jiān)控技術(shù)由此開始向無線低延時、智能化、多功能、可拓展發(fā)展。傳統(tǒng)的人工巡邏和固定攝像頭監(jiān)控容易出現(xiàn)監(jiān)控死角、遠程查看監(jiān)控存在視頻延時高的問題。
需要針對現(xiàn)有監(jiān)控終端架構(gòu)缺陷[2],給出可行性的解決方案。提出一種硬件功能拓展性高、監(jiān)控可靠低延時、監(jiān)測異常智能化的方案,基于WebRTC視頻流傳輸技術(shù)的搭載可移動機器人攝像頭的智能監(jiān)控安防系統(tǒng)。采用WebRTC(Web Real-Time Communication)進行跨平臺低延時通信,保證監(jiān)控畫面的實時性。用戶可以直接通過瀏覽器Web 端看到監(jiān)控室畫面。本文主要介紹關(guān)于WebRTC 的技術(shù)特點以及低延時智能監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)。
傳統(tǒng)視頻輸出為rtsp 流,提供視頻兼容性和視頻傳輸穩(wěn)定性。要打造適合的低延時監(jiān)控系統(tǒng),重點是要明確用戶觀看到的攝像頭畫面延時產(chǎn)生的組成。傳統(tǒng)監(jiān)控系統(tǒng)采用B/S 結(jié)構(gòu)開發(fā)。用戶觀看監(jiān)控視頻產(chǎn)生的延時會由以下四個部分組成:
●攝像頭壓制編碼的時間;
●視頻網(wǎng)絡(luò)傳輸服務(wù)器的時間;
●視頻網(wǎng)絡(luò)傳輸?shù)綖g覽器的時間。
低延時監(jiān)控系統(tǒng)可以優(yōu)化除了第一點外的流程。總的來說,低延時的關(guān)鍵在于怎么提高視頻傳輸速度和解碼效率。
WebRTC 技術(shù)采用點對點的通信技術(shù),把延時的組成再次改寫為三部分:
●攝像頭壓制編碼的時間;
●視頻從網(wǎng)絡(luò)傳輸?shù)娇蛻舳说臅r間。
●視頻渲染解碼的時間。
1.2 腹膜反折懸吊裝置的設(shè)計 自制腹膜反折懸吊裝置由 Hem-o-lok 夾和與之連接的穿刺器、固定裝置及施夾鉗組成,施夾鉗用于將懸吊裝置置入體腔,并將 Hem-o-lok 夾夾閉固定于腹膜反折上;穿刺器及其附屬連接線用于調(diào)整腹膜反折懸吊的牽引方向及高度;固定裝置用于固定連接線,保持腹膜反折懸吊的高度和方向(圖1)。
WebRTC(Web Real-Time Communications)是一項實時通訊技術(shù),它允許網(wǎng)絡(luò)應(yīng)用或者站點,在不借助中間媒介的情況下,建立瀏覽器之間點對點(Peerto-Peer)的連接,實現(xiàn)視頻流、音頻流或者其他任意數(shù)據(jù)的傳輸。
WebRTC 技術(shù)框架的接口層核心是RTCPeer-Connection,分為兩部分:Web API和WebRTC C++API。Web API 是由W3C 維護的一組JavaScript 接口[6],提供了API 方便開發(fā)者直接使用,在瀏覽器中創(chuàng)建實時通信應(yīng)用程序。
核心引擎層分為音頻引擎模塊、網(wǎng)絡(luò)傳輸模塊和視頻引擎模塊。音頻引擎模塊是WebRTC 最具有價值的技術(shù)之一,包含從視頻采集卡到網(wǎng)絡(luò)傳輸段的整個一系列的音頻多媒體處理框架。
WebRTC的網(wǎng)絡(luò)傳輸涉及多種協(xié)議用于同時支持音頻、視頻、自定義應(yīng)用數(shù)據(jù)的傳輸。WebRTC傳輸?shù)乃袛?shù)據(jù)都是基于加密信道DTLS 進行傳輸?shù)?,DTLS讓通信雙方握手生成一對密鑰[7],發(fā)送方負責(zé)通過UDP 傳輸對數(shù)據(jù)進行加密,再由接收方對加密數(shù)據(jù)做解密處理。簡單來說就是在UDP 的基礎(chǔ)上讓通信雙方協(xié)商密鑰進行加密解密。音視頻數(shù)據(jù)通過RTP/SRTP(Realtime Transport Protocol/Secure Realtime Transport Protocol)進行傳輸。綜上所述,WebRTC 在底層使用UDP,在上層使用RTP。
視頻引擎模塊包括:攝像頭采集視頻通過視頻信息網(wǎng)絡(luò)實現(xiàn)視頻顯示的過程。
WebRTC 技術(shù)有三種架構(gòu):Mesh、MCU、SFU[8],本系統(tǒng)使用的是Mesh 架構(gòu),是基于端到端的直連設(shè)計。三種通訊架構(gòu)如圖1所示。
圖1 WebRTC通訊架構(gòu)圖
Mesh 架構(gòu):客戶端進行相互間音視頻流數(shù)據(jù)傳輸采用P2P 連接。Mesh 架構(gòu)的優(yōu)點是不需要中心服務(wù)器進行轉(zhuǎn)發(fā),由于視頻編碼解碼過程都在客戶端,對于客戶端的上行帶寬消耗比較大。
MCU架構(gòu):該架構(gòu)的視頻信息流是在服務(wù)端進行編碼,對于不同接收端不需要進行轉(zhuǎn)碼。但是抖動緩沖區(qū)較大,而且對服務(wù)器的CPU 消耗大,點與點之間需要通過服務(wù)器,造成兩點之間的延時增加。每個客戶端只需要向服務(wù)器上傳一路信息流,從服務(wù)端接收一路音頻視頻流,對于客戶端的帶寬消耗較少,但是對于服務(wù)器性能要求較高CPU資源消耗較大。
SFU 架構(gòu):通過服務(wù)器對音頻視頻等信息流進行直接轉(zhuǎn)發(fā),不需進行編碼操作。相比MCU 架構(gòu),SFU架構(gòu)對數(shù)據(jù)傳輸更安全、服務(wù)器的壓力較小。
對于客戶端的下行帶寬消耗較大,不適合用在網(wǎng)絡(luò)條件較差的環(huán)境。
本系統(tǒng)監(jiān)控看板主要是使用在遠程監(jiān)控室,屬于端點和信息量較小的場景,為了增加數(shù)據(jù)的低延時和實時性,將Mesh架構(gòu)做為最佳選型使用。
本論文的低延時方案是基于WebRTC 視頻技術(shù)實現(xiàn)的。與傳統(tǒng)視頻rtsp 流。WebRTC 能建立點對點的連接,減少了視頻傳送服務(wù)器的時間,能有效降低視頻的延時。
測試實驗使用??低晹z像頭。分別使用??低昗eb 端,低延時智能系統(tǒng),某商用視頻中間件,開源FFMPEG+JSMPEG 技術(shù)四個方案進行測試對比。
??低昗eb 端,以JavaScript 接口形式提供用戶集成,支持網(wǎng)頁上實現(xiàn)預(yù)覽、回放、云臺控制等基本視頻相關(guān)功能,用于BS 網(wǎng)頁開發(fā),適用于特定的網(wǎng)絡(luò)環(huán)境。
某商用視頻中間件,采用的是VLC 內(nèi)嵌網(wǎng)頁播放程序,通過底層去調(diào)用VLC 的ActiveX 控件實現(xiàn)在Web端內(nèi)嵌播放RTSP實時視頻流。
FFMPEG+JSMPEG 技術(shù),是目前國際上較為流行的用于實現(xiàn)視頻編碼、解碼、轉(zhuǎn)碼、封裝、解封裝、流、鏡、播放等功能的多媒體框架,對rtsp 流進行解析,開啟rtsp 流經(jīng)視頻音頻解封裝器,解析去除無關(guān)的報文信息,提取出真正的視音頻數(shù)據(jù)流。
使用??低晹z像頭,與PC 網(wǎng)卡直連,同時打開海康威視Web 端與低延時智能系統(tǒng),某商用視頻中間件,與開源FFMPEG+JSMPEG 技術(shù)三個方案中的其中一個作為參照物進行北京時間對比分析。
第一個測試的是低延時監(jiān)控系統(tǒng)與??低暋烧哌M行多次延時對比采樣,把測試結(jié)果記錄下來求一個平均數(shù)。其實如圖2為其中一次測試結(jié)果。左側(cè)是本機與攝像頭使用低延時系統(tǒng)的延時,右側(cè)則是海康威視官方系統(tǒng)的延時,可以看到在相同的硬件配置與網(wǎng)絡(luò)配置下,使用低延時遠程監(jiān)控系統(tǒng)與使用??低暪俜较到y(tǒng)的延時只差110毫秒左右。
圖2 測試結(jié)果對比
其他方案與按同等網(wǎng)絡(luò)環(huán)境與攝像頭進行。其延時對比結(jié)果如表1所示。海康威視攝像頭的官方拉流平均延時在90ms,本系統(tǒng)采用的WebRTC方案平均延時在200ms,采用第三方中間件的平均延時在750ms,基于FFmpeg解碼技術(shù)的拉流方案平均延時在1000ms。
表1 不同方案延時對比
通過實驗對比,某商用中間件,F(xiàn)Fmpeg和WebRTC三種方案的得出平均延時數(shù)據(jù)得出,WebRTC 方案相較于FFmpeg 和第三方中間件在低延時效果上更加突出。
低延時智能監(jiān)控系統(tǒng)通過軟件架構(gòu)的設(shè)計提高傳輸速率,把后臺信息管理系統(tǒng)、機器人通信網(wǎng)關(guān)系統(tǒng)、視頻推送分離開來[9]。讓視頻和用戶的業(yè)務(wù)數(shù)據(jù)獨立處理的同時,又可以做到統(tǒng)一的數(shù)據(jù)管理。這樣的架構(gòu)設(shè)計,讓本系統(tǒng)相較其他智能監(jiān)控系統(tǒng)更靈活方便,適用范圍更廣。
基于WebRTC 實時通訊技術(shù)的低延時智能監(jiān)控系統(tǒng)優(yōu)點在于底層基于UDP 協(xié)議具有毫秒級的低延時具有更好的交互效果。在不需要額外的中間媒介就能直接通過Web 端訪問,大大提高了用戶使用的便捷度。隨著技術(shù)的不斷發(fā)展,WebRTC 的兼容性越來越強大,支持跨平臺方便日后集成二次開發(fā)。相較于傳統(tǒng)監(jiān)控系統(tǒng),WebRTC 使用的信令傳輸具有穩(wěn)定性好、可擴展性強、帶寬利用率高等特點。WebRTC存在的缺點是:架構(gòu)方案多,對不同場景的選型難度高,相對復(fù)雜,開發(fā)難度高。
結(jié)合地圖與遠程視頻監(jiān)控,可以及時了解機器人附近的情況,根據(jù)利用遠程監(jiān)控及時反饋環(huán)境,利用系統(tǒng)的低延時,可以讓相關(guān)負責(zé)人實現(xiàn)遠程管理多臺機器人的效果,如圖3所示。
圖3 遠程監(jiān)控頁面圖
結(jié)合數(shù)據(jù)反饋的異常數(shù)據(jù)與及時利用視頻實時對機器人環(huán)境進行更好地監(jiān)控,如圖4所示。
圖4 監(jiān)控看板頁面
本論文分析了基于WebRTC 開發(fā)的低延時智能監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)。打造一個用戶使用簡便,遠程低延時監(jiān)控系統(tǒng)。對市場上機器人等遠程實時性要求高的場景提供一個低延時的解決方案。為機器人遠程監(jiān)控系統(tǒng),擴大應(yīng)用范圍提供一個很好的方向。可以配合對安保監(jiān)控行業(yè)不同場景條件需求分析。也可配置上移動智能機器人相關(guān)產(chǎn)業(yè)進行需求,實現(xiàn)適用范圍廣、視頻延時低、檢測智能化的目標。提供標準無差低延時、多端可視的視頻流服務(wù)。相信未來新一代的機器人,人工智能,無線通信等技術(shù)的發(fā)展能讓系統(tǒng)得到更加有力的支持與發(fā)展[10]。