毛捷
(迪中(上海)網(wǎng)絡(luò)科技有限公司,上海 200000)
視頻監(jiān)控軟件是安全防范系統(tǒng)的重要組成部分,視頻監(jiān)控軟件憑借其實(shí)時(shí)性和私密性被媒體視頻會(huì)議以及工業(yè)和家庭現(xiàn)場的遠(yuǎn)程監(jiān)控等領(lǐng)域所廣泛應(yīng)用,并取得了較大的成績。隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,視頻監(jiān)控已經(jīng)逐漸從以往傳統(tǒng)的模擬監(jiān)控逐漸成為當(dāng)前嵌入式的網(wǎng)絡(luò)視頻服務(wù)器技術(shù)的網(wǎng)絡(luò)監(jiān)控系統(tǒng)。因此,本文主要以嵌入式微處理器的S3C6410為核心,使用Z301攝像頭通過USB接口與處理器相連,向S3C6410提供YUY2格式的視頻幀。軟件設(shè)計(jì)方面,通過CPU內(nèi)部集成的MFC模塊實(shí)現(xiàn)基于H.264的視頻流壓縮。并將BOA移植到S3C6410板卡上的Linux系統(tǒng),建立了嵌入式web服務(wù)器,為遠(yuǎn)程客戶端提供基于HTTP協(xié)議的網(wǎng)絡(luò)接入方式,通過CGI腳本對遠(yuǎn)程客戶端的請求進(jìn)行響應(yīng),發(fā)送經(jīng)過編碼的視頻數(shù)據(jù)包。本文完成了圖像的采集、編碼、傳輸、顯示模塊的設(shè)計(jì),并在局域網(wǎng)內(nèi)進(jìn)行了調(diào)試與驗(yàn)證。實(shí)驗(yàn)結(jié)果表明:系統(tǒng)設(shè)計(jì)合理,方案可行。
硬件系統(tǒng)采用以S3C6410為核心的板卡作為嵌入式硬件開發(fā)平臺(tái)。S3C6410集成了ARM1176JZF-S型號(hào)的CPU,正常運(yùn)行頻率可達(dá)553MHz,具有高性價(jià)比、低功耗等特點(diǎn)。它采用32位內(nèi)部總線架構(gòu),S3C6410內(nèi)置強(qiáng)大的多媒體處理單元,可進(jìn)行圖像的處理、音頻的處理、顯示操作和縮放。為了進(jìn)一步提升實(shí)驗(yàn)的效率并將實(shí)際的費(fèi)用降至最低,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的相關(guān)技術(shù)工作人員經(jīng)過翻閱資料和以往的經(jīng)驗(yàn),從備選的相關(guān)設(shè)備中選出性價(jià)比最為合適的方法進(jìn)行壓縮和工作,在這過程中所選用的是JPEG壓縮,其中的圖像傳感器主要是利用壓縮編碼芯片來對攝像頭所傳送的視頻數(shù)進(jìn)行處理,并接受原始的圖像數(shù)據(jù),最后需要通過對應(yīng)的編碼器來將圖像進(jìn)行壓縮并通過USB來傳輸?shù)轿⑻幚砥髦?。嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)主要是分為服務(wù)器端和客戶端組成,服務(wù)器端和客戶端又有著不同的功能,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的服務(wù)器端主要負(fù)責(zé)原始圖像經(jīng)過相關(guān)的壓縮芯片來對實(shí)際的編碼進(jìn)行壓縮,經(jīng)過壓縮后輸出JPEG格式的二進(jìn)制,通過TCP協(xié)議的多播放時(shí)將采集的圖像通過接口來發(fā)送到瀏覽器中,其中的瀏覽器客戶端主要是可以在進(jìn)行編寫的控件中可以真正的實(shí)現(xiàn)與服務(wù)器端的進(jìn)行網(wǎng)絡(luò)通信、視頻圖像等功能,再經(jīng)過服務(wù)器進(jìn)行發(fā)布,從而真正的實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的目的,主體如圖1所示。
圖1 硬件結(jié)構(gòu)圖
由于S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的實(shí)際模型為客戶端-服務(wù)器模型,因此,在進(jìn)行上述兩種的其中一種模型中,都需要客戶端向服務(wù)器發(fā)送請求信息,并保證服務(wù)器對客戶端的請求信息進(jìn)行響應(yīng),以此來真正的實(shí)現(xiàn)遠(yuǎn)程通訊。當(dāng)前遠(yuǎn)程服務(wù)器端和客戶端的通信均采用TCP協(xié)議,在進(jìn)行通訊的過程中需要按照相關(guān)的協(xié)議進(jìn)行辦事。
因此,該協(xié)議主要是面向連接以及有效提供差錯(cuò)控制,以此來有效的避免進(jìn)行遠(yuǎn)程監(jiān)控中出現(xiàn)不必要的差錯(cuò)。也正是如此,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)在進(jìn)行視頻的實(shí)時(shí)監(jiān)控和傳輸?shù)膶?shí)時(shí)傳輸協(xié)議RTP(real time transport protocol)以及實(shí)時(shí)傳輸控制協(xié)議RTCP(real time transport control protocol)。
S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)采用了套接字接口來有效的實(shí)現(xiàn)客戶端和服務(wù)器端的通訊,其中的套接字主要是由通訊協(xié)議。IP以及端口進(jìn)行組成的,其中的端口主要代表的是通信進(jìn)程,若是S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的使用協(xié)議有區(qū)別,那么套接字也有一定的區(qū)別,并主要表現(xiàn)在流格式、數(shù)據(jù)包格式以及原始格式。但是,無論是流格式、數(shù)據(jù)報(bào)格式還是原始格式,都使用TCP協(xié)議,在進(jìn)行通信的過程中,相關(guān)專業(yè)的工作人員還需要保證數(shù)據(jù)報(bào)的格式是對應(yīng)TCP協(xié)議的,在對應(yīng)該協(xié)議的同時(shí),S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)也是面向無連接狀態(tài)的,在這一過程中,數(shù)據(jù)的收發(fā)可能并不能保持統(tǒng)一,這就會(huì)出現(xiàn)都是數(shù)據(jù)等情況的發(fā)生。與此同時(shí),S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)主要由客戶端與服務(wù)器之間的通訊以及視頻采集壓縮處理的兩個(gè)功能,其中的客戶端應(yīng)用程序在完成與服務(wù)器通訊之外還要顯示遠(yuǎn)程的視頻。
S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的視頻數(shù)據(jù)采集壓縮模塊主要是用于視頻數(shù)據(jù)的實(shí)時(shí)采集,相關(guān)專業(yè)的技術(shù)人員在進(jìn)行視頻數(shù)據(jù)采集過程中的視頻應(yīng)用程序,主要是通過標(biāo)準(zhǔn)的系統(tǒng)調(diào)用便可以進(jìn)行不同種類視頻的捕獲。在S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)實(shí)驗(yàn)中進(jìn)行視頻圖像采集中所用到的是Video4 Linux的驅(qū)動(dòng)系統(tǒng),其中的視頻圖像采集代碼如下。
(1)視頻設(shè)備開啟。
Struct vdIn ?vd
I f ((v d-》c d= o p e n(v d-》v i d e o,O-RDWR))= =-1)
Exit-fatal(“ERROR opening interface”);
(2)視頻以及圖像信息的獲取。
Struct vdIn ?vd//獲取設(shè)備相關(guān)信息
If (ioctl(vd-》cd,videocgcap,& (VD->ORDWR))= =-1)
Exit-fatal(“could not get video device capability”);//獲取圖像相關(guān)信息
If (ioctl(VIDIOGPICT,& (VD->O-RDWR))<0)
E x i t-f a t a l(“c o u l d n o t g e t v i d e o VIDIOGPICT”);
上述的程序中主要是分為三種狀態(tài),首先是初始化的采集窗口以及顏色模式。其中相關(guān)專業(yè)的技術(shù)人員需要將圖片的格式設(shè)置為JPEG格式,圖片的大小為640×320。其次是捕捉視頻幀數(shù)據(jù),Read (videoIn.fd,videoIn.pF ramebuffer,size)在這里所采用的是直接的讀取視頻設(shè)備,并將視頻設(shè)備作為設(shè)備文件進(jìn)行圖像的取讀,從而將IP組播方式進(jìn)行發(fā)出。最后是關(guān)閉視頻設(shè)備,在這過程中的圖像采集主要為內(nèi)存映射方式以及直接取讀方式,當(dāng)S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中所要展示的普通文件被映射到相應(yīng)的地址空間后,便可以與以往的內(nèi)存一樣對S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的文件進(jìn)行訪問。
對于S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的視頻數(shù)據(jù)保存和播放的實(shí)現(xiàn)主要是包括兩個(gè)方面,分別是視頻圖像保存以及視頻的實(shí)時(shí)播放,其中的視頻圖像保存主要是將調(diào)用系統(tǒng)函數(shù)來創(chuàng)建JPG文件,再通過該文件來調(diào)用系統(tǒng)函數(shù)填寫SOI等標(biāo)記碼所需要的信息,從而將IPEG進(jìn)行壓縮后的相關(guān)圖像數(shù)據(jù)接著標(biāo)記碼來進(jìn)行填入,并調(diào)整用相關(guān)技術(shù)工作人員做好的系統(tǒng)函數(shù)來關(guān)閉該文件。其次是視頻的實(shí)時(shí)播放,對于這點(diǎn)主要是通過com和Ipicture進(jìn)行實(shí)現(xiàn)的,在這過程中需要對IPicture的對象進(jìn)行實(shí)例化,以此來幫助S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)進(jìn)行進(jìn)一步的視頻圖像的顯示,然后再通過上述的組建將每一幀都連續(xù)的繪制在屏幕上,以此來形成動(dòng)態(tài)播放。在這過程中,該組件考慮到S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)是需要進(jìn)行多個(gè)角度監(jiān)控的,因此,該組件也可以實(shí)現(xiàn)多個(gè)終端視頻的同步播放。
對于S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的圖像采集驅(qū)動(dòng)程序模塊來講,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)中的圖像采集驅(qū)動(dòng)程序模塊主要是由傳感器和壓縮芯片所組成的,由于USB的攝像頭驅(qū)動(dòng)程序是一個(gè)較為復(fù)雜的模塊,并在無形中增加了獨(dú)立開發(fā)難度。但是,為了有效的解決上述問題,相關(guān)的技術(shù)人員已經(jīng)采用支持ZC0301的驅(qū)動(dòng)程序補(bǔ)丁,并將其移植到嵌入式視頻服務(wù)器中,從而移植成功。當(dāng)安裝成功時(shí),S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)會(huì)在文件的目錄中自動(dòng)生成video的設(shè)備文件,通過video的設(shè)備文件也能對上述所提及的設(shè)備文件的讀寫來獲取視頻壓縮芯片中的視頻流,從而保證S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)得以正常的運(yùn)行。
在本系統(tǒng)中用VLC對H.264格式的數(shù)據(jù)進(jìn)行解碼與顯示。將客戶端主機(jī)與服務(wù)器目標(biāo)板連接到一個(gè)路由器上面,并且為處于同一網(wǎng)段內(nèi)目標(biāo)板與客戶端分配靜態(tài)的IP地址。如圖2所示為攝像頭采集到的原始圖像截圖。
總而言之,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)是監(jiān)控系統(tǒng)的新研發(fā)產(chǎn)品,更是憑借著體積小、易維護(hù)、高可靠性等優(yōu)秀性能被安全防范系統(tǒng)等重要部門所廣泛使用并取得了較大的成績。由此可見,S3C6410的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)仍有較大的發(fā)展前景和進(jìn)一步的改造空間。
參考文獻(xiàn):
[1]高建輝,黃世震.基于H264的遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,,2017,36(19):93-94.
[2]趙丹等.基于MJPG-streamer的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2017,17(4):51-54.
[3]陳名松等.基于OpenCV與NAT-DDNS的遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].電視技術(shù),,2017,41(4):234-238.
[4]李子昌,李智,管四海.自動(dòng)裝載與視頻監(jiān)控遠(yuǎn)程控制系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(1):1-3.
[5]王菲.嵌入式智能家居控制系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)與軟件工程,2017(16):193-194.
[6]杜通,劉思園,莊旭菲.基于B/S架構(gòu)的嵌入式Linux網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].科技資訊,2017(14):1-2.
[7]劉明緣,李翔.可移動(dòng)遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子制作,2017(13):5-6.