chl00100 发表于 2011-12-21 08:44

嵌入式视频监控中的webservr服务器开发流程

<DIV>目前视频监控中网络访问很多还是C/S结构,不过B/S将更方便,通过对一款DVR的分析,添加一个web server,流程如下,记录一下,免得以后用时忘记;</DIV>
<DIV>&nbsp;</DIV>
<DIV>1.移植boa、goahead等开源web服务器软件一个;</DIV>
<DIV>&nbsp;</DIV>
<DIV>2.写index.htm,如:</DIV>
<DIV>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;NetServeillance WEB&lt;/title&gt;<BR>&lt;/head&gt;<BR>&lt;body topmargin="0" leftmargin="0"&gt;<BR>&lt;div align="center"&gt;<BR>&nbsp; &lt;table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;object classid="CLSID:3FB84210-0311-49BA-AFF7-A2C50E2D20B6" codebase="webrec.cab#version=1,0,0,9"&nbsp; width="100%" height="100%" id="Surveil"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param name="usertype" value="0"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param name="clienttype" value="0"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param name="hostport" value="34567"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;param name="ipaddress" value="127.0.0.1"&gt;<BR>&nbsp;&nbsp;&lt;/object&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<BR>&nbsp; &lt;center&gt;<BR>&nbsp; &lt;/table&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; &lt;/center&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&lt;/body&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&lt;/html&gt;&nbsp;&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>上面代码中有一句最关键,即</DIV>
<DIV>&lt;object classid="CLSID:3FB84210-0311-49BA-AFF7-A2C50E2D20B6" codebase="webrec.cab#version=1,0,0,9"&nbsp; width="100%" height="100%" id="Surveil"&gt;,</DIV>
<DIV>&nbsp;</DIV>
<DIV>而webrec.cab包括如下文件:</DIV>
<DIV>|-- AmrDll.dll<BR>|-- hi_h264dec_w.dll<BR>|-- ptz_down.bmp<BR>|-- replayer_config.ini<BR>&nbsp;.</DIV>
<DIV>&nbsp;.</DIV>
<DIV>&nbsp;.<BR>|-- theme.ini<BR>|-- users.xml<BR>|-- web.inf<BR></DIV>
<DIV>又由于html有如下属性:</DIV>
<DIV>当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的. CAB文件时,Internet Explorer将自动把.CAB文件作为软件分发单位下载并安装,每次访问时还会自动检测版本并进行更新;</DIV>
<DIV>&nbsp;</DIV>
<DIV>4.</DIV>
<DIV>所以,当第一次在IE浏览器输入DVR IP,如192.168.1.100时,index.htm中的object属性首先找本电脑中是否已经安装ID号为3FB84210-0311-49BA-AFF7-A2C50E2D20B6的OCX插件,如果安装,直接运行,否则,下载codebase后面的URL,这里是同目录下的webrec.cab,同时检测到此cab文件中有.inf文件web.inf,所以执行web.inf安装到相应目录;</DIV>
<DIV>web.inf如下:</DIV>
<DIV><BR>signature="$CHICAGO$"<BR>NetSurveillanceActiveX=1.00</DIV>
<DIV><BR>install.files=30,WINDOWS\NetSurveillance</DIV>
<DIV><BR>1=%DiskName%,web.cab,1</DIV>
<DIV><BR>NetSurveillance.ocx=NetSurveillance.ocx<BR>WndManager.ocx=WndManager.ocx<BR>Config.ocx=Config.ocx<BR>hi_h264dec_w.dll=hi_h264dec_w.dll</DIV>
<DIV><BR>file-win32-x86=thiscab<BR>RegisterServer=no<BR>DestDir=30,WINDOWS\NetSurveillance</DIV>
<DIV>&nbsp;.</DIV>
<DIV>&nbsp;.</DIV>
<DIV>&nbsp;.</DIV>
<DIV><BR>file-win32-x86=thiscab<BR>RegisterServer=no<BR>DestDir=30,WINDOWS\NetSurveillance<BR><BR>file-win32-x86=thiscab<BR>RegisterServer=no<BR>DestDir=30,WINDOWS\NetSurveillance</DIV>
<DIV><BR>file-win32-x86=thiscab<BR>RegisterServer=yes<BR>clsid={56405723-8E20-404C-B2DA-3CFE65D9D1A3}<BR>DestDir=30,WINDOWS\NetSurveillance</DIV>
<DIV><BR>file-win32-x86=thiscab<BR>RegisterServer=yes<BR>clsid={5E4D8475-3953-4008-B08F-D07687269EE7}<BR>DestDir=30,WINDOWS\NetSurveillance</DIV>
<DIV><BR>file-win32-x86=thiscab<BR>RegisterServer=yes<BR>clsid={3FB84210-0311-49BA-AFF7-A2C50E2D20B6}<BR>DestDir=30,WINDOWS\NetSurveillance</DIV>
<DIV><BR><BR>%30%\WINDOWS\NetSurveillance\Config.ocx<BR>%30%\WINDOWS\NetSurveillance\WndManager.ocx<BR>%30%\WINDOWS\NetSurveillance\NetSurveillance.ocx</DIV>
<DIV>&nbsp;</DIV>
<DIV>可以看到cab中的所有文件都被安装到了C:\WINDOWS\NetSurveillance下,并把NetSurveillance.ocx注册为ID 3FB84210-0311-49BA-AFF7-A2C50E2D20B6,因此&lt;object classid="CLSID:3FB84210-0311-49BA-AFF7-A2C50E2D20B6" codebase="webrec.cab#version=1,0,0,9"&nbsp; width="100%" height="100%" id="Surveil"&gt;开始运行NetSurveillance.ocx;</DIV>
<DIV>&nbsp;</DIV>
<DIV>5.</DIV>
<DIV>NetSurveillance.ocx的开发与客户端exe开发基本类似,无非是登录DVR-获取码流-本地解码显示;</DIV>
<DIV></DIV>
页: [1]
查看完整版本: 嵌入式视频监控中的webservr服务器开发流程