閆光來,張衛強,李維
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
基于4G+VPN技術的視頻監控系統設計與實現
閆光來,張衛強,李維
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
為了克服傳統視頻監控系統的缺陷,實現在偏遠地區進行遠程視頻監控的需求,設計了一種基于4G和VPN(Virtual Private Network)技術的移動監控系統。系統以ARM11為硬件平臺,運行Linux操作系統,利用V4L2接口從攝像頭采集圖片并使用CPU內部MFC模塊編碼成壓縮率高的H.264視頻流,以RTP/RTCP協議進行實時網絡傳輸。同時采用VPN技術,搭建專用網絡解決了4G私有IP地址的問題。經驗證,該系統傳輸穩定、畫面流暢、實時性高,可被應用于眾多領域。
4G;監控系統;VPN;H.264
視頻監控,作為一種有效的技術手段,在商場、交通、居家安全等領域發揮著日益重要的作用。傳統的有線視頻監控,必須要鋪設網線或電纜,成本較高,架設線路受環境的限制較大,而且維護費用高,故障排除麻煩[1]。隨著信息技術的飛速發展,無線網絡通信技術不斷成熟,以4G為代表的無線網絡視頻監控技術能夠很好地解決有線方式的弊端。自2013年12月工信部發放4G牌照以來,TDD-LTE的4G通信技術日漸成熟。相比于3G網絡,4G網絡的傳輸速率可達到20 Mbps,最高甚至可以達到100 Mbps,傳輸速度是3G時代的50倍[2],能夠更好的支持高清視頻監控。
1.1 系統硬件結構
系統所使用的硬件平臺為友善之臂的Tiny6410開發板。該開發板的核心芯片為三星的S3C6410處理器,該處理器具有低功率、高性價比、高性能的優點。內部集成有硬件編解碼器,支持MPEG4、H.263以及H.264格式的編解碼。開發板有3路USB Host的USB口,可以滿足本設計所需。攝像頭使用羅技的一款C270高清USB攝像頭,采集的圖片有YUV和MJPEG格式。4G無線網卡使用中興的一款ME3760V2上網卡模塊。系統硬件結構如圖1所示。

圖1 系統結構圖
1.2 系統軟件設計
系統采用的操作系統為Linux系統。Linux操作系統具有體積小、系統開源、移植方便的優點,被廣泛應用在移動設備上。本設計采用的Linux內核版本為Linux-2.6.38。為了調試方便,測試階段采用宿主機掛載根文件的形式。宿主機為裝有Fedora14的PC機,通過網線、串口和開發板連接。通過裁剪移植完成了針對于開發板工作的最小u-boot、kernel和根文件系統。在裁剪內核時,需要添加對UVC格式的USB攝像頭的驅動支持以及4G上網模塊的驅動及通信協議支持[3]。
視頻采集程序調用Linux內核提供的V4L2接口,通過內存映射的方法,調用mmap函數把保存在內核空間的采集的視頻數據所在的緩沖區映射到用戶空間,這樣可以有效地減少數據的交互。同時定義2個隊列,視頻輸入和視頻輸出隊列,用來存放幀緩沖剛取到的和應用程序已處理的數據。采集流程如圖2所示。

圖2 視頻采集流程圖
視頻采集流程如下:
①打開視頻設備,fd=open(video0,O_RDWR);獲得設備屬性,調用ioctl(fd,VIDIOC_ QUERYCAP,&v4l2_def),將設備參數保存在v4l2_ def結構體中;
②調用ioctl(fd,VIDIOC_S_FMT,&format)設置視頻采集的參數如幀格式、圖片大小等;
③調用ioctl(fd,VIDIOC_REQBUFS,&reqbuf)申請幀緩沖區存放視頻數據,并通過mmap函數將其映射到用戶空間以便應用程序操作;
④開始視頻數據的采集。調用ioctl(fd,VIDIO_ STR-EAMON,&way)命令獲取一幀數據,應用程序處理后,幀緩存區的數據再次刷新載入,這樣實現了視頻數據的循環采集;
⑤視頻采集結束,停止采集,調用close函數關閉視頻設備。
系統在設計時還要完成一步圖像格式的轉換,因為硬件編碼器要求的標準輸入格式為YUV420[4],而本設計采用的攝像頭采集的格式為YUV422。兩者的區別在于,YUV422采樣是每兩個Y共用一組UV分量,而YUV420是每4個Y共用一組UV分量,所以在采集之后需要軟件方法進行格式轉換。這里編寫YUV422轉YUV420的轉換函數YUV422to420(unsigned char*pYUV,unsigned int *yuv,int Width,int Height)。
視頻壓縮編碼部分使用的是硬件編碼法,利用S3C6410芯片內置的MFC進行H.264格式的硬件編碼。S3C6410芯片內部集成有硬件編解碼器MFC模塊,能夠支持30 fps的標清H.264、H.263、MPEG4視頻格式的編解碼[5]。H.264是新一代的一種視頻壓縮的標準,在同等圖像質量下,它的壓縮比是上一代的壓縮標準MPEG2的2~3倍,相比于MPEG4,也平均減少39%的傳輸碼流,具有較高的圖片壓縮效率和較高的網絡傳輸效率,容錯能力強[6]。因此,H.264編碼格式常被用在高清錄像機和實時監控領域。
系統的視頻硬件編碼流程如圖3所示。
硬件編碼步驟如下:
①調用函數SsbSipH264EncodeInit(width,height,frame_rate,bitrate,gop)進行編碼器的初始化。包括對每一幀圖像的長寬、幀速率、比特率及編碼質量系數設定;
②調用函數SsbSipH264 EncodeGetInBuf(handle,size)獲取前面采集程序中圖像數據的buffer地址;
③第一次編碼需要傳入設置的參數,調用函數SsbSipH264EncodeGetConfig(handle,H264_ENC_GETCONF_HEADER_SIZE,&cofi_size);
④調用SsbSipH264 EncodeExe(handle)執行H.264格式編碼;
⑤調用SsbSipH264 EncodeGetOutBufAddr(handle,size)獲取編碼輸出后的數據地址;
⑥編碼結束,調用SsbSipH264EncodeDeInit(handle)解除內存映射,釋放并關閉編碼器。
這樣經過S3C6410芯片的硬件編碼器壓縮編碼后,得到了采集圖像的H.264格式的視頻流,經壓縮后的數據,相比于原始圖片格式,圖像內存減少了很多,網絡傳輸效果更佳。

圖3 硬件編碼流程圖
3.1 流媒體傳輸協議
系統采用的是專門應用在流媒體音視頻傳輸的實時傳輸協議(Real-time Transport Protocol,RTP),此協議用來傳輸視頻數據,提供了具有實時性特征、一對一或一對多的數據傳輸服務。但是此協議無法提供可靠的傳輸機制,視頻傳輸質量無法保障。這里配合使用控制協議RTCP(RTP Control Protocol),通過RTCP的報文信息,根據接收端接收數據包的丟包、延時及網絡帶寬情況作出反饋,動態自適應調整視頻流的包發送,從而保證了視頻的傳輸質量[7]。網絡協議基于UDP協議,相比于TCP協議的三次握手和四次揮手機制,UDP協議是一個非面向連接的通信協議,傳輸的報頭信息簡短,傳遞效率高,因此,非常適合用來實時視頻的傳輸服務[8,9]。
ARM平臺移植一個JRTPLIB的C++庫,該庫是根據RTP標準RFC3550而編寫的。用戶只需要修改調用相應的API函數,就可以配置網絡,通過RTP協議發送數據了。移植的步驟如下:①獲取源碼,解壓縮;②配置安裝選項,選擇編譯環境為armlinux-gcc;③運行make命令完成編譯;④運行make install完成安裝,注意庫文件和頭文件的安裝目錄。
在經過編碼后的數據分為一個個的NAL單元結構,包括了NAL的起始碼,NAL頭部以及編碼的視頻數據。建立RTP會話時,會加上RTP的頭部報文,包含了頭部單元格式、RTP載荷類型等信息。在UDP傳輸時,又需要打上UDP頭部信息,包括了端口號、UDP數據長度等信息[10]。傳輸時要注意RTP包長度要小于MTU(最大傳輸單元)。
基于RTP的會話傳輸主要步驟如下:
①初始化RTP會話

②發送數據流

③接收數據
調用RTPsession類的函數遍歷所有源,檢測到有效數據源后,調用GetNextPacket()提取其中的RTP數據報文,然后進行處理工作。
3.2 網卡的驅動加載
本系統的4G上網卡選用的是中興的ME3760V2的一款上網模塊,該模塊支持TDD-LTE的band38、band39、band40、band41頻段,同時向下兼容TD-SCDMA及GSM頻段,支持最大的150 Mbps的上行數據傳輸速率。該模塊支持Linux操作系統。
在內核文件drivers/usb/serial/options.c中添加該網卡的ID號,添加cdc_encap和cdc_ether的源碼文件,通過make menuconfig命令,添加內核對usbnet驅動的支持。

執行make zImage命令,編譯通過后,將生成的內核鏡像下載到開發板上。上電啟動后,會看到內核打印信息,通過lsusb會看到/dev目錄下出現三個串口。通過AT指令方式撥號后,可連接至Internet,并返回動態IP地址[11]。查詢IP的指令為“AT+CGPADDR=1”,返回“+CGPADDR:1,“10.62.154.254””。通過udhcpc指令可動態獲取IP配置,此時,開發板已具有上網功能,可以用于視頻數據的網絡傳輸。連接成功后udhcpc命令輸出如下所示。

4G上網卡產生的IP為移動運營商分配的私網,由于網絡NAT技術的存在,用戶在PC端的另一局域網內是無法實現與開發板的網絡互訪的。這里,采用搭建VPN虛擬專用網絡的方法,通過組建VPN網絡,使得開發板和客戶端處于同一局域網內,從而實現兩端的訪問。VPN的實現基于隧道協議,通過既定的隧道協議,可以把一種協議以外的一種協議或者相同的協議進行封裝,還可以給用戶提供加密等安全服務。VPN服務器必須和客戶端使用相同的隧道協議,這樣才能實現VPN的連接。目前常用的隧道協議有以下3種:PPTP、L2TP和IPSec[12]。本設計選擇的協議是點對點隧道協議(Point-to-Point Tunneling Protocol,PPTP)。
VPN服務器選擇具有雙網卡的PC機,安裝Windows Server2008,搭建VPN的服務器。這臺PC機具有公網IP,可被訪問。用于視頻監控的客戶端PC同樣安裝客戶端程序,接入的網絡為局域網。該客戶機被設定為user1,接入VPN網絡后,會被分配一個VPN局域網內的虛擬IP地址,如表1所示。

表1 實驗中VPN網絡環境中各終端的IP地址信息
在開發板上需要添加對PPTP協議的支持,宿主機下載Linux系統下的PPTP客戶端程序后,解壓縮編譯,將可執行文件拷貝到開發板。在配置iptable防火墻放行和轉發規則后,建立一個VPN連接腳本文件,寫入本機的用戶名、帶有公網的VPN服務器的IP地址等信息。配置執行成功后,可以查看到本機被分配的同監視端同一網段的虛擬IP地址。這樣,客戶端PC機就可以同開發板處在了同一局域網環境內,就可以IP互訪,實現視頻的傳輸了。
在PC端,使用VLC播放器來播放實時視頻流。VLC不僅可以播放本地多媒體文件,還可以播放網絡視頻,既能用作媒體流服務器,又可以當成客戶端接收網絡流。在開發板端,連接網絡后,PC機打開VLC軟件,打開“媒體”,選擇“打開網絡串流”,輸入網絡的URL,這里輸入在VPN局域網內開發板端獲得的虛擬IP地址及端口號:rtp// 192.168.1.20:1240,同時導入名為h.264_live的sdp文件,內容為“m=video 1240 RTP/AVP 96 a=rtpmap:96 H264a=framerate:26c=IN IP4 192.168.1.30”經過測試,視頻播放流暢,畫面清晰。
經過系統測試,本系統可以很好地編碼并傳輸USB攝像頭采集的視頻圖像,經過4G網絡傳輸,在VPN局域網內的客戶端VLC播放器上可進行實時播放。由于開發板的USB1.1口的限制,本系統在幀速為26 fps,分辨率為176*144的圖像編碼后傳輸的效果較好,通過抓包工具測試在連續接收3 h左右,丟包率在2.1%,畫面流暢清晰,顯示出4G的網絡環境能夠很好地支持網絡視頻的傳輸。本系統經過擴展和改進,可以很好地應用于移動無線視頻監控領域。伴隨著4G技術更加成熟,加上H.265等更加有效的視頻壓縮技術,移動網絡下的高清網絡視頻監控行業將會有更大的進步。
[1]林承德,李少林,謝雄.基于3G無線網絡的視頻監控系統[J].計算機系統應用,2012,21(3):209-212.
[2]田慶吉.探析4G網絡中的關鍵技術[J].軟件,2014,35 (1):141-142.
[3]Zhao Qian.Research on family and shops real-time status of 3G Wireless Remote Monitoring System[J].Journal of Software,2011,6(5):814-818.
[4]蔡麗艷.基于H.264嵌入式網絡視頻監控系統的研究與實現[D].南京:南京郵電大學,2013:37-40.
[5]游向東,劉福良,劉軍,等.S3C6410中MFC的研究與應用[J].電子產品世界.2011(12):36-37,40.
[6]李波,盧文科,朱文超.基于3G和H.264的無線視頻監控系統的設計[J].微計算機信息,2011,27(5):78-79,19.
[7]西剎子.安防天下-智能網絡視頻監控技術詳解與實踐[M].北京:清華大學出版社,2010.
[8]宋敬彬,孫海濱.Linux網絡編程(第2版)[M].北京:清華大學出版社,2014.
[9]鄭慶紅.基于H.264的視頻傳輸系統的設計與實現[J].無線電工程,2011,41(8):12-14,40.
[10]王春香,紀松波.基于4G網絡的移動多媒體傳輸關鍵技術[J].無線電通信技術,2014,40(5):40-43.
[11?王志超,劉波,花於鋒.基于移動4G與ZigBee無線傳感網的網關設計[J].計算機測量與控制,2014,22 (3):863-865,878.
[12?龔辰杰.基于VPN的遠程視頻監控的實現[J].電腦知識與技術,2013,9(7):1529-1531.
Design and Implement of Video Monitoring System Based on 4G+VPN Technologies
YAN Guang-lai,ZHANG Wei-qiang,LI Wei
(College of Information Science and Engineering,Ningbo University,Ningbo Zhejiang 315211,China)
A monitoring system based on 4G and VPN(Virtual Private Network)is designed to overcome the drawbacks of traditional way and realize the demand of video monitoring in the remote areas.This video surveillance system uses ARM11 as the hardware platform,and works on embedded Linux operating system.It uses the V4L2 interface to capture image data,CPU integrated MFC module to code these image data to H.264 video stream with high compression ratio,and implements realtime video transmission by using RTP/RTCP protocol.Also,in this system,a VPN network is built by using VPN technology to solve the problem of private IP address when using 4G module access to the Internet.The experiment results show that the system has stable operation,smooth stream and low delay,and it can be used in various fileds.
4G;monitoring system;VPN;H.264
TN929.5
A
1003-3114(2015)05-81-5
10.3969/j.issn.1003-3114.2015.05.22
閆光來,張衛強,李維.基于4G+VPN技術的視頻監控系統設計與實現[J].無線電通信技術,2015,41(5):81-85.
2015-05-21
國家自然科學基金項目(61271137)
閆光來(1991—),男,在讀研究生,主要研究方向:嵌八式系統。張衛強(1963—),男,副教授,碩士生導師,主要研究方向:嵌入式系統。