鄒 玲,李 麗,鄭 偉
(湖北工業大學電氣與電子工程學院,湖北 武漢430068)
隨著網絡應用逐漸滲透各個領域.利用寬帶網絡進行遠程的網絡視頻監控,不但使用方便,而且非常經濟.遠程視頻監控系統結構建立在互聯網上,將會使操作維護更加方便,也增加了系統的實時性.
系統基于Internet通過以太網卡采用TCP/IP協議實現監控的存儲與傳輸.應用體系采用四層(B/S)結構.使得系統管理、更新變得簡易;使數據庫更加安全,不會因為操作失誤而對系統產生影響.使用IE瀏覽器內嵌ActiveX控件調用客戶端管理模塊,使整個應用系統更加靈活穩定.任何互聯網環境下均可以接入此系統.在交互式通信時采用了多線程技術,同步進行解碼和顯示.
目前遠程監控視頻傳輸方式[1]分為:1)視頻基帶傳輸;2)光纖傳輸;3)網絡傳輸;4)微波傳輸;5)雙絞線傳輸(平衡傳輸);6)寬頻共纜傳輸.本文采用網絡傳輸方式,這是一種解決城域間遠距離、點位極其分散的監控傳輸方式,具有實時性且管理方便,缺點是:受目前網絡帶寬和速度的限制,動畫延時明顯.
為使實時監控的延遲最小化,可采用視頻流的方案解決這一問題.視頻流不需要監控接收端對監控視頻信息進行整段的劃分下載,而是在監控接收端創建緩沖區,進行接收信息的臨時存儲,在信息量達到可以流暢播放之后,監控端即可開始顯示監控視頻.當監控接收端的緩沖區接收到第一個數據塊時,就開始準備視頻播放器的加載,此時緩沖區繼續接受其他視頻信息塊,當信息量足夠流暢播放視頻時,監控平臺即可播放監控信息,保證視頻播放的實時性和連續性,一般可以將延遲控制在10s左右.
基于互聯網的監控傳輸一般采用 MPEG2/4、H.264音視頻壓縮編碼格式傳輸監控信號.而H.264編碼具有極高的數據壓縮比.在同等圖像質量條件下,H.264的數據壓縮比要比 MPEG-4高1.5~2倍.在網絡傳輸過程中所需要的帶寬更少,也更加經濟.在MPEG-2需要6Mbps的傳輸速率匹配時,H.264只需要1~2Mbps的傳輸速率.因而適用于速率受限的網絡傳輸方式.
根據以上對傳輸方式和傳輸格式的分析,遠程監控可以采用基于H.264編碼方式的RTP視頻流方式對網絡視頻進行傳輸.
H.264編碼分兩層結構,包括視頻編碼層(VCL)和網絡適配層(NAL).其中,視頻編碼層負責對視頻數據傳輸中所承載的視頻內容進行描述和定義,它獨立于網絡;而網絡適配層則負責使用下層網絡的分段格式來封裝數據,使其適于網絡傳輸.其中,NAL由一系列的數據單元 NALU(Network Abstraction Layer Unit)組成,根據NALU的不同,其數據量也各不相同.每個NALU都由NALU頭(NALU Header)和載荷數據(RBSP)組成(圖1).

圖1 NALU單元頭格式
服務器通過把視頻數據用RTP進行打包封裝.應用RTP的封裝規范[2](包括同步源和時戳)對H.264的視頻編碼數據進行封裝.RTP荷載結構通過荷載的第一個字節對信息進行識別,也共享為RTP荷載頭.封裝時將NAL單元(NALU)放入RTP載荷中,并對RTP的頭標值進行設置(圖2).

圖2 服務器端打包流程
系統采用IP協議進行網絡傳輸(圖3),發送端需要在使用IP/UDP/RTP的協議時,將各報頭數據進行封裝,包括IP頭(20字節以上),UDP頭(8字節以上)和RTP頭(12字節以上).然后按照RTP的信息格式放入視頻數據,對RTP包頭進行配置,包括Timestamp(時間信息),SSRC(同步源)以及Sequence Number(數據包序列)等參數,形成IP數據包,通過互聯網進行發送,接收端通過對RTP數據進行識別,接收有效RTP包中的NALU數據,實現從發送端到接收端的視頻流數據傳輸.

圖3 RTP遠程網絡監控傳輸方式
系統采用QoS(Quality of Service,服務質量,是網絡的一種安全機制,是用來解決網絡延遲和阻塞等問題的一種技術)的反饋信息[3],探測網絡傳輸質量,并根據網絡速率動態調整發送端的采集編碼參數設置,從而保證傳輸的QoS.對網絡傳輸速率進行反饋控制,即接收端對丟包率進行統計,然后發給傳輸端,發送方根據丟包率調整傳輸速率,避免網絡傳輸擁塞的一種策略.此處使用RTP協議進行反饋控制,RTP信息流在傳輸到接收端時,由接收端統計接收狀況以及發射機報告(SR)而生成接收機報告(RR),反饋給傳輸端.根據此反饋信息,傳輸端會對視頻流信息傳輸速率進行控制和動態調整,從而避免網絡阻塞.[4]
ASP.Net開發Web應用時,主要是通過ADO組件對數據庫進行操作,具有易用、高速、占用內存和磁盤空間少的特點.系統B/S結構在交互式通信時采用了多線程技術,同步進行解碼和顯示的工作.[7]
因為采用了遠程視頻流緩沖方式傳輸視頻,要保證接收的數據完整準確并且流暢,需要對傳輸差錯速率進行控制.差錯控制是在傳輸中利用編碼方法對傳輸中產生的差錯進行控制,以提高數字消息傳輸的準確性,這是一種重要的數字通信保障技術.一般來說,差錯控制的方法有兩種:自動請示重發(ARQ)和前向糾錯(FEC).
網絡數據傳輸糾錯一般通過校驗來處理,如CRC-5CRC-12校驗算法[6],以檢查發送端發送的網絡數據包到接收端是否正確.發送方有一個CRC(Cyclic Redundancy Check,循環冗余校驗),接收方比較計算出的CRC和接收到的CRC是否一致即可判斷網絡是否出錯.
首先控制臺對服務器端發送accept()請求信息,服務器在通過accept()返回的信息后與監控前端進行通信,對監控器發送信號,監控端接收到信號后進行相應的操作,并將圖像結果反饋給用戶(圖4).

在信息量過大時如果不加以限制,超額的網絡流量會導致設備反映緩慢,造成網絡延遲.因此,有必要在傳輸中引入速率控制.系統根據參數信息初步確定發送速率,然后由RR反饋信息動態調整,調整視頻分辨率來改變速率,當視頻分辨率略微降低,在傳輸同等時間的視頻時可以明顯降低傳輸速率,只要達到較高的客觀視頻質量即可,沒有必要為了降低傳輸率而降低幀數.
利用RTP數據報的序列號,發送方在第一次發送數據的時候生成一個初始隨機數,之后發送的數據按照順序序列號依次遞增.這樣,接收方就可以在收到Qos信息后,自動核對RTP的傳輸序列號,統計丟包情況.通過Qos對RTP數據報序列號進行檢測,同時結合視頻流傳輸方案對視頻接收對象進行替換,將按照RTP數據報序列號接收的視頻依次進行交替,保證視頻接收的順序正確無誤.

圖4 通信流程
嵌入式web客戶端采用數據報式的sockets和客戶機通信發送基于RTP/UDP/IP協議的視頻數據.要對遠程視頻傳輸進行控制,需要通過socket進行遠程控制.遠程視頻監控系統使用C#語言與ASP.Net進行web程序和管理類庫的設計,基于Sockets的底層通信實現對服務器的遠程控制.使用
服務器根據客戶端的accept()將建立一個會話Session,使用兩個端口分別進行RTP傳輸和RTCP傳輸.對于不同的會話,根據客戶方的網絡地址和端口進行UDP調用,需要分別為rtp和rtcp創建兩個socket套接字rtp_socket和rtcp_socket.并通過sendto()接口,使用rtcp_socket和rtp_socket分別發送數據流信息和報告信息.
會話結構定義如下所示.
typedef SessionStruct
{struct{PayloadProfile*profile; //負載屬性
float payload_type; //負載的類型定義
unsigned float ssrc; //源標識符定義
}send,recv; //會話的發送與接收
RtpStream rtp_msg; //數據流信息
RtcpStream rtcp_msg; //報告流信息
}SessionDef;
信息流結構定義如下所示.
typedef StreamStruct
{socket_Rtp socket; //信息流socket
struct addr_in addr_remote; //發送目標
unsigned long send_num; //序列標識
stream_states_msg states; //記錄狀態信息
unsigned float send_msg_last; //有效發送時間信息
unsigned float recv_msg_first; //收到信息時間
}StreamDef;
基于Internet瀏覽器與服務器端架構的遠程視頻監控系統的操作管理平臺以ActiveX插件形式嵌入在web當中,免去了下載并使用安裝程序的繁瑣步驟.同時,為互聯網遠程監控的查看與控制提供了更及時更方便的管理.其主要問題在于對大量視頻數據的實時傳輸.視頻監控的傳輸可根據系統的網絡狀況和應用場景選擇或構建相適應的網絡傳輸方式,包含網絡架構選擇(局域網/廣域網)、傳輸方式選擇(有線/無線)、傳輸介質選擇(網線/光纖).隨著TD-LTE、Wi-Fi、專網等無線、有線寬帶技術的成熟和應用,大流量數據的遠程傳送更加方便,這也掃除了網絡監控在大范圍應用中的傳輸障礙.目前,在金融聯網監控等項目中通常采用自建光纖網絡或局域網絡實現1000M帶寬網絡.這種千兆帶寬資源,在前端安裝100路1080P全實時高清網絡攝像機(即使按每路占用資源4Mbps計算),占用總帶寬資源不到50%;如果采用720P傳輸,帶寬還可以減少一半.這樣,完全可以有效支持網絡監控的實際應用,遠程視頻監控系統將會有更廣闊的發展空間.
[1]吳之惠,徐海峰,劉賢德.視頻采集在視頻監控系統中的應用[J].微計算機信息,2007(4):138-140.
[2]柳 偉,陳 旭,梁永生.H.264/SVC的 RTP封裝算法及其應用[J].計算機工程與應用,2010(19):27-32.
[3]楊海濤,王萬良,劉鋒光,等.具有數據流和視頻流的Internet的遠程控制系統[J].計算機工程,2006(3):254-256.
[4]唐智偉.基于 H.323協議的 H.264視頻傳輸[D].湘潭:湘潭大學圖書館,2008.
[5]陳 磊,金建祥,金敏凡.“基金會現場總線(FF)技術”講座 第3講FF總線中的差錯控制與流量控制[J].自動化儀表,2001(8):57-59.
[6]徐昌彪,隆克平.無線網絡中差錯控制與擁塞控制策略的分析[J].重慶郵電學院學報(自然科學版),2001(1):31-32.
[7]龐文堯.基于C/S模式的遠程控制系統研究開發[D].杭州:浙江大學圖書館,2003.
[8]張海軍,張建軍,楊印根,等.RTP傳輸控制的研究及實時視頻監視系統的設計與實現[J].信息化縱橫,2009(5):54-61.
[9]陳 韜,張占軍,洪 君.流媒體的RTP傳輸與QoS管理策略研究[J].裝甲兵工程學院學報,2005(3):25-28.
[10]彭 強,楊天武,陳維榮,等.分布式遠程視頻監控系統視頻傳輸技術研究[J].鐵道學報,2002(2):49-54.