Chinaunix首页 | 论坛 | 博客
  • 博客访问: 117728
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -5
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-08 22:58
文章分类

全部博文(42)

文章存档

2012年(4)

2011年(11)

2010年(20)

2009年(7)

分类: 系统运维

2011-05-27 16:12:33

目前视频监控中网络访问很多还是C/S结构,不过B/S将更方便,通过对一款DVR的分析,添加一个web server,流程如下,记录一下,免得以后用时忘记;
 
1.移植boa、goahead等开源web服务器软件一个;
 
2.写index.htm,如:


NetServeillance WEB



 
   
     
   
 

 

       
      
   
   
   
   
  

       
    
             
               
                           
                         
  
 
3.     
上面代码中有一句最关键,即
 
而webrec.cab包括如下文件:
|-- AmrDll.dll
|-- hi_h264dec_w.dll
|-- ptz_down.bmp
|-- replayer_config.ini
 .
 .
 .
|-- theme.ini
|-- users.xml
|-- web.inf
又由于html有如下属性:
当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的. CAB文件时,Internet Explorer将自动把.CAB文件作为软件分发单位下载并安装,每次访问时还会自动检测版本并进行更新;
 
4.
所以,当第一次在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安装到相应目录;
web.inf如下:
[version]
signature="$CHICAGO$"
NetSurveillanceActiveX=1.00
[DestinationDirs]
install.files=30,WINDOWS\NetSurveillance
[SourceDisksNames]
1=%DiskName%,web.cab,1
[install.files]
NetSurveillance.ocx=NetSurveillance.ocx
WndManager.ocx=WndManager.ocx
Config.ocx=Config.ocx
hi_h264dec_w.dll=hi_h264dec_w.dll
[btn_PTZ.bmp]
file-win32-x86=thiscab
RegisterServer=no
DestDir=30,WINDOWS\NetSurveillance
 .
 .
 .
[hi_h264dec_w.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=30,WINDOWS\NetSurveillance
[PlayBack.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=30,WINDOWS\NetSurveillance
[WndManager.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={56405723-8E20-404C-B2DA-3CFE65D9D1A3}
DestDir=30,WINDOWS\NetSurveillance
[Config.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={5E4D8475-3953-4008-B08F-D07687269EE7}
DestDir=30,WINDOWS\NetSurveillance
[NetSurveillance.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={3FB84210-0311-49BA-AFF7-A2C50E2D20B6}
DestDir=30,WINDOWS\NetSurveillance

[RegisterFiles]
%30%\WINDOWS\NetSurveillance\Config.ocx
%30%\WINDOWS\NetSurveillance\WndManager.ocx
%30%\WINDOWS\NetSurveillance\NetSurveillance.ocx
 
可以看到cab中的所有文件都被安装到了C:\WINDOWS\NetSurveillance下,并把NetSurveillance.ocx注册为ID 3FB84210-0311-49BA-AFF7-A2C50E2D20B6,因此开始运行NetSurveillance.ocx;
 
5.
NetSurveillance.ocx的开发与客户端exe开发基本类似,无非是登录DVR-获取码流-本地解码显示;
阅读(5248) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chl001002011-06-11 20:51:07

因为一直做C语言及底层开发,对网页开发没有太多了解,一直以为IE浏览器上的视频解码一定要用OCX方式呢,今天才发现原来flash解码H.264已经非常成熟,比如flosplayer、Jaris、video-js等,都还是开源的; 不过测试了一下,貌似统统都只能解MP4文件(AVC1编码),对H.264裸流好像不支持,难道必须把H.264裸流和MP3裸流封装到一个容器内构成MP4才可以?抽空再好好研究一下。