手机后面有两个摄像头摄像头但是其中一个不能看了可以在OSD配置里能看怎么回事

我有一台电脑安装了监控摄像头,想在另一台电脑看到监控怎样设置
按时间排序
远程访问设置,有验证码的
你还是找个专业的帮你弄好了,这里告诉你,用处不大。
买个四路的视频采集卡装主板上,摄像头最好是用12V,通上电,连接号视频线,给视频采集卡装上驱动就可以了。
XP的系统,常用的网吧配置都可以。如果专门用来监控用,硬盘也不需要多大的,80-160G的均可,如果你几十个 监控点,硬盘就加大就行了。主要根据,你一个循环录象需要多大的磁盘空间决定。电脑配置的话CPU双核的E5800,内存2G,如果要求不高保存录像短就直接买普通的500G硬盘
监控的电脑配置要求并不是很高!主要还是要看你们单位的监控要求!比如说需要远程查看,录像保存时间,采集的帧速,清晰度要求等!根据要求不同的话配置差别很大的!如果要求不是很搞,一般配置8路硬压的视频监控卡!也就800元左右!如果全天候24小时工作的话要用监控硬盘 2T的要1000+电脑配置的话CPU双核的E5800,内存2G,显卡集成就可以了,全套不安算硬盘1000元左右!显示器19的把800元就可以买到国产的!如果要求高些在买个UPS防止断电等意外情况400元-500元!如果要求不高保存录像短就直接买普通的500G硬盘能省600!电脑这套有个元就完全够!摄像机的价格就看就更不太好说了更具要求差别很大!
对有摄像头的电脑作为监控端设置远程访问,然后在局域内网可以直接在浏览器里面用监控机器的IP地址访问。
自己的小超市装监控很简单啊,你自己有机器,买个视频采集卡,装2 3个吸顶半球就行了。几千块钱搞定了!
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:查看:19839|回复:17
中级工程师
经常有朋友在本人QQ群或者微信朋友圈问,怎么我的网络又故障了?视频掉线要么卡顿? 故障怎么解决啊 一个交换机能带动多少个网络监控摄像头?千兆交换机一般接200万网络摄像机几个?24个网络头,用一台24口百兆交换机行不行?这样的问题我们之前曾多次讲到过,今天就再系统的进行了解,加深一下大家的影响。
一,根据摄像机的码流和数量来选择
1、摄像机码流
选择交换机前,首先要弄清楚每路图像占用多少带宽。
2、摄像机数量
要弄清楚交换机的带宽容量。常用交换机有百兆交换机、千兆交换机。它们的实际带宽一般只有理论值的 60~70% ,所以它们端口的可利用带宽大致是 60Mbps 或 600Mbps。
根据你使用的网络摄像机的品牌看单台码流,再去估算一台交换机能接多少台摄像机。
比如130万:960p摄像机单台码流通常4M,用百兆交换机,那么就可以接15台(15×4=60M);
用千兆交换机,可以接150(150×4=600M)
200万: 1080P摄像机单台码流通常8M,用百兆交换机,可以接7台(7×8=56M);
用千兆交换机,可以接75台(75×8=600M)
这些都是以主流的H.264摄像头为例给大家讲解的,H.265减半就可以了。
从网络拓扑结构上来讲,一个局域网通常是两到三层结构。接摄像机那端为接入层,一般用百兆交换机就够了,除非你在一个交换机上接了很多个摄像机。
汇集层、核心层则要按该交换机汇聚了多少路图像来计算。
计算方法如下:如果接 960P 的网络摄像机,一般 15 路图像以内,用百兆交换机;超过 15路则用千兆交换机;如果接 1080P 的网络摄像机,一般 8 路图像以内,用百兆交换机,超过 8 路则用千兆交换机。
二,交换机的选择要求
监控网络有三层架构方式:核心层,汇聚层,接入层。
1、接入层交换机的选择
条件 1: 摄像机码流:4Mbps,20 个摄像机就是 20*4=80Mbps。
也就是说,接入层交换机上传端口必须满足 80Mbps/s 的传输速率要求,考虑到交换机实际传输速率(通常为标称值的 50%,100M 的也就 50 M 左右,),所以接入层交换机应选用具有 1000M 上传口的交换机。
条件 2: 交换机的背板带宽,如选择 24 ***换机,自带二个 1000M 口,总共 26 口,则接入层的交换机背板带宽要求为:(24*100M*2+)/Gbps 的背板带宽。
条件 3: 包转发率:一个 1000M 口的包转发率为 1.488Mpps/s, 则接入层的交换机交换速率为:(24*100M/.488=6.55Mpps。
根据以上条件得出: 当有 20 路 720P 摄像机接入一个交换机时,此交换机至少必须具有 1 个 1000M 上传口、20 个以上的 100M 接入端口才能满足需求。
2、汇聚层交换机的选择
假如总共有5个交换机接入,每个交换机有20摄像机,码流为4M,那么汇聚层的流量为:4Mbps*20 *5=400Mbps,那么汇聚层的上传端口必须是 1000M 以上的。
如果 5 个 IPC 接入一个交换机,一般情况下需使用一个 8 ***换机,那么这个 8 ***换机是否满足要求?可以看如下三个方面:
背板带宽:端口数*端口速度*2=背板带宽 ,即8*100*2=1.6Gbps。
包交换率:端口数*端口速度/Mpps=包交换率,即8*100/=1.20Mpps。有些交换机的包交换率有时计算出不能达到此要求,那么就是非线速交换机,当进行大容量数量吞吐时,易造成延时。
级联口带宽:IPC 的码流*数量=上传口的最小带宽,即4.*5=20Mbps。通常情况下,当 IPC 带宽超过 45Mbps 时,建议使用 1000M 级联口。
三,到底该如何选择交换机?
举例有个园区网,500 多个高清摄像机,码流 3~4 兆,网络结构分接入层‐汇聚层‐核心层。存储在汇聚层,每个汇聚层对应 170 个摄像机。
面临的问题:如何选择产品,百兆与千兆的差别,影响图像在网络中传输的原因有哪些,哪些因素是与交换机相关的……
1、背板带宽
所有端口容量x端口数量之和的 2 倍应该小于标称背板带宽,可实现全双工无阻塞的线速交换,证明交换机具有发挥最大数据交换性能的条件。
例如:一台最多可以提供 48 个千兆端口的交换机,其满配置容量应达到 48 ×1G×2= 96Gbps,才能够确保在所有端口均在全双工时,提供无阻塞的线速包交换。
2、包转发率
满配置包转发率(Mbps)=满配置 GE 端口数×1.488Mpps+满配置百兆端口数 × 0.1488Mpps ,其中 1 个千兆端口在包长为 64 字节时的理论吞吐量为1.488Mpps。
例如:如果一台交换机最多能够提供 24 个千兆端口,而宣称的包转发率不到 35.71 Mpps(24 x 1.488Mpps = 35.71),那么就有理由认为该交换机采用的是有阻塞的结构设计。
一般是背板带宽和包转发率都满足的交换机才是合适的交换机。
背板相对大、吞吐量相对小的交换机,除了保留了升级扩展的能力外,就是软件效率/专用芯片电路设计有问题;背板相对小、吞吐量相对大的交换机,整体性能比较高。
摄像机码流影响清晰度,通常是视频传输的码流设定(包含了编码发送及接收设备的编解码能力等),这是前端摄象机的性能,与网络无关。
通常用户认为清晰度不高,认为是网络原因造成的想法实际是个误区。
根据上面的案例,计算:
码流:4Mbps
接入:24*4=96Mbps&1000Mbps&4435.2Mbps
汇聚:170*4=680Mbps&1000Mbps&4435.2Mbps
3、接入交换机
主要考虑到接入到汇聚之间的链路带宽,即交换机的上联链路容量需要大于同时容纳的摄象机数*码率。
这样视频实时录像就没有问题,但如果有用户在实时看到录像,就还需要考虑到这个带宽,每个用户查看一个视频占用的带宽就是 4M,如果一个接入交换机的每个摄象机都有一个人在看,就需要摄象机数*码率*(1+N)的带宽,即24*4*(1+1)=128M。
4、汇聚交换机
汇聚层需要同时处理 170 只摄象机的 3‐4M 码流(170* 4M=680M),也就意味着汇聚层交换机需要支持同时转发 680M 以上的交换容量。一般存储都接在汇聚上,所以视频录像是线速转发。
但要考虑到实时查看监控的带宽,每个连接占用 4M,一条 1000M 的链路可以支持 250 个摄像头被调试调用。每台接入交换机接 24 个摄像头,250/24,相当于网络可以承受每个摄像头同时有 10 位用户在实时查看的压力。
5、核心交换机
核心交换机,需要考虑交换容量以及到汇聚的链路带宽,因为存储是放置在汇聚层的,所以核心交换机没有视频录像的压力,即只要考虑同时多少人看多少路视频即可。
假设该案例内,同时有 10 人监看,每人看 16 路视频,即交换容量需要大于 10*16*4=640M。
6、交换机选择重点
局域网内的视频监控进行交换机选择时,接入层和汇聚层交换机的选择通常只需要考虑交换容量的因素就够了,因为用户通常都是通过核心交换机连接并获取视频的。
另外,由于主要压力是在汇聚层交换机,因为既要承担监控存储的流量,还要承担实时查看调用监控的压力,所以选择适用的汇聚交换机显得非常重要
Professional tools
Professional
本帖最后由 ztzhq 于
12:26 编辑
不错 很全面
引用:原帖由 ztzhq 于
11:25 发表
经常有朋友在本人QQ群或者微信朋友圈问,怎么我的网络又故障了?视频掉线要么卡顿? 故障怎么解决啊 一个交换机能带动多少个网络监控摄像头?千兆交换机一般接200万网络摄像机几个?24个网络头,用一台24口百兆交换机行不行?这样 ... 你好,请问我现在有个场景。
250个2M码流的监控,需要购买交换机组网,监控是独立供电,两层网络。
接入层(就是用来接监控的)用S2700-18TP-SI-AC 12台,和S2700-26TP-SI-AC 2台,这14台交换机都是用来接监控摄像头,一台S5720s-28p-SI-ac交换机用来做核心,接入跟核心之间是通过千兆电口连接。然后核心除了要接下面的接入交换机外,还要接7台NVR,一台视频解码器,核心上面可能还会接几台监控,不知道这个配置能否承载这个业务量。
S2700-18TP-SI-AC交换容量32G,包转发率5.4Mpps 16个百兆电口,两个光电复用口
S2700-26TP-SI-AC交换容量32G,包转发率6.6Mpps 24个百兆电口,两个光电复用口
S5720s-28p-SI-ac交换容量336G,包转发率108Mpps 24个千兆电口,四个光口
本帖最后由 futurejunjie 于
18:44 编辑
三心二意的小白版主。转行迫在眉 ...
引用:原帖由 futurejunjie 于
18:40 发表
你好,请问我现在有个场景。
250个2M码流的监控,需要购买交换机组网,监控是独立供电,两层网络。
接入层(就是用来接监控的)用S2700-18TP-SI-AC 12台,和S2700-26TP-SI-AC 2台,这14台交换机都是用来接监控摄像头,一台S5720s-28p- ... 不够。如果离的远,最好能能在核心层多用光口。用汇聚。就你这套设备我们也在用。我们才76个头。已经不能用主流码了。我们还是用了2端口聚合。
&大师,什么是快乐的秘诀?&
&不要和愚者争论.&
&大师,我完全不同意这就是秘诀.&
&是的,你是对的。&
提示: 作者被禁止或删除 内容自动屏蔽
感谢楼主,又学到了新的知识
引用:原帖由 lygzhan 于
08:04 发表
不够。如果离的远,最好能能在核心层多用光口。用汇聚。就你这套设备我们也在用。我们才76个头。已经不能用主流码了。我们还是用了2端口聚合。 好的,谢谢,集成商执意先用这个核心试试,不行的话就给他换5720-ei的试试。
三心二意的小白版主。转行迫在眉 ...
引用:原帖由 futurejunjie 于
22:12 发表
好的,谢谢,集成商执意先用这个核心试试,不行的话就给他换5720-ei的试试。 集成商会降低你的码流。不然肯定是不够的。
&大师,什么是快乐的秘诀?&
&不要和愚者争论.&
&大师,我完全不同意这就是秘诀.&
&是的,你是对的。&
优秀技术总监
引用:原帖由 futurejunjie 于
18:40 发表
你好,请问我现在有个场景。
250个2M码流的监控,需要购买交换机组网,监控是独立供电,两层网络。
接入层(就是用来接监控的)用S2700-18TP-SI-AC 12台,和S2700-26TP-SI-AC 2台,这14台交换机都是用来接监控摄像头,一台S5720s-28p- ... 够了,别听他们瞎扯
250*2Mbps码率,速率也才500Mbps,千兆都用不完。
主要是保证上联是千兆即可, 所以最好用光纤。网线容易干扰,不稳定,特别是室外。
最后你还不如看紧下施工方用什么网线,大多数监控施工队都用那种两三百块钱一箱的网线(4铜4铝/铁,或者铜包铝),得过且过。
当然这套网络只能跑监控,不能跑其他业务。
本帖最后由 erfdcv 于
07:05 编辑
中级工程师
引用:原帖由 erfdcv 于
07:02 发表
够了,别听他们瞎扯
250*2Mbps码率,速率也才500Mbps,千兆都用不完。
主要是保证上联是千兆即可, 所以最好用光纤。网线容易干扰,不稳定,特别是室外。
最后你还不如看紧下施工方用什么网线,大多数监控施工队都用那种两三百 ... 为什么 中国 做不出 好东西 就是 缺乏德国 日本 那种 工匠精神 ;
本帖最后由 lygzhan 于
09:36 编辑
承接各类光纤、无线、通信工程;详情请关注官方QQ及微信()
优秀技术总监
[quote]原帖由 ztzhq 于
08:11 发表
(182.08 KB)
本帖最后由 lygzhan 于
09:35 编辑
引用:原帖由 ztzhq 于
11:25 发表
经常有朋友在本人QQ群或者微信朋友圈问,怎么我的网络又故障了?视频掉线要么卡顿? 故障怎么解决啊 一个交换机能带动多少个网络监控摄像头?千兆交换机一般接200万网络摄像机几个?24个网络头,用一台24口百兆交换机行不行?这样 ... 这种帖子满大街都是,肯本没有说到重点上去,我们接入层S2700-26TP-SI 满载1080P,更改码流2048M 也就是说 24口X2048M&&上行光纤,没有任何问题!
如果超过了24路摄像机,我们在加一台S2700-26TP-SI&&做级联,级联是用百兆口,只有1台上行光纤 也没有问题,请问你怎么解释百兆交换机按百兆速度百分之70利用率的算法?
优秀技术总监
引用:原帖由
07:31 发表
这种帖子满大街都是,肯本没有说到重点上去,我们接入层S2700-26TP-SI 满载1080P,更改码流2048M 也就是说 24口X2048M&&上行光纤,没有任何问题!
如果超过了24路摄像机,我们在加一台S2700-26TP-SI&&做级联,级联是用百兆口,只 ... 看他的帖子和回复,简直就是个ZZ。
网上到处扒文。
还有就是,很多搞监控的本身就不是网络科班出身的,出现问题,根本不能从原理上了解问题的原因,只能靠经验分析。
最后就是,码流2048M ?你没写错?
厉害了,很全面
中级工程师
引用:原帖由 erfdcv 于
14:54 发表
看他的帖子和回复,简直就是个ZZ。
网上到处扒文。
还有就是,很多搞监控的本身就不是网络科班出身的,出现问题,根本不能从原理上了解问题的原因,只能靠经验分析。
最后就是,码流2048M ?你没写错? ... 你是个什么东西 ?有什么资格评价别人 ??
承接各类光纤、无线、通信工程;详情请关注官方QQ及微信()
优秀技术总监
引用:原帖由 ztzhq 于
10:22 发表
你是个什么东西 ?有什么资格评价别人 ?? 你是个什么东西,不能让人评论?
感谢楼主!谢谢了!
楼要盖歪了。。。 技术讨论到重点就行了,海康威视用OSD修改通道名称显示不支持此项功能该怎样修改通道名称_百度知道
海康威视用OSD修改通道名称显示不支持此项功能该怎样修改通道名称
我有更好的答案
主菜单-&通道管理-&通道显示,这里有一个通道名称,修改就可以了。
采纳率:77%
来自团队:
其实真正的原因是,在设备调试好后海康威视的录像机密码被改过和海康威视的摄像头密码不一致;在刚开始安装录像机调试时候,录像机的密码和摄像头的密码一般是一样的都是初始密码,等调试好后,师傅们会把录像机设置一个新密码,摄像头设置一个新密码,有可能两个密码会不一样,等你不小心在录像机里把通道删除,再点添加通道回来的时候 ,往往显示通道名称和正常使用的摄像头通道名称不同,结果很多人就被引导到去改通道名称,其实只要把摄像头和录像机的密码再变成一样的,然后添加通道,问题立刻解决,调试好以后又可以单独为录像机和摄像头设置不同的密码。
1条折叠回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。监控摄像头能看图不储存是怎么回事_百度知道
监控摄像头能看图不储存是怎么回事
我有更好的答案
有硬盘录像机吗?有的话可能是录像配置的问题,没有设置好
采纳率:82%
为您推荐:
其他类似问题
您可能关注的内容
监控摄像头的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。linux设备上的Onvif 实现21:解决大华摄像头无法使用问题
时间: 00:25:47
&&&& 阅读:3957
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&
好长时间没有再写该系列文章了,最近刚好摸索着解决了大华摄像头无法使用问题,记录下来,应该对其他博友有所帮助。之前虽然写了一大堆文章说明了如何使用gsoap连接摄像头,但这是针对一台海康的摄像头开发的,一旦使用了同品牌不同型号摄像头或者其他牌子的摄像头就可能出现兼容性问题,导致无法使用。我就是碰到了这个问题,测试过的多个品牌型号摄像头,有的能直接使用,有的不能使用,问题各部相同。本文就是针对大华摄像头的问题解决过程说明。
摄像头型号:DH-IPC-HDW130S-0600B
MAC:90:02:A9:3D:1A:63
默认IP: 192.168.16.108, 修改使用IP:192.168.0.108
默认用户名密码;admin:admin
软件里面查看版本信息如下:
设备类型 IPC-HDW4105S
软件版本 2.400.0000.0.R, build :
WEB版本& 3.2.4.161826
ONVIF版本 2.3
序列号&& TGC4AW158W00019
有意思的一点是摄像头标签上的型号是HDW130s,但是固件中的设备类型却是HDW4105S,不一致的哦。
-------------------------------------------------------------------
问题1:我的分机发出probe命令,但是没有收到大华IPC应答,无法发现&。
问题分析:OnvifTest软件可以正确发现大华IPC,抓包比对OnvifTest报文和我的报文,发现SOAP-ENV不同。百度后明白原因如下:
我使用的gsoap版本生成 RemoteDiscoveryBinding.nsmap,内容是有版本区别的。
&&& //SOAP 1.1版本
&&& {&SOAP-ENV&, &&, &&,
&&& {&SOAP-ENC&, &&, &&,
NULL}, //1.1
&&& //SOAP 1.2版本
&&& {&SOAP-ENV&, &&, &&,
&&& {&SOAP-ENC&, &&, &&,
NULL},& //1.2
1.1版本的可以发现海康IPC,1.2版本才能发现大华IPC。使用1.2版本内容,收到大华Probe应答,解析成功。
-------------------------------------------------------------------
问题2:我的分机发出GetCapabilities命令,无应答。
问题分析:
&&&&还是对比OnvifTest软件和分机发出的GetCapabilities命令,发现主要是域名空间不同。
这是使用ONVIF TEST软件发送的GetCapabilities
POST /onvif/device_service HTTP/1.1
Host: 192.168.0.108
Content-Type: application/soap+ charset=utf-8
Content-Length: 335
&?xml version=&1.0& encoding=&utf-8&?&
&s:Envelope&
& xmlns:s=&&&
& &s:Body&
&&& xmlns:xsi=&&&
&&& xmlns:xsd=&&&
& &GetCapabilities xmlns=&&&
&&& &Category&All&/Category&
& &/GetCapabilities&
& &/s:Body&
&/s:Envelope&
一共使用了4个命名,
&xmlns s=&&
&xmlns:xsi=&&&
&xmlns:xsd=&&&
&xmlns=&&&
而gsoap生成的RemoteDiscoveryBinding.nsmap,完整的命令空间如下,密密麻麻好多啊!
SOAP_NMAC struct Namespace namespaces[] ={&
&&& {&SOAP-ENV&, &&, &&,
&&& {&SOAP-ENC&, &&, &&,
&&& {&xsi&, &&, &&,
&&& {&xsd&, &&, &&,
&&& {&wsa&, &&, NULL, NULL},&&&&
&&& {&wsdd&, &&, NULL, NULL},&&&&
&&& {&chan&, &&, NULL, NULL},&
&&& {&wsa5&, &&, &&,
&&& {&c14n&, &#&, NULL, NULL},&&&
&&& {&wsu&, &&,
NULL, NULL},&&
&&& {&xenc&, &#&, NULL, NULL},&&
&&& {&wsc&, &&, NULL, NULL},&&&&
&&& {&ds&, &#&, NULL, NULL},&&
&&& {&wsse&, &&,
&&, NULL},&&
&&& {&xmime&, &&, NULL, NULL},&
&&& {&ns5&, &&, NULL, NULL},&&&
&&& {&ns6&, &&, NULL, NULL},&&&&
&&& {&ns3&, &&, NULL, NULL},&&&
&&& {&ns4&, &&, NULL, NULL},&&
&&& {&ns7&, &&, NULL, NULL},&&
&&& {&wsdd10&, &&, NULL, NULL},&&&&
&&& {&ns1&, &&, NULL, NULL},&
&&& {&ns2&, &&, NULL, NULL},&&
&&& {&ns8&, &&, NULL, NULL},&&
&&& {NULL, NULL, NULL, NULL}
尝试只保留上述4个命名空间,就收到了大华IPC应答。由此确定是分机中的命令空间太多了,大华摄像头不支持某些命名空间,直接无视了,却不会发出任何错误应答。有了这个教训,后面的过程都是小心翼翼的试验只添加命令报文中使用的命名空间,这样就不会出现无应答错误了。最终各种命令汇总后的必须命名空间如下:
& xmlns:SOAP-ENV=&& ‘
& xmlns:SOAP-ENC=&&&
& xmlns:xsi=&&&
& xmlns:xsd=&&&
& xmlns:wsa=&&&
& xmlns:wsdd=&&&
& xmlns:ns1=&&&
& xmlns:ns2=&&&
& xmlns:ns3=&&&
& xmlns:ns8=&&&
------------------------------------------------------------------
问题3:& 我的分机设备发出Probe命令成功,发现了大华IPC,然后发送命令GetCapabilities,收到了大华IPC应答报文,但是分机却返回error=SOAP_TYPE,导致失败。使用OnvifTest软甲测试GetCapabilities,IPC发送了同样的报文,就可以正确解析。
问题分析过程:
&&& SOAP_TYPE: 标准解释是An&XML&Schema&type&mismatch,&到底是个什么意思我也说不出来,猜测是一些字段或域名空间关键字错误。
(1)首先怀疑报文解析过程中的每个字段项解析是否出现了错误,确定是哪个字段项错误。
& 方法:编译分机程序时天机编译开关-DDEBUG,这样运行分机程序会自动生成调试文件:RECV.log、SENT.log、TEST.log。打开TEST.log文件,查找error没有发现。观察报文解析过程,发现出现在这一段:
&&&&tt:Extension&
&&&&&&&&& &tt:DeviceIO&
&&&&&&&&&&& &tt:XAddr&http://192.168.0.108/onvif/deviceIO_service&/tt:XAddr&
&&&&&&&&&&& &tt:VideoSources&1&/tt:VideoSources&
&&&&&&&&&&& &tt:VideoOutputs&0&/tt:VideoOutputs&
&&&&&&&&&&& &tt:AudioSources&0&/tt:AudioSources&
&&&&&&&&&&& &tt:AudioOutputs&0&/tt:AudioOutputs&
&&&&&&&&&&& &tt:RelayOutputs&0&/tt:RelayOutputs&
&&&&&&&&& &/tt:DeviceIO&
&&&&&&&&& &tt:Extensions&
&&&&&&&&&&& &tt:TelexCapabilities&
&&&&&&&&&&&&& &tt:XAddr&http://192.168.0.108/onvif/telecom_service&/tt:XAddr&
&&&&&&&&&&&&& &tt:TimeOSDSupport&true&/tt:TimeOSDSupport&
&&&&&&&&&&&&& &tt:TitleOSDSupport&true&/tt:TitleOSDSupport&
&&&&&&&&&&&&& &tt:PTZ3DZoomSupport&true&/tt:PTZ3DZoomSupport&
&&&&&&&&&&&&& &tt:PTZAuxSwitchSupport&true&/tt:PTZAuxSwitchSupport&
&&&&&&&&&&&&& &tt:MotionDetectorSupport&true&/tt:MotionDetectorSupport&
&&&&&&&&&&&&& &tt:TamperDetectorSupport&true&/tt:TamperDetectorSupport&
&&&&&&&&&&& &/tt:TelexCapabilities&
&&&&&&&&& &/tt:Extensions&
&&&&&&& &/tt:Extension&
遇到Extension段中包含Extensions段,内部的Extensions段都未能识别出来,后面的log中都没有出现该段内容的解析过程。这种TelexCapabilities是海康IPC报文中没有的,在gsoap代码中也找不到该字段。由此确定是该段解析出错。
(2)确定代码中的错误位置
从GetCapabilities命令的调用关系一层层的跟踪下去,
soap_call___ns2__GetCapabilities()& soapClient.c
& soap_get__ns2__GetCapabilitiesResponse()& 该函数执行后出现error=SOAP_TYPE
&&& soap_in__ns2__GetCapabilitiesResponse()
&&&&& soap_in_PointerTons3__Capabilities()
&&&&&&& soap_in_ns3__Capabilities()
&&&&&&&&& soap_in_PointerTons3__CapabilitiesExtension()
&&&&&&&&&&& soap_in_ns3__CapabilitiesExtension()
&&&&&&&&&&&&& soap_in_PointerTons3__CapabilitiesExtension2()
&&&&&&&&&&&&&&& soap_in_ns3__CapabilitiesExtension2()
最后的CapabilitiesExtension2()返回error=SOAP_TYPE,通过添加打印信息确定是if (soap_in_byte(soap, &-any&, a-&__any, &xsd:byte&))出现失败。 仔细观察soap_in_byte()函数,内部调用 stdsoap2.c soap_s2byte()函数,目的是把输入字符串转换成10进制的整数。
soap_s2byte(struct soap *soap, const char *s, char *p)
&&& char *r;
&&& n = soap_strtol(s, &r, 10);&&&
&&& if (s == r || *r || n & -128 || n & 127)
&&& {&&&&&&&&&
&&&&&&& soap-&error = SOAP_TYPE;
&&& *p = (char)n;
& return soap-&
soap_s2byte这个函数调用soap_strtol进行转换,s是输入字符串,p指向转换后的单字节。但是对于s=“”空字符串无法转换成功,引起s==r成立,导致错误返回SOAP_TYPE。& 看起来好像是gsoap的一个bug。修改方法是去除s==r的判断条件,避免报告错误。
if ( n & -128 || n & 127)
&&& {&&&&&&&&&
&&&&&&& soap-&error = SOAP_TYPE;
这样修改后就不会出现错误了,soap_call___ns2__GetCapabilities()& 解析成功,TEST.log文件中也可以看到相关字段的解析了,下列内容是发现了字段,但是无法识别,予以忽略。
Tags and (default) namespaces match: ‘tt:Extensions‘ ‘ns3:Extensions‘
Begin element found (level=6) ‘tt:Extensions‘=‘ns3:Extensions‘
Reverting to last element ‘tt:Extensions‘ (level=5)
Tags and (default) namespaces match: ‘tt:Extensions‘ ‘ns3:Extensions‘
Begin element found (level=6) ‘tt:Extensions‘=‘ns3:Extensions‘
Enter id=‘‘ type=781 loc=(nil) size=8 level=0
stdsoap2.c(7512): malloc(20) = 0x410d98
New block sequence (prev=(nil))
stdsoap2.c(2187): malloc(12) = 0x410dc8
Push block of 1 bytes (1 bytes total)
stdsoap2.c(2209): malloc(9) = 0x410df0
Enter id=‘‘ type=3 loc=0x410df8 size=1 level=0
Element content value=‘‘
Push block of 1 bytes (2 bytes total)
stdsoap2.c(2209): malloc(9) = 0x410e18
Enter id=‘‘ type=3 loc=0x410e20 size=1 level=0
Element content value=‘‘
Unexpected element ‘tt:TelexCapabilities‘ in input (level=6, 1)
Tags ‘tt:TelexCapabilities‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:TelexCapabilities‘
Unexpected element ‘tt:XAddr‘ in input (level=7, 1)
Tags ‘tt:XAddr‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:XAddr‘
End element found (level=8) ‘tt:XAddr‘=‘‘
Unexpected element ‘tt:TimeOSDSupport‘ in input (level=7, 1)
Tags ‘tt:TimeOSDSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:TimeOSDSupport‘
End element found (level=8) ‘tt:TimeOSDSupport‘=‘‘
Unexpected element ‘tt:TitleOSDSupport‘ in input (level=7, 1)
Tags ‘tt:TitleOSDSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:TitleOSDSupport‘
End element found (level=8) ‘tt:TitleOSDSupport‘=‘‘
Unexpected element ‘tt:PTZ3DZoomSupport‘ in input (level=7, 1)
Tags ‘tt:PTZ3DZoomSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:PTZ3DZoomSupport‘
End element found (level=8) ‘tt:PTZ3DZoomSupport‘=‘‘
Unexpected element ‘tt:PTZAuxSwitchSupport‘ in input (level=7, 1)
Tags ‘tt:PTZAuxSwitchSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:PTZAuxSwitchSupport‘
End element found (level=8) ‘tt:PTZAuxSwitchSupport‘=‘‘
Unexpected element ‘tt:MotionDetectorSupport‘ in input (level=7, 1)
Tags ‘tt:MotionDetectorSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:MotionDetectorSupport‘
End element found (level=8) ‘tt:MotionDetectorSupport‘=‘‘
Unexpected element ‘tt:TamperDetectorSupport‘ in input (level=7, 1)
Tags ‘tt:TamperDetectorSupport‘ and ‘SOAP-ENV:‘ match but namespaces differ
IGNORING element ‘tt:TamperDetectorSupport‘
End element found (level=8) ‘tt:TamperDetectorSupport‘=‘‘
End element found (level=7) ‘tt:TelexCapabilities‘=‘‘
stdsoap2.c(2236): free(0x410e18)
stdsoap2.c(7512): malloc(12) = 0x410e18
Save all blocks in contiguous memory space of 1 bytes (0x410df0-&0x410e18)
总结: 通过上述修改,解决了大华IPC无法使用问题,分机可以发现设备、查询设备能力、修改媒体配置、获取流媒体地址。最后,分机能通过rtsp连接摄像头,显示出了视频画面。
致谢:最近才在CSDN发现一篇博文,简直就是黑夜中指路明灯啊,一下子解决困扰我大半年的问题,太谢谢这位大神了!
原文:关于onvif对接海康设备出现soap-&error=4的问题
标签:&&&&&&原文地址:http://blog.csdn.net/u/article/details/
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 摄像头显示两个小人 的文章

 

随机推荐