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

基于Web服務的嵌入式視頻服務器

2010-04-12 00:00:00孫士明,王愛國,謝星周
現代電子技術 2010年22期

摘 要: 為了解決視頻監控系統中多樣性、異構性的設備集成難問題,采用Web服務與流媒體技術設計了一種嵌入式視頻服務器。給出視頻服務器的硬件結構;基于嵌入式Linux操作系統,詳細闡述了視頻服務器軟件的設計與實現過程;視頻服務器適用于具有跨語言、跨平臺特性的視頻監控系統的設備集成。應用于油井監控局域網中時,在單個遠程終端鏈接情況下,視頻服務器速率達25 f/s,可滿足一般的監控要求。關鍵詞:Web Services; 嵌入式系統; Linux; 流媒體

中圖分類號:TN919.85-34文獻標識碼:A

文章編號: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

目前,視頻監控在煤炭安全生產[1]、樓宇安防[2]、森林火災監控[3]等領域逐步得到應用,出現了各式各樣的嵌入式視頻服務器;同時,視頻監控系統也向著一體化、視頻數字化、監控網絡化、系統集成化方向發展[4],各種視頻服務器的集成和統一管理變得越來越困難。本文設計了一種基于Web Services的嵌入式流媒體視頻服務器,借助Web Services跨平臺、跨語言的分布式模型[5],通過RTP/RTCP協議實時傳輸視頻流,實現了視頻監控設備的無縫連接與統一管理。

1 視頻服務器的硬件結構

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

系統通過以太網接口獲取遠程終端的控制數據,利用串口對設備進行操控;通過視頻采集電路獲取壓縮后的視頻數據,使用RTP協議將數據打包后通過以太網接口發送到遠程終端,完成視頻的實時傳輸。

圖1 視頻服務器的硬件結構圖

2 視頻服務器的軟件設計與實現

2.1 軟件總體結構

視頻服務器的軟件基于Linux操作系統,分為兩個模塊:Web Services模塊和視頻采集與傳輸模塊。其中Web Services模塊主要負責對攝像頭及云臺的操控,將操控攝像頭和云臺的功能接口以Web服務的形式發布給遠程終端,從而屏蔽了攝像頭和云臺的異構性,方便遠程終端對設備進行集成和統一管理。視頻采集與傳輸模塊主要負責將采集到的視頻數據通過RTP/RTCP協議打包,然后傳送給遠程終端。視頻服務器結構如圖2所示。

2.2 Web Services模塊

Web Services使用標準的、通用的通信模型,它在HTTP,XML,SOAP,WSDL,UDDI 之上提供統一的編程模型,使用統一的方法,公共的基礎結構和統一文本格式,適合于Internet/Intranet分散型應用。服務請求者與服務提供者之間通過SOAP(簡單對象訪問協議)消息進行綁定和通信。SOAP協議定義了用于在系統之間進行通訊的標準XML消息格式,可使用SOAP在多種計算機體系結構、語言和操作系統之間進行通信。Web Services模塊流程圖如圖3所示。

圖2 視頻服務器的結構

圖3 Web Services模塊流程圖

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

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

typedef int xsd__int;

struct ns2_CameraInf //攝像頭信息結構體

{ xsd_int Cam_ID; //編號

xsd_int Cam_width; //分辨率:寬

xsd_int Cam_height; //分辨率:高

xsd_int Cam_hue; //色調

xsd_int Cam_contrast; //對比度

xsd_int Cam_brightness; //亮度

xsd_int Cam_focus;//焦距

}

struct ns2_PanTiltInf //云臺信息結構體

{ xsd_int PanTilt_ID; //編號

xsd_int PanTilt_ Rotation; //旋轉角度

};

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);//云臺控制

int ns2_getPanTiltInf(void *_ ,

struct ns2_getPanTiltInfResponse

{ struct ns2_PanTiltInf pantilt_inf;

} *_return); //獲取云臺信息

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

# soapcpp2 service.h

生成的框架代碼如下:soapStub.h:從輸入頭文件生成且帶名稱空間的頭文件;soapH.h:主要頭文件,所有客戶機和服務源代碼都要將其包括在內;soapC.c:指定數據結構的序列化器和反序列化器;soapClient.c:客戶機存根例程;soapServer.c:服務器端存根例程。

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

2.3 視頻采集與傳輸模塊

視頻采集與傳輸模塊將采集到的視頻通過RTP協議打包發送到遠程終端。過程如圖4所示。

2.3.1 Jrtplib和Jthread的移植

利用Jrtplib開發程序之前,需要先將Jrtplib庫移植到視頻服務器的硬件體系結構上,方法如下:

(1) 下載Jrtplib和Jthread

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

(2) 解壓

將下載的兩個壓縮文件解壓到/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兩個目錄。

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

(3) 編譯Jthread

進入Jthread源碼目錄:

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

在終端中輸入:

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

CXX=arm-linux-g++

執行后,會生成一個Makefile文件,執行:

#make

#make install

至此Jthread安裝成功。

(4) 編譯Jrtplib

進入Jrtplib源碼目錄:

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

在終端中輸入:

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

執行后,會生成一個Makefile文件,執行:

#make

#make install

至此Jrtplib安裝成功。

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

2.3.2 RTP實時傳輸流媒體數據實現

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

(1) 初始化RTP會話

RTPSession Rtpses;//創建RTPSession對象來代表此次RTP會話:

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

(2) 設置時間戳

Rtpses.SetTimestampUnit(1.0/8000.0);

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

(3) 設置目標地址

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

//將網絡字節序轉換為長整型

Rtpses.AddDestination(addr,2000);

//添加目標地址,端口號為2000

(4) 發送流媒體數據

Rtpses.SetDefaultPayloadType(0);

//設置默認的負載類型

Rtpses.SetDefaultMark(1);//設置標志

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

Rtpses.SendPacket(buf, n);//發送數據,buf為數據緩沖區,n為緩沖區大小

(5) 客戶端接收數據

if (Rtpses.GotoFirstSourceWithData())

{//獲取接受到的各個源的數據

do

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

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

RTPPacket *pack;

pack = Rtpses.GetNextPacket();

//處理接收到的數據

delete pack; }

while (Rtpses.GotoNextSourceWithData());

}

3 測試運行

系統測試采用C/S結構。視頻服務器配置為S3C2440微處理器,運行在400 MHz,擴展64 MB NAND FLASH和64 MB SDRAM,以太網接口芯片為RTL8201BL,視頻壓縮芯片為MB86390,顯示器為8寸16 bit TFT LCD,Linux 2.6.24內核,接入實驗室局域網。視頻服務調用端為聯想的啟天M6900 PC機,RedHat 9.0操作系統,開發環境GCC 4.3.0,QT 4.4.0和gsoap-2.7f工具包,通過gsoap調用Web服務。PC機上的運行界面如圖5所示。

圖中視頻圖像即為得到視頻服務器圖像。局域網中單個遠程鏈接時測試平均視頻傳輸速度達25 f/s,可滿足一般的監控要求。在2個遠程鏈接時測試平均視頻傳輸速度為16.7 f/s,3個遠程鏈接時平均視頻傳輸速度為10.1 f/s。多個遠程鏈接的情況下性能會有較為明顯的下降。因此多個鏈接情況下使用時建議采用S3C6410等具有更高性能的硬件平臺實現。

圖5 監控中心運行界面

4 結 語

本文提出一種基于Web Services、使用RTP/RTCP協議實時傳輸視頻流數據的嵌入式視頻服務器,借助Web Services跨平臺、跨語言的分布式模型,有效地屏蔽了視頻監控設備的多樣性、異構性,實現監控設備的無縫連接與統一管理。視頻服務器已集成在油井監控系統中,集成和擴展簡便,實施效率得到大大提高。

參考文獻

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

[2]呂優,張九根.安防視頻監控系統設計研究[J].低壓電器, 2009(14):36-39.

[3]徐凡,袁杰.基于視頻的嵌入式森林火災預警系統[J].計算機應用,2008,28(1):264-266.

[4]張多英,申晨,劉偉平,等.嵌入式視頻監控傳輸系統的設計與實現[J].計算機工程與設計,2010,31(4):724-728.

[5]徐曉菊.基于B/S結構的嵌入式網絡視頻監控系統的研究與應用[J].工礦自動化, 2010,36(1):83-84.

[6]房芳,馬旭東.基于嵌入式Web技術的監控系統設計與實現[J].計算機工程,2009,35(23):237-239.

[7]夏亮,祖一康,吳志榮.基于嵌入式Web Services的系統集成方案[J].單片機與嵌入式系統應用,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的遠程監控系統的設計與實現[J].計算機工程與科學,2009,31(10):140-143.

[10]錢華明,劉英明,張振旅.基于S3C2410 嵌入式無線視頻監控系統的設計[J].計算機測量與控制,2009,17(6):1132-1134.

主站蜘蛛池模板: 波多野结衣第一页| 26uuu国产精品视频| 国产精选小视频在线观看| 国产精品久久久久久久久kt| 免费看一级毛片波多结衣| 国产又色又刺激高潮免费看| 国产福利大秀91| 国产av一码二码三码无码 | 老司国产精品视频| 亚洲视频免费在线| 国产色婷婷| 国产自在自线午夜精品视频| 国产自产视频一区二区三区| 国产精品一区在线观看你懂的| 国产午夜看片| 在线视频一区二区三区不卡| 成人a免费α片在线视频网站| 99视频精品在线观看| 亚洲热线99精品视频| 欧美午夜视频在线| 久久99久久无码毛片一区二区| 国产黄视频网站| 国产主播在线一区| 91综合色区亚洲熟妇p| 国产精品浪潮Av| 国产av剧情无码精品色午夜| 亚洲a免费| 99热精品久久| 手机在线国产精品| 伊人久热这里只有精品视频99| 8090午夜无码专区| 日本午夜网站| 精品无码国产自产野外拍在线| 亚洲av无码牛牛影视在线二区| 一区二区三区在线不卡免费| 久久久久亚洲AV成人网站软件| 国产成人精品亚洲日本对白优播| 精品福利视频导航| 国产欧美专区在线观看| 欧美午夜精品| 中文国产成人精品久久| 国产成人精品午夜视频'| 国产大片黄在线观看| 久久情精品国产品免费| 国产交换配偶在线视频| 精品国产成人国产在线| 欧美成a人片在线观看| 色噜噜综合网| 久久久久免费精品国产| 欧美成人区| 亚洲天堂高清| 国产主播在线一区| 免费在线一区| 国产精品香蕉| 无码免费的亚洲视频| 国产区免费| 午夜免费视频网站| 国产白浆视频| 成人中文在线| 国产va视频| 99久久这里只精品麻豆| 欧美国产综合色视频| 蜜芽国产尤物av尤物在线看| 国产一区二区三区视频| 久久精品aⅴ无码中文字幕 | 国产激爽大片高清在线观看| 亚洲男人的天堂网| 久久久久久国产精品mv| 国产精品亚欧美一区二区| 欧洲极品无码一区二区三区| 亚洲热线99精品视频| 亚洲人成网7777777国产| 精品国产毛片| 国产成人亚洲精品蜜芽影院| 九色视频最新网址| 小说 亚洲 无码 精品| 毛片大全免费观看| 国产又大又粗又猛又爽的视频| 又爽又大又黄a级毛片在线视频 | 91久久青青草原精品国产| 秘书高跟黑色丝袜国产91在线| 成人亚洲天堂|