999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web服務(wù)的嵌入式視頻服務(wù)器

2010-04-12 00:00:00孫士明,王愛國,謝星周
現(xiàn)代電子技術(shù) 2010年22期

摘 要: 為了解決視頻監(jiān)控系統(tǒng)中多樣性、異構(gòu)性的設(shè)備集成難問題,采用Web服務(wù)與流媒體技術(shù)設(shè)計(jì)了一種嵌入式視頻服務(wù)器。給出視頻服務(wù)器的硬件結(jié)構(gòu);基于嵌入式Linux操作系統(tǒng),詳細(xì)闡述了視頻服務(wù)器軟件的設(shè)計(jì)與實(shí)現(xiàn)過程;視頻服務(wù)器適用于具有跨語言、跨平臺(tái)特性的視頻監(jiān)控系統(tǒng)的設(shè)備集成。應(yīng)用于油井監(jiān)控局域網(wǎng)中時(shí),在單個(gè)遠(yuǎn)程終端鏈接情況下,視頻服務(wù)器速率達(dá)25 f/s,可滿足一般的監(jiān)控要求。關(guān)鍵詞:Web Services; 嵌入式系統(tǒng); Linux; 流媒體

中圖分類號(hào):TN919.85-34文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2010)22-0060-04

Embedded Video Server Based on Web Service

SUN Shi-ming1, WANG Ai-guo1, XIE Xing-zhou2

(1. College of Computer and Communication Engineering, China University of Petroleum, Dongying 257061, China;

2. Gudao Oil Plant, Sinopec Shengli Oilfield Company, Dongying 257321, China)

Abstract: An embedded video monitoring server is designed with the technologies of Web services and streaming media to solve the problems of integration of diversity and heterogeneity equipments in video monitoring system. The hardware structure of the video server is elaborated. The software design and implementation of the video server based on Linux2.6.24 is illustrated in detail. The video server is appropriate to the equipment integration of the video monitoring system with the features of cross-language and cross-platform and can be applied to monitoring system easily. The velocity of video server can reach up to 25 f/s and can meet the requirement of general monitoring when the single remote terminal is linked in LAN of well monitoring system.

Keywords: Web service; embedded system; Linux; streaming media

收稿日期:2010-06-30

目前,視頻監(jiān)控在煤炭安全生產(chǎn)[1]、樓宇安防[2]、森林火災(zāi)監(jiān)控[3]等領(lǐng)域逐步得到應(yīng)用,出現(xiàn)了各式各樣的嵌入式視頻服務(wù)器;同時(shí),視頻監(jiān)控系統(tǒng)也向著一體化、視頻數(shù)字化、監(jiān)控網(wǎng)絡(luò)化、系統(tǒng)集成化方向發(fā)展[4],各種視頻服務(wù)器的集成和統(tǒng)一管理變得越來越困難。本文設(shè)計(jì)了一種基于Web Services的嵌入式流媒體視頻服務(wù)器,借助Web Services跨平臺(tái)、跨語言的分布式模型[5],通過RTP/RTCP協(xié)議實(shí)時(shí)傳輸視頻流,實(shí)現(xiàn)了視頻監(jiān)控設(shè)備的無縫連接與統(tǒng)一管理。

1 視頻服務(wù)器的硬件結(jié)構(gòu)

視頻服務(wù)器硬件分為核心板和底板兩部分。核心板使用ARM S3C2440處理器,擴(kuò)展64 MB SDRAM和64 MB FLASH外部存儲(chǔ)器,集成時(shí)鐘電路和JTAG接口電路;底板提供視頻采集接口,包括視頻采集芯片與MPEG壓縮芯片,4線RS 232串口,由以太網(wǎng)控制器和RJ45接口組成的以太網(wǎng)接口[6]。硬件結(jié)構(gòu)如圖1所示。

系統(tǒng)通過以太網(wǎng)接口獲取遠(yuǎn)程終端的控制數(shù)據(jù),利用串口對(duì)設(shè)備進(jìn)行操控;通過視頻采集電路獲取壓縮后的視頻數(shù)據(jù),使用RTP協(xié)議將數(shù)據(jù)打包后通過以太網(wǎng)接口發(fā)送到遠(yuǎn)程終端,完成視頻的實(shí)時(shí)傳輸。

圖1 視頻服務(wù)器的硬件結(jié)構(gòu)圖

2 視頻服務(wù)器的軟件設(shè)計(jì)與實(shí)現(xiàn)

2.1 軟件總體結(jié)構(gòu)

視頻服務(wù)器的軟件基于Linux操作系統(tǒng),分為兩個(gè)模塊:Web Services模塊和視頻采集與傳輸模塊。其中Web Services模塊主要負(fù)責(zé)對(duì)攝像頭及云臺(tái)的操控,將操控?cái)z像頭和云臺(tái)的功能接口以Web服務(wù)的形式發(fā)布給遠(yuǎn)程終端,從而屏蔽了攝像頭和云臺(tái)的異構(gòu)性,方便遠(yuǎn)程終端對(duì)設(shè)備進(jìn)行集成和統(tǒng)一管理。視頻采集與傳輸模塊主要負(fù)責(zé)將采集到的視頻數(shù)據(jù)通過RTP/RTCP協(xié)議打包,然后傳送給遠(yuǎn)程終端。視頻服務(wù)器結(jié)構(gòu)如圖2所示。

2.2 Web Services模塊

Web Services使用標(biāo)準(zhǔn)的、通用的通信模型,它在HTTP,XML,SOAP,WSDL,UDDI 之上提供統(tǒng)一的編程模型,使用統(tǒng)一的方法,公共的基礎(chǔ)結(jié)構(gòu)和統(tǒng)一文本格式,適合于Internet/Intranet分散型應(yīng)用。服務(wù)請(qǐng)求者與服務(wù)提供者之間通過SOAP(簡單對(duì)象訪問協(xié)議)消息進(jìn)行綁定和通信。SOAP協(xié)議定義了用于在系統(tǒng)之間進(jìn)行通訊的標(biāo)準(zhǔn)XML消息格式,可使用SOAP在多種計(jì)算機(jī)體系結(jié)構(gòu)、語言和操作系統(tǒng)之間進(jìn)行通信。Web Services模塊流程圖如圖3所示。

圖2 視頻服務(wù)器的結(jié)構(gòu)

圖3 Web Services模塊流程圖

選用gsoap作為Linux下Web Service的開發(fā)工具。gsoap是一款使用C/C++編寫的開源的Web Service開發(fā)工具,具有占用系統(tǒng)資源少、運(yùn)行速度快、可裁減等特點(diǎn)[7]。gsoap工具包中提供了兩個(gè)可執(zhí)行文件:wsdl2h 和soapcpp2。wsdl2h.exe用來解析wsdl文檔生成描述服務(wù)的C/C++頭文件,soapcpp2.exe用來解析該頭文件并生成框架代碼[8]。

利用gsoap工具包開發(fā)視頻服務(wù)器的Web Service,首先編寫一個(gè)頭文件service.h,聲明4個(gè)Web Service接口,該頭文件的主要內(nèi)容如下:

typedef int xsd__int;

struct ns2_CameraInf //攝像頭信息結(jié)構(gòu)體

{ xsd_int Cam_ID; //編號(hào)

xsd_int Cam_width; //分辨率:寬

xsd_int Cam_height; //分辨率:高

xsd_int Cam_hue; //色調(diào)

xsd_int Cam_contrast; //對(duì)比度

xsd_int Cam_brightness; //亮度

xsd_int Cam_focus;//焦距

}

struct ns2_PanTiltInf //云臺(tái)信息結(jié)構(gòu)體

{ xsd_int PanTilt_ID; //編號(hào)

xsd_int PanTilt_ Rotation; //旋轉(zhuǎn)角度

};

int ns2_ctrlCamera(xsd_int ictrlCam);

//攝像頭控制

int ns2_getCameraInf(void *_ ,

struct ns2_getCameraInfResponse

{ struct ns2_CameraInf camera_inf;

} *_return);//獲取攝像頭信息

int ns2_ctrlPanTilt(xsd_int ictrl);//云臺(tái)控制

int ns2_getPanTiltInf(void *_ ,

struct ns2_getPanTiltInfResponse

{ struct ns2_PanTiltInf pantilt_inf;

} *_return); //獲取云臺(tái)信息

根據(jù)service.h文件生成服務(wù)端框架代碼及service.wsdl文檔,命令如下:

# soapcpp2 service.h

生成的框架代碼如下:soapStub.h:從輸入頭文件生成且?guī)Q空間的頭文件;soapH.h:主要頭文件,所有客戶機(jī)和服務(wù)源代碼都要將其包括在內(nèi);soapC.c:指定數(shù)據(jù)結(jié)構(gòu)的序列化器和反序列化器;soapClient.c:客戶機(jī)存根例程;soapServer.c:服務(wù)器端存根例程。

另外,在gsoap工具包中還包含兩個(gè)重要的文件:stdsoap2.h和stdsoap2.c/cpp。其中stdsoap2.h是stdsoap2.c/cpp運(yùn)行時(shí)庫頭文件,stdsoap2.c/cpp是運(yùn)行時(shí)C/C++庫,帶 HTTP/ SOAP解析器和運(yùn)行時(shí)支持例程。用戶可以用這兩個(gè)文件和上述的框架代碼方便的進(jìn)行客戶端/服務(wù)器端開發(fā)。程序代碼在此不再贅述。

2.3 視頻采集與傳輸模塊

視頻采集與傳輸模塊將采集到的視頻通過RTP協(xié)議打包發(fā)送到遠(yuǎn)程終端。過程如圖4所示。

2.3.1 Jrtplib和Jthread的移植

利用Jrtplib開發(fā)程序之前,需要先將Jrtplib庫移植到視頻服務(wù)器的硬件體系結(jié)構(gòu)上,方法如下:

(1) 下載Jrtplib和Jthread

下載地址:http://research.edm.uhasselt.be/~jori /page/index.php?n=CS.Jrtplib

(2) 解壓

將下載的兩個(gè)壓縮文件解壓到/usr/local /software目錄中:

#tar -jxvf jrtplib-3.7.1.tar.bz2

#tar -zxvf jthread-1.2.1.tar.gz

解壓后在/usr/local/software下生成jrtplib- 3.7.1和jthread-1.2.1兩個(gè)目錄。

圖4 視頻采集與傳輸模塊軟件流程

(3) 編譯Jthread

進(jìn)入Jthread源碼目錄:

#cd /usr/local/software/ jthread-1.2.1

在終端中輸入:

#./configure -host=arm-linux CC=arm-linux- gcc

CXX=arm-linux-g++

執(zhí)行后,會(huì)生成一個(gè)Makefile文件,執(zhí)行:

#make

#make install

至此Jthread安裝成功。

(4) 編譯Jrtplib

進(jìn)入Jrtplib源碼目錄:

#cd /usr/local/software/ Jrtplib-3.7.1

在終端中輸入:

#./configure -host=arm-linux CC=arm-linux- gcc CXX=arm-linux-g++

執(zhí)行后,會(huì)生成一個(gè)Makefile文件,執(zhí)行:

#make

#make install

至此Jrtplib安裝成功。

Jrtplib和Jthread安裝完成后,可以看到/usr/local/lib目錄增加了Jthread和Jrtplib的庫文件。

2.3.2 RTP實(shí)時(shí)傳輸流媒體數(shù)據(jù)實(shí)現(xiàn)

利用RTP協(xié)議能夠在單播或者多播的網(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)傳流媒體數(shù)據(jù)的實(shí)時(shí)傳輸,它的報(bào)文中包含傳輸媒體的類型、格式、序列號(hào)、時(shí)間戳以及是否有附加數(shù)據(jù)等信息[9-10]。多媒體數(shù)據(jù)的傳輸使用 UDP 來進(jìn)行,每一個(gè)RTP數(shù)據(jù)報(bào)都由頭部(Header)和負(fù)載(Payload)兩個(gè)部分組成,其中頭部前 12 個(gè)字節(jié)的含義是固定的,而負(fù)載則可以是音頻或者視頻數(shù)據(jù)。具體實(shí)現(xiàn)過程如下:

(1) 初始化RTP會(huì)話

RTPSession Rtpses;//創(chuàng)建RTPSession對(duì)象來代表此次RTP會(huì)話:

Rtpses.Create(2000);//調(diào)用RTPSession類的Create()方法,指定RTP會(huì)話的端口號(hào)

(2) 設(shè)置時(shí)間戳

Rtpses.SetTimestampUnit(1.0/8000.0);

//設(shè)置時(shí)間戳(單位:s),使程序的采樣頻率為8 000 Hz

(3) 設(shè)置目標(biāo)地址

unsigned long addr = ntohl(inet_addr(\"192. 168.0.2\" ));

//將網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換為長整型

Rtpses.AddDestination(addr,2000);

//添加目標(biāo)地址,端口號(hào)為2000

(4) 發(fā)送流媒體數(shù)據(jù)

Rtpses.SetDefaultPayloadType(0);

//設(shè)置默認(rèn)的負(fù)載類型

Rtpses.SetDefaultMark(1);//設(shè)置標(biāo)志

Rtpses.SetDefaultTimeStampIncrement(10); //設(shè)置時(shí)間戳增量

Rtpses.SendPacket(buf, n);//發(fā)送數(shù)據(jù),buf為數(shù)據(jù)緩沖區(qū),n為緩沖區(qū)大小

(5) 客戶端接收數(shù)據(jù)

if (Rtpses.GotoFirstSourceWithData())

{//獲取接受到的各個(gè)源的數(shù)據(jù)

do

{Rtpses.AddToAcceptList(remoteIP, allports, portbase);

Rtpses.SetReceiveMode(RECEIVEMODE_ACCEPTSOME);//設(shè)置接收模式

RTPPacket *pack;

pack = Rtpses.GetNextPacket();

//處理接收到的數(shù)據(jù)

delete pack; }

while (Rtpses.GotoNextSourceWithData());

}

3 測(cè)試運(yùn)行

系統(tǒng)測(cè)試采用C/S結(jié)構(gòu)。視頻服務(wù)器配置為S3C2440微處理器,運(yùn)行在400 MHz,擴(kuò)展64 MB NAND FLASH和64 MB SDRAM,以太網(wǎng)接口芯片為RTL8201BL,視頻壓縮芯片為MB86390,顯示器為8寸16 bit TFT LCD,Linux 2.6.24內(nèi)核,接入實(shí)驗(yàn)室局域網(wǎng)。視頻服務(wù)調(diào)用端為聯(lián)想的啟天M6900 PC機(jī),RedHat 9.0操作系統(tǒng),開發(fā)環(huán)境GCC 4.3.0,QT 4.4.0和gsoap-2.7f工具包,通過gsoap調(diào)用Web服務(wù)。PC機(jī)上的運(yùn)行界面如圖5所示。

圖中視頻圖像即為得到視頻服務(wù)器圖像。局域網(wǎng)中單個(gè)遠(yuǎn)程鏈接時(shí)測(cè)試平均視頻傳輸速度達(dá)25 f/s,可滿足一般的監(jiān)控要求。在2個(gè)遠(yuǎn)程鏈接時(shí)測(cè)試平均視頻傳輸速度為16.7 f/s,3個(gè)遠(yuǎn)程鏈接時(shí)平均視頻傳輸速度為10.1 f/s。多個(gè)遠(yuǎn)程鏈接的情況下性能會(huì)有較為明顯的下降。因此多個(gè)鏈接情況下使用時(shí)建議采用S3C6410等具有更高性能的硬件平臺(tái)實(shí)現(xiàn)。

圖5 監(jiān)控中心運(yùn)行界面

4 結(jié) 語

本文提出一種基于Web Services、使用RTP/RTCP協(xié)議實(shí)時(shí)傳輸視頻流數(shù)據(jù)的嵌入式視頻服務(wù)器,借助Web Services跨平臺(tái)、跨語言的分布式模型,有效地屏蔽了視頻監(jiān)控設(shè)備的多樣性、異構(gòu)性,實(shí)現(xiàn)監(jiān)控設(shè)備的無縫連接與統(tǒng)一管理。視頻服務(wù)器已集成在油井監(jiān)控系統(tǒng)中,集成和擴(kuò)展簡便,實(shí)施效率得到大大提高。

參考文獻(xiàn)

[1]張文,方飛.視頻監(jiān)控在煤礦中的應(yīng)用研究[J].煤炭工程,2010(1):112-114.

[2]呂優(yōu),張九根.安防視頻監(jiān)控系統(tǒng)設(shè)計(jì)研究[J].低壓電器, 2009(14):36-39.

[3]徐凡,袁杰.基于視頻的嵌入式森林火災(zāi)預(yù)警系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2008,28(1):264-266.

[4]張多英,申晨,劉偉平,等.嵌入式視頻監(jiān)控傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(4):724-728.

[5]徐曉菊.基于B/S結(jié)構(gòu)的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究與應(yīng)用[J].工礦自動(dòng)化, 2010,36(1):83-84.

[6]房芳,馬旭東.基于嵌入式Web技術(shù)的監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(23):237-239.

[7]夏亮,祖一康,吳志榮.基于嵌入式Web Services的系統(tǒng)集成方案[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(3):7-9.

[8]Anon. GSOAP 2.7.15 user guide[EB/OL].[2007-12-15].http:// www. cs. fsu.edu/~engelen/soapdoc2. pdf.

[9]湯霄峰,鄭善賢.基于μClinux的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2009,31(10):140-143.

[10]錢華明,劉英明,張振旅.基于S3C2410 嵌入式無線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(6):1132-1134.

主站蜘蛛池模板: 欧美啪啪视频免码| 久久精品aⅴ无码中文字幕| 秘书高跟黑色丝袜国产91在线| 在线观看国产精美视频| 国产精品刺激对白在线| 亚洲精品视频免费| 视频二区欧美| 又爽又大又光又色的午夜视频| 人妻精品久久久无码区色视| 欧美不卡视频一区发布| 国产精品片在线观看手机版| 黄色三级毛片网站| 国产精品成| 为你提供最新久久精品久久综合| 亚洲国产日韩视频观看| 亚洲黄色网站视频| 少妇极品熟妇人妻专区视频| 91亚瑟视频| 国产粉嫩粉嫩的18在线播放91| AV不卡在线永久免费观看| 精品视频第一页| 日韩欧美国产成人| 欧美日韩亚洲国产| 亚洲第一黄片大全| 亚洲中文字幕日产无码2021| 久久精品国产精品国产一区| 婷婷丁香在线观看| 亚洲AV无码乱码在线观看代蜜桃| 精品久久久久成人码免费动漫| 全色黄大色大片免费久久老太| 丁香婷婷久久| 国产欧美日韩va| 亚洲天堂日韩在线| 亚洲精品无码成人片在线观看 | 一级毛片免费的| 亚洲精品国产自在现线最新| 黄色在线不卡| 99视频在线免费| 四虎影视永久在线精品| 国产成a人片在线播放| 免费观看国产小粉嫩喷水| 成人毛片在线播放| 久99久热只有精品国产15| 日韩人妻少妇一区二区| 亚洲国产精品人久久电影| 精品国产Av电影无码久久久| 成人免费网站久久久| 亚洲第一极品精品无码| 久久影院一区二区h| 无码精油按摩潮喷在线播放| 欧美 国产 人人视频| 欧美第二区| 三上悠亚一区二区| 国产欧美精品一区二区| 欧美色综合久久| 麻豆精品国产自产在线| 国产在线观看精品| 无码在线激情片| 91国内视频在线观看| 婷婷99视频精品全部在线观看| 久久夜色精品国产嚕嚕亚洲av| 青青青国产免费线在| 亚洲欧洲日产国产无码AV| 青草91视频免费观看| 波多野结衣中文字幕一区二区| 亚洲最大情网站在线观看 | 最新国产高清在线| 国产网站免费| 欧美亚洲国产一区| 亚洲天堂首页| 最新无码专区超级碰碰碰| 國產尤物AV尤物在線觀看| 国产乱人激情H在线观看| 色综合成人| 99久久精品国产自免费| 五月婷婷亚洲综合| 欧美国产综合色视频| 国产av一码二码三码无码 | 国产在线精品美女观看| 日韩 欧美 国产 精品 综合| 99热亚洲精品6码| 国产精品一区在线观看你懂的|