背景介绍

有一个远程监控的需求,正常情况下采用服务器转发视频流对服务器要求很高,所以p2p看似是一个比较好的方案,但是p2p打洞却不是一件容易的事情,所以打算分析下海康萤石摄像机远程监控的机制,是否采用了p2p的方式。

初步分析结果

少废话,先说结果:对称型nat的p2p打洞是一个比较困难的技术问题,萤石摄像机并没有很好的解决对称型p2p打洞的问题,而是采用服务器转发的方式实现远程监控。
注:由于测试环境比较单一,不能完全确认萤石不能打通对称型nat网络。

萤石摄像机远程监控的处理流程

萤石摄像机在跨公网的远程在线预览时,首先为了保证用户体验,预览起初会采用服务器对视频流进行转发,保证用户尽快的看到视频监控画面。
同时会尝试进行p2p打洞,采用端口累加的算法尝试打洞,非常遗憾的是在进行了10次左右的测试中,p2p打洞一直没能成功,在尝试p2p打洞几分钟后,确认一直打不通后,则放弃p2p方式,后续一直采用服务器转发的模式。

测试环境:

  • ipc设备架设在A处,通过中国移动网络接入公网,接入的公网ip为:223.95.81.70。
  • 客户端架设在B处,通过中国电信网络接入公网。
  • 经检测以上两种宽带接入,都是对称型nat网络。

测试过程:

  • 通过客户端进行视频远程预览,同时进行抓包。

测试结果分析

Frame 2261: 284 bytes on wire (2272 bits), 284 bytes captured (2272 bits) on interface 0
Ethernet II, Src: IntelCor_83:03:74 (24:77:03:83:03:74), Dst: TendaTec_5a:b1:a0 (c8:3a:35:5a:b1:a0)
Internet Protocol Version 4, Src: 192.168.0.119, Dst: 223.95.81.70
User Datagram Protocol, Src Port: 10103 (10103), Dst Port: 10009 (10009)
Data (242 bytes)
Frame 3018: 284 bytes on wire (2272 bits), 284 bytes captured (2272 bits) on interface 0
Ethernet II, Src: IntelCor_83:03:74 (24:77:03:83:03:74), Dst: TendaTec_5a:b1:a0 (c8:3a:35:5a:b1:a0)
Internet Protocol Version 4, Src: 192.168.0.119, Dst: 223.95.81.70
User Datagram Protocol, Src Port: 10105 (10105), Dst Port: 10010 (10010)
Data (242 bytes)
Frame 4770: 284 bytes on wire (2272 bits), 284 bytes captured (2272 bits) on interface 0
Ethernet II, Src: IntelCor_83:03:74 (24:77:03:83:03:74), Dst: TendaTec_5a:b1:a0 (c8:3a:35:5a:b1:a0)
Internet Protocol Version 4, Src: 192.168.0.119, Dst: 223.95.81.70
User Datagram Protocol, Src Port: 10107 (10107), Dst Port: 10011 (10011)
Data (242 bytes)

从抓到的数据包可以看到客户端会向223.95.81.70地址(ipc设备所在网络的公网ip)发送长度为284字节的udp打洞包,并调整源端口和目的端口进行端口预测。
打洞持续一段时间后,没有打通,则放弃p2p,后续一直采用服务转发的方式进行远程预览。

萤石视频流的转发应该是通过私有协议,而p2p标准定义了turn协议实现音视频数据的转发,不知道为什么对于这种常见的音视频传输,在监控领域并没有一个标准的协议出现。

疑惑

对称型nat的打洞是十分困难的,虽然有不少预测算法声称可以将打洞成功率提高到90%,不过从萤石相机的表现看效果不是很好,但是不知道迅雷,bt,电驴这类软件是如何实现p2p分享下载的,感觉这方面的水还是很深的。

另外优酷之前推出的可以赚钱的路由宝,貌似原理就是将个人的路由器做成能够分享的小型服务器,这样可以利用个人宽带的资源,节省自身的带宽。不过路由宝要能够用来分享,也是需要进行些设置,通过搜索感觉也是为了穿透nat的限制。

海康萤石摄像机远程监控机制分析相关推荐

  1. 海康智能分析服务器设置,【胖猴小玩闹】智能门锁与网关: 海康萤石智能门锁的网关分析(三)...

    1.简介 本篇是关于海康萤石智能网关分析的第3篇,在中,我们完成了固件编辑和重打包工作.在我们自己修改的固件中,海康萤石的智能网关上电启动之后会运行telnetd,此后我们只要通过telnet远程连接 ...

  2. 如何将传统的摄像机直接对接平台,类似于大华乐橙和海康萤石的方案

    需求描述 我们经常在做摄像机直播的时候,需要将传统的安防摄像机的音视频直播到公网或者内网的流媒体服务器上,那么,通常情况下我们通过一个外置的对接程序(在同一内网外挂一套程序)将摄像机的视频数据先取到对 ...

  3. 海康三维视频融合监控软件系统免费版,支持移动侦测告警

               海康三维视频融合监控软件系统免费版,支持移动侦测告警 一.古老的声音预警 千百年来,人们有养狗看家护院的习惯,并一直延续至今天. 当主人家门口或附近有陌生人的时候,狗会觉察到,开 ...

  4. 从海康萤石看企业经营之不易

    作者6年多业内知名半导体工作经验,目前在国内某BAT企业做产品. 欢迎关注公众号交流物联网技术和物联网产品. 原文链接 https://mp.weixin.qq.com/s?__biz=MzI3NDE ...

  5. Emgucv不完整图像分割试验(十八)——Emgucv或opencv连接海康/萤石网络4G摄像头

    项目需要远程连摄像头,之前也一直觉得这事挺简单的,opencv有教程也平时很多地方见过这样的操作,没想到实践起来蛮多坑的. 1.首先确定摄像头支不支持4G或WIFI,尽量选海康萤石这种大厂,资料较多. ...

  6. 微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签

    微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签 前言 萤石云开放平台 微信开发者工具 前言 因为项目需要在微信小程序上展示实时视频流信息,以下内容是我将萤石云平台官方文档和自己实 ...

  7. 海康摄像头视频实时监控

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 海康摄像 ...

  8. 使用海康摄像头实现实时监控

    原文地址为: 使用海康摄像头实现实时监控 1.  基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RTSP,标准H.264 RTP封装的设备). 1.2. 按照摄像头的使用 ...

  9. 海康安防平台监控画面通道命名修改

    新版海康安防平台监控画面通道命名 1.根据图片操作,完成记得保存.

最新文章

  1. MOSS 权限管理总结
  2. Android 计步功能-简单实现
  3. python由列表中提取出来的浮点型字符串不能直接转换成整形
  4. 十年的老代码,你敢动?
  5. 未能将网站配置为使用ASP.NET4.0,不能打开VS项目
  6. Java黑皮书课后题第3章:*3.3(代数:求解2*2线性方程)编写程序,提示用户输入a、b、c、d、e和f,然后显示结果
  7. C语言 | 读写文件
  8. Python操作excel(.xlsx)封装类MyPyExcel V2.0
  9. java offsetdatetime_Java OffsetDateTime withHour()用法及代码示例
  10. GIMP基本功能和教程!
  11. spss分析方法-判别分析
  12. Solidity 教程
  13. springBoot使用poi导出Excel
  14. Java实习生常规技术面试题每日十题Java基础(三)
  15. cuda FORTRAN 统一内存 managed
  16. 聊聊ringbuffer
  17. 混沌测试工具chaosblade介绍及常用命令汇总
  18. Eclipse 出现 Failed to Download Index 提示框
  19. iptables限制Docker IP和端口访问
  20. 上海市“专精特新”中小企业认定条件、流程、奖励政策

热门文章

  1. mysql中的left和right
  2. 机器学习是安全?还是威胁?
  3. html图片菱形,CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
  4. 服务器网站绕过备案,腾讯云服务器如何利用阿里DCDN绕过备案
  5. 【肌电信号】脉搏信号分析(去噪+特征提取)matlab源码含GUI
  6. 低功耗读卡(RFID)电路与程序实现
  7. 09_Pandas从多个条件(AND,OR,NOT)中提取行
  8. 将音频转化为MP3格式(lame库)
  9. 【Houdini】导出FBX或OBJ模型的三种方法
  10. 浏览器对象存储数据详解