《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于B/S模式的嵌入式視頻監(jiān)控系統(tǒng)的設計
基于B/S模式的嵌入式視頻監(jiān)控系統(tǒng)的設計
伍 儉,羅桂娥
(中南大學 信息科學與工程學院,湖南 長沙 410083)
摘要: 以ARM9處理器S3C2440為核心芯片搭建硬件平臺,采用嵌入式Linux操作系統(tǒng)為軟件開發(fā)平臺,設計了一種基于B/S模式的嵌入式視頻監(jiān)控系統(tǒng)的設計方案。通過構(gòu)建流媒體服務器,完成視頻數(shù)據(jù)的采集、壓縮、傳輸和保存。采用TCP/IP網(wǎng)絡協(xié)議,移植了Web服務器,開發(fā)了Java Applet程序,用戶通過瀏覽器即可對遠程視頻進行實時監(jiān)控。系統(tǒng)具有實時性強、體積小、成本低廉、性能穩(wěn)定、交互性好等特點,具有廣泛的應用價值。
Abstract:
Key words :

摘 要:ARM9處理器S3C2440為核心芯片搭建硬件平臺,采用嵌入式Linux操作系統(tǒng)為軟件開發(fā)平臺,設計了一種基于B/S模式的嵌入式視頻監(jiān)控系統(tǒng)的設計方案。通過構(gòu)建流媒體服務器,完成視頻數(shù)據(jù)的采集、壓縮、傳輸和保存。采用TCP/IP網(wǎng)絡協(xié)議,移植了Web服務器,開發(fā)了Java Applet程序,用戶通過瀏覽器即可對遠程視頻進行實時監(jiān)控。系統(tǒng)具有實時性強、體積小、成本低廉、性能穩(wěn)定、交互性好等特點,具有廣泛的應用價值。
關(guān)鍵詞:嵌入式;視頻采集視頻監(jiān)控;TCP/IP;B/S

    視頻監(jiān)控系統(tǒng)將被監(jiān)控現(xiàn)場的實時圖像和數(shù)據(jù)等信息準確、清晰、快速地傳送到監(jiān)控中心服務器,監(jiān)控中心將實時、直接地掌握各個被監(jiān)控現(xiàn)場的當前情況(包括圖像、聲音及其他敏感數(shù)據(jù)),從而對敏感事件進行快速反應[1]。視頻監(jiān)控正朝著數(shù)字化、網(wǎng)絡化、集成化的嵌入式視頻監(jiān)控方向蓬勃發(fā)展。相比傳統(tǒng)的視頻采集監(jiān)控系統(tǒng),嵌入式視頻監(jiān)控系統(tǒng)具有可靠性高、組網(wǎng)方便、可遠程監(jiān)控等優(yōu)點,因而更適用于工業(yè)控制、銀行、政府部門的安防系統(tǒng)中[2]。
    本文設計了一種具有用戶零維護、價格低廉、性能穩(wěn)定等特點的嵌入式視頻監(jiān)控系統(tǒng)。該系統(tǒng)以ARM處理器S3C2440和嵌入式Linux操作系統(tǒng)為核心平臺,通過USB攝像頭采集視頻數(shù)據(jù),基于TCP/IP協(xié)議進行網(wǎng)絡傳輸,用戶通過瀏覽器即可監(jiān)控遠程視頻,視頻可以保存,以便回放。
1 視頻監(jiān)控系統(tǒng)方案設計
1.1 監(jiān)控系統(tǒng)硬件平臺設計

    監(jiān)控系統(tǒng)硬件平臺是整個監(jiān)控系統(tǒng)的基礎,在系統(tǒng)設計中占有至關(guān)重要的地位,硬件選擇的成功與否直接決定著系統(tǒng)功能的優(yōu)劣。本設計中主要硬件有NAND Flash、嵌入式處理器S3C2440、SDRAM、網(wǎng)卡、USB接口攝像頭等。
    視頻監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)方案如圖1所示。系統(tǒng)以S3C2440處理器為核心,外擴其他外圍設備。S3C2440處理器是Samsung公司基于ARM公司的ARM920T處理器核,它是一款高度集成的芯片,主頻為400 MHz,提供了一套較完整的通用外圍設備接口,支持性價比非常高的NAND Flash啟動,可支持Linux等多種操作系統(tǒng)的移植[3]。


1.2 監(jiān)控系統(tǒng)軟件方案設計
    本系統(tǒng)選擇Linux操作系統(tǒng)作為軟件開發(fā)平臺,編譯環(huán)境采用交叉編譯調(diào)試的方式,嵌入式Linux的內(nèi)核選用2.6.13,根文件系統(tǒng)采用yaffs。
    一套完整的視頻監(jiān)控系統(tǒng)應該至少包含視頻數(shù)據(jù)的采集、處理、傳輸、存儲與控制等功能,為了很好地實現(xiàn)以上功能,本系統(tǒng)劃分為三大功能模塊:嵌入式流媒體服務器、嵌入式Web服務器和用戶視頻監(jiān)控端。嵌入式流媒體服務器模塊主要實現(xiàn)視頻數(shù)據(jù)的采集、存儲和傳輸?shù)裙δ埽磺度胧絎eb服務器模塊負責處理監(jiān)控端發(fā)來的請求并通過與瀏覽器的交互為用戶提供監(jiān)控平臺;用戶視頻監(jiān)控端模塊實現(xiàn)對遠程視頻的實時監(jiān)控,并且可以控制視頻的亮度和對比度等。
2 嵌入式流媒體服務器的實現(xiàn)
    流媒體服務器模塊的主要功能有視頻采集、視頻壓縮、視頻存儲和視頻傳輸。本系統(tǒng)采用中星微公司生產(chǎn)的ZC0301芯片的USB攝像頭,ZC0301主要由五大功能模塊組成,即系統(tǒng)控制、圖像信號處理、次取樣和水平掃描模塊、JPEG編碼器和USB設備控制[4]。采用該芯片的攝像頭應用最廣泛,方便購買和維護,經(jīng)過此芯片處理后得到的是JPEG編碼的位流,實現(xiàn)了視頻的壓縮。
2.1 基于Video4Linux的視頻采集
    Video4Linux(簡稱“V4L”)是Linux中關(guān)于視頻設備的內(nèi)核驅(qū)動,它是針對視頻設備的應用程序編程提供的一系統(tǒng)接口函數(shù)。視頻采集的基本流程如圖2所示。利用V4L對USB攝像頭的編程需要用到Linux下2個系統(tǒng)調(diào)用,分別是ioctl()調(diào)用和mmap()調(diào)用。

    在V4L標準中提供了多個數(shù)據(jù)結(jié)構(gòu)和控制命令, 程序通過調(diào)用函數(shù)對設備進行控制, 完成視頻采集的任務。ioctl()函數(shù)中主要的設備控制命令有:
    (1)VIDIOCGCAP:獲取采集設備基本信息,比如支持最大最小分辨率等;
    (2)VIDIOCSPICT、VIDIOCGPICT:分別為設置和獲取采集圖像的各種屬性;
    (3)VIDIOCGMBUF:獲取緩沖區(qū)信息,比如每幀大小、最多支持的幀數(shù)等;
    (4)VIDIOCMCAPTURE:捕捉圖像,獲取圖像信息;
    (5)VIDIOCSYNC:等待采集一幀圖像完畢。
    應用程序獲取攝像頭采集的圖像數(shù)據(jù)有兩種方法,分別是read()(直接讀取的方法)和mmap()(內(nèi)存映射的方法)。mmap()系統(tǒng)調(diào)用使得進程之間通過映射同一個文件而實現(xiàn)內(nèi)存共享,優(yōu)點是效率高,因為進程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)的拷貝,加速了I/O訪問,本系統(tǒng)就采用此方法。
2.2 基于TCP/IP協(xié)議的視頻傳輸
    TCP/IP協(xié)議指的是Internet上使用的兩種網(wǎng)絡協(xié)議,即傳輸控制協(xié)議和網(wǎng)際協(xié)議。TCP協(xié)議是一個可靠的點到點之間的協(xié)議,IP協(xié)議是一個傳輸層的協(xié)議。TCP/IP協(xié)議族可以將各種操作系統(tǒng)和網(wǎng)絡部件連接起來,它提供了一種在各種系統(tǒng)間移動數(shù)據(jù)的標準方法[5]。
    本系統(tǒng)中,首先服務器通過socket函數(shù)創(chuàng)建套接字,并使用bind函數(shù)將套接字與某端口進行綁定;然后調(diào)用listen函數(shù),服務器將處于監(jiān)聽狀態(tài),等待用戶監(jiān)控端請求連接指定端口;當接收到用戶監(jiān)控端的連接請求后,服務器調(diào)用accept函數(shù)來建立與用戶監(jiān)控端間的通信;在成功建立通信后,就可以通過read函數(shù)或write函數(shù)進行通信。
    本系統(tǒng)可以人機交互,用戶通過網(wǎng)頁可以向視頻服務器傳遞控制信息,比如調(diào)節(jié)幀速、亮度等。當建立連接后,首先用戶監(jiān)控端發(fā)送一個包含控制信息的client_t結(jié)構(gòu)體數(shù)據(jù)給視頻服務器;然后視頻服務器根據(jù)控制信息采集一幀視頻數(shù)據(jù),并生成一個包含這一幀視頻信息的frame_t結(jié)構(gòu)體數(shù)據(jù),把它們發(fā)送給用戶監(jiān)控端。這就完成了一次人機交互,這樣不斷地循環(huán),就實現(xiàn)了數(shù)據(jù)傳輸。
3 嵌入式Web服務器的實現(xiàn)
3.1 嵌入式Web服務器的選擇

    Linux下嵌入式Web服務器主要有3個,分別是httpd、thttpd和Boa。httpd是最簡單的一個Web服務器,它的功能最弱,不支持認證,不支持CGI。thttpd和Boa都支持認證和CGI等,功能都比較全。本系統(tǒng)采用Boa Web服務器,它通過建立HTTP請求列表來處理多路HTTP連接請求,節(jié)省了系統(tǒng)資源,這對嵌入式系統(tǒng)來說至關(guān)重要。同時它還具有自動生成目錄、自動解壓文件等功能。Boa具有很高的HTTP請求處理速度和效率,在嵌入式系統(tǒng)中具有很高的應用價值。
3.2 Boa在ARM上的移植與配置
    (1)移植過程
    從http://www.boa.org/下載Boa源碼,選擇boa-0.94.13.tar.gz,輸入解壓命令“tar xzvf boa-0.94.13.tar.gz”;進入解壓生成的源碼目錄下的src子目錄,輸入命令“./configure”,生成Makefile文件;修改Makefile文件,將CC和CPP的值改成交叉編譯器安裝的路徑;輸入命令“make”即可交叉編譯生成可執(zhí)行文件Boa,通過串口下載到根文件系統(tǒng)下的/ bin下就實現(xiàn)了移植。
    (2)配置
    在/etc目錄下新建一個Boa目錄,里面存放Boa的主要配置文件boa.conf,在Boa源碼目錄下已有一個示例boa.conf,可以在其基礎上進行修改;修改Group nogroup為Group root,修改User nobody為User root,這里的root是開發(fā)板存在的組和用戶;修改#ServerName www.your.org.here為ServerName cs2440;修改DocumentRoot /var/www為DocumentRoot /www,設置HTML文檔的主目錄/www,其他采用默認設置即可。此外,還需要將mime.types文件復制到/etc目錄下,通常可以從Linux主機的/etc目錄下直接復制即可。
4 基于B/S模式的用戶視頻監(jiān)控端實現(xiàn)
    系統(tǒng)采用B/S模式,相比C/S模式,用戶不需要做任何維護,這對用戶人力、物力、時間、費用的節(jié)省是顯而易見的,并且可以跨平臺操作,真正方便了用戶。
    系統(tǒng)通過開發(fā)Java Applet應用程序,并嵌入網(wǎng)頁中,網(wǎng)頁名稱設為Boa Web服務器默認主頁名,把它們保存在/www中,用戶在瀏覽器地址欄中輸入視頻服務器的IP地址,就能在網(wǎng)頁里顯示攝像頭的監(jiān)控圖像。通過Java Applet與視頻服務器進行交互,實現(xiàn)對視頻數(shù)據(jù)的控制、傳輸和播放。Java Applet程序中主要功能步驟和主要函數(shù)可描述為:
    (1)創(chuàng)建套接字、輸入流和輸出流。
    connection=new Socket(m_strServer,port);
    in=connection.getInputStream();
    out=connection.getOutputStream();
    IP地址及端口都是由嵌入在HTML中<applet>…</applet>部分的參數(shù)傳入的,并創(chuàng)建此Socket對象的輸入流和輸出流。
    (2)分配接收緩沖區(qū):byte[]buffer=new byte[512*1024];
    (3)發(fā)送一個用戶控制信息。它由用戶用鼠標點擊圖標而生成。當用戶點擊瀏覽器中的視頻窗口時,在上方會顯示亮度等圖標,通過點擊圖標兩側(cè)的“+”和“-”而寫入控制信息;當點擊圖標以外的地方,圖標就會消失,實現(xiàn)全窗口的視頻,便于監(jiān)控,操作簡單。
    Public void mouse(MouseEvent evt) {…};
    out.write(b);//b是包含控制信息的字符數(shù)組名
    (4)讀取一幀圖像頭信息,確認圖像數(shù)據(jù)的正確性和獲取圖像數(shù)據(jù)的大小。
    n=in.read(buffer,0,HDRLEN);//HDRLEN為圖像信息頭長度,設置為50 B
    對頭信息中包含的約定字符進行判斷,若正確就可以繼續(xù)接收圖像數(shù)據(jù),不正確則返回(3)。
    (5)讀取圖像數(shù)據(jù),把頭信息后的圖像數(shù)據(jù)寫入緩沖區(qū),以供播放顯示。
    r=in.read(buffer,HDRLEN,buffer.length-HDRLEN);
    (6)實現(xiàn)圖像顯示。由于緩沖區(qū)中包含圖像頭信息,為單獨使用圖像數(shù)據(jù),需把圖像數(shù)據(jù)拷貝到另一緩沖區(qū)buffer2中。
    BufferedImage image=    ImageIO.read(new ByteArrayInputStream(buffer2));
    ImageIcon ii=new ImageIcon(image);
    m_label.setIcon(ii);//顯示圖像
    通過以上(3)到(6)的不斷循環(huán)運行,用戶從監(jiān)控網(wǎng)頁上可以看到連續(xù)動態(tài)的圖像,效果很好,畫面流暢,不存在明顯的延時,實現(xiàn)了視頻監(jiān)控。
    本文提出的這種基于B/S的嵌入式視頻監(jiān)控系統(tǒng)相比傳統(tǒng)C/S模式,真正實現(xiàn)了用戶零維護,可以跨平臺監(jiān)控,方便用戶。采用嵌入式處理器和Linux操作系統(tǒng)相結(jié)合,很好地體現(xiàn)了本監(jiān)控系統(tǒng)具有集成化、網(wǎng)絡化、功耗低等優(yōu)點,可廣泛擴展應用在工業(yè)控制、可視電話、交通管理等諸多領(lǐng)域。
參考文獻
[1] 劉富強.數(shù)字視頻監(jiān)控系統(tǒng)的開發(fā)及應用[M」.北京:機械工業(yè)出版社,2003:2-16.
[2] 于明,范書瑞,曾祥燁.ARM9 嵌入式系統(tǒng)設計與開發(fā)教程[M].北京:電子工業(yè)出版社,2006:15-75.
[3] Samsung Electronics.S3C2440A 32-Bit CMOS Microcontroller User’s Manual[S],2004.
[4] Vimicro Corporation.ZC0301 Preliminary Data Sheet[M/CD].2002.
[5] 張曦煌,柴志雷.Linux中TCP/IP協(xié)議實現(xiàn)及嵌入式應用[M].北京:北京航空航天大學出版社,2008:5-12.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美高清视频在线| 国产午夜精品麻豆| 欧美在线播放| 亚洲一区二区精品在线| 亚洲麻豆av| 日韩一级大片| 亚洲日韩欧美一区二区在线| 久久精品国产99精品国产亚洲性色| 亚洲综合三区| 亚洲欧美日本视频在线观看| 亚洲在线中文字幕| 中文亚洲欧美| 亚洲综合色自拍一区| 亚洲在线免费观看| 亚洲欧美一级二级三级| 亚洲一区免费网站| 亚洲综合视频1区| 香蕉久久夜色精品| 欧美专区在线| 久久精品国产v日韩v亚洲| 久久精品水蜜桃av综合天堂| 亚洲大胆在线| 亚洲韩日在线| 一本大道久久精品懂色aⅴ| 一本一本久久a久久精品牛牛影视| 99视频超级精品| 中文一区二区在线观看| 亚洲图片欧美日产| 亚洲女同性videos| 欧美专区日韩专区| 免费观看一级特黄欧美大片| 欧美激情乱人伦| 欧美三区在线| 国产美女精品一区二区三区| 韩国一区二区三区在线观看| 1024成人| 99在线精品免费视频九九视| 亚洲一区一卡| 欧美呦呦网站| 亚洲精品午夜精品| 亚洲一级在线| 欧美在线视频免费观看| 免播放器亚洲| 欧美日韩综合视频| 国产免费亚洲高清| 在线成人性视频| 99热免费精品| 校园春色综合网| 亚洲激情自拍| 亚洲一区二区三区中文字幕 | 欧美专区日韩视频| 亚洲乱码久久| 性欧美精品高清| 美女精品在线观看| 欧美性理论片在线观看片免费| 国产拍揄自揄精品视频麻豆| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲免费成人av电影| 亚洲免费网址| 亚洲日本va在线观看| 亚洲主播在线观看| 蜜臀av一级做a爰片久久| 国产精品久久久久久久app| 激情另类综合| 亚洲午夜精品17c| 亚洲国产精品成人综合色在线婷婷 | 亚洲缚视频在线观看| 亚洲一本大道在线| 美日韩精品免费| 欧美午夜视频网站| 在线观看亚洲| 午夜精品免费视频| av成人免费观看| 久久精品国产精品亚洲精品| 欧美日韩成人综合在线一区二区| 国产一区二区三区av电影| 亚洲精品一区在线| 久久电影一区| 亚洲免费视频网站| 欧美精品一区二区蜜臀亚洲| 国产日韩欧美| 在线亚洲欧美专区二区| 亚洲免费观看高清在线观看| 久久99在线观看| 国产精品video| 亚洲国产精品一区二区三区| 欧美一区二区在线看| 亚洲自拍偷拍视频| 欧美极品在线播放| 激情成人亚洲| 亚洲欧美激情一区二区| 亚洲一区二区网站| 欧美国产一区视频在线观看| 国内精品久久久久影院色| 亚洲综合第一| 亚洲主播在线观看| 欧美日韩国产小视频| 亚洲第一黄色网| 久久成人在线| 久久九九精品99国产精品| 国产精品美女一区二区| 99re66热这里只有精品4| 亚洲黄色成人久久久| 久久久久久一区二区| 国产欧美日韩亚洲精品| 亚洲一区不卡| 亚洲天堂成人在线观看| 欧美日韩国产天堂| 亚洲精品少妇网址| 最近中文字幕mv在线一区二区三区四区 | 一区二区三区精品国产| 欧美成人综合| 伊人狠狠色丁香综合尤物| 欧美一区日韩一区| 久久精品人人| 国内偷自视频区视频综合| 午夜伦欧美伦电影理论片| 午夜久久电影网| 国产精品丝袜91| 亚洲一区二区三区高清| 亚洲自拍16p| 欧美视频在线观看免费| 99xxxx成人网| 亚洲午夜羞羞片| 欧美日韩在线影院| 99天天综合性| 亚洲无限av看| 国产精品进线69影院| 亚洲最新在线| 亚洲欧美一区二区原创| 国产精品亚洲精品| 欧美一区二区观看视频| 久久精品五月婷婷| 一区二区在线视频观看| 亚洲国产高潮在线观看| 欧美大片第1页| 99国产精品久久| 午夜天堂精品久久久久| 国产视频亚洲精品| 亚洲国产精品久久久久秋霞蜜臀| 欧美本精品男人aⅴ天堂| 亚洲激情视频在线观看| 在线天堂一区av电影| 欧美午夜在线视频| 亚洲欧美另类久久久精品2019| 久久精品国产77777蜜臀| 精品成人国产| 99在线视频精品| 国产精品男女猛烈高潮激情| 性欧美大战久久久久久久久| 久久青草欧美一区二区三区| 亚洲国产综合在线看不卡| 中文高清一区| 国产欧美二区| 91久久精品国产91性色| 欧美日韩一区在线| 性刺激综合网| 欧美成人一二三| 一区二区欧美日韩| 久久久久久久一区二区三区| 亚洲高清av| 亚洲欧美日韩国产综合| 国内精品久久久久久久影视蜜臀 | 国产精品毛片一区二区三区| 欧美一区二区成人| 欧美激情久久久久久| 亚洲在线一区二区三区| 欧美77777| 亚洲一区二区三区四区五区午夜 | 亚洲图片欧美一区| 国内精品久久久久影院色| 一区二区av在线| 国产欧美日韩一区二区三区| 亚洲欧洲一区二区三区在线观看 | 亚洲欧美国产日韩天堂区| 免费看精品久久片| 亚洲男女自偷自拍图片另类| 蜜臀91精品一区二区三区| 宅男在线国产精品| 麻豆成人精品| 亚洲一区国产视频| 欧美波霸影院| 午夜精品久久久久久久久久久久久 | 久久精品一区二区三区中文字幕| 欧美日本一区| 久久国产欧美日韩精品| 欧美日韩直播| 亚洲啪啪91| 国产欧美一区二区白浆黑人| 一区二区三区波多野结衣在线观看| 国产一区二区三区久久精品| 亚洲视频在线观看视频| 狠狠做深爱婷婷久久综合一区| 亚洲午夜av在线| 亚洲承认在线| 久久久久国产精品一区三寸| 艳女tv在线观看国产一区| 欧美成人黑人xx视频免费观看| 亚洲综合色丁香婷婷六月图片| 欧美日本在线播放|