前言

在维护EasyDarwin开源项目的几年内,几乎市面上大大小小的技术需求都给接触了一遍,大团队、大背景有大需求,草根团队有草根团队的需求,然而这些需求近些年都有一个发展的趋势,那就是“互联网”化,小到RTSP转RTMP进行互联网化直播,大到现在很多做公安/平安城市类的项目,都已经直接用上了萤石的方案,不过现在慢慢由于流量成本、硬件成本、未来空间的假想、不想被单个厂家绑架等很多方面,现在各大集团都在构建自己的视频云方案,但不可能整个从视频硬件设备、到视频平台、到业务平台都由自己来建设,尤其是前端硬件设备,研发周期长、研发成本高,不适合需要快速布局的企业投入研发硬件,只要保证前端硬件不被某一个厂家绑架就是非常好的方案了!

于是,我总结了实现这种平台的几个要点:

1. 前端设备采用通用的协议标准,例如:RTSP、RTMP、GB28181;

2. 平台多协议输出,支持各侧的业务需求:HTTP、GB28181等;

3. 前端采用标准协议,尽量不需要定制直接即可接入到自定义平台;

实现方案

为了能够达到企业能根据自己的业务需求,基于自己的虚拟云主机,构建自己的视频云平台,而且又不用自己生成硬件,我们可以提供3套可行的方案(按优先级排序):

1、基于GB28181协议接入设备(新平台,最优方案);

2、基于前置机的设备接入平台方案(可与1相结合,兼容老设备);

3、基于厂家的SDK平台进行二次开发(最不推荐的);

我们就几个方案的优缺点、可行性做一些见解:

  • 方案1:新部署设备及新上线设备的最优方案选择,现在市面上的大大小小的摄像机方案厂家都将GB28181的支持列为了必备属性,也就是说,无论是买海康、大华大厂家的设备,还是各地小厂家的硬件设备,都能配置并接入到GB28181的平台上,平台再控制设备进行关于直播、资源检索、录像回放、云台控制等各种功能的实现,这种方案的通用性比较强,维护成本也比较低;

方案1缺点:对于有一些现场的老设备无法接入,这些设备要么是老式的DVR,或者其他一些仅支持SDK接入的设备,都不支持GB28181平台接入,如果需要将这些设备接入到GB28181平台,就需要一个转接的程序来支持;



- 方案2:在此之前我们构建过一套基于EasyDarwin云平台的视频平台方案,采用的就是这种内网EasyNVR + 公网EasyDarwin云平台的方式构建的私有云平台,可以接入基于市面上全部的机器摄像机设备:《EasyDarwin幼教云视频平台在幼教平台领域大放异彩!》、《基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案》,这种方案采用了一种协议转接的模式来进行平台接入的,EasyNVR作为一种适配器服务,将各种不标准的设备都转成平台能接受的标准协议,接入到平台;

这种方案的弊端就是在每一个现场都必须内置一台设备跑EasyNVR服务,在某些成本敏感的项目中,EasyNVR会被视为一个成本和维护的巨大消耗点;



方案3:基于厂家提供的设备+平台+平台SDK进行二次开发,其基本思路就是,某个厂家的设备能主动注册到厂家自己开发的平台(注:这些可能都是走的私有协议),然而厂家也不开放这些协议和平台,所以,必须在平台侧用厂家的SDK才能从平台取流,再将流转成自己的协议对外输出;

这种方案的弊端就是来一个厂家就要接入一套平台,而且多套平台可能会共存,这样到后期会导致平台越来越臃肿,客户端难以接入,而且从产品开发上来说,是在走弯路;

互联网+安防

以上讨论的多种方案,我选择最优的方案是方案1+方案2,对新接入的摄像机要求支持GB国标协议,现场无需再额外部署设备,而对于一些非常老的设备,我们采用EasyNVR接入到平台,再由平台进行输出;

在平台侧,我们一方面支持GB28181的接入服务和sip流媒体服务,又能够支持互联网客户端的http接入请求,进行RTMP/HLS分发的服务,这样平台不但有了公安安防的属性,更有了互联网直播的属性,是未来行业直播发展的一个大趋势;

关注EasyDarwin项目

EasyDarwin后续的发力方向将会是GB28181安防与EasyDSS互联网RTMP/HLS的结合,为行业用户提供安防级别的接入和互联网级别的直播分享!

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流群:587254841

Copyright © EasyDarwin.org 2012-2017

最新文章

  1. Shell判断字符串包含关系的几种方法
  2. 没想到cnblog也有月经贴,其实C#值不值钱不重要。
  3. 外网无法访问本地IIS站点
  4. REUSE_ALV_POPUP_TO_SELECT的使用技巧
  5. Azkaban遇到的坑-installation Failed.Error chunking
  6. mysql 的 存储结构(储存引擎)
  7. CSS3 animation的steps方式过渡
  8. 趣谈iOS运行时的方法调用原理
  9. magent编译安装及常见错误
  10. 中国 省会 地级市 经纬度 city array
  11. postman+jenkins+newman做接口测试的持续集成
  12. linux保持管道中颜色显示
  13. centos 环境变量配置
  14. Android-Chart
  15. 芯片烧录器编程AT24C02
  16. jquery怎么选择嵌套的第一层的li
  17. windows安装mysql5.7.xx解压版
  18. (备忘)打开office2010总是在配置进度
  19. forfiles
  20. C语言变量定义与数据溢出(初学者)

热门文章

  1. 20145314郑凯杰 《Java程序设计》实验二 实验报告
  2. Java 安装教程(Eclipse) + 汉化 + 简单创建java项目
  3. JS时间和字符串的相互转换 Date+String
  4. POJ_1703 并查集应用
  5. 梅森素数应用 nefu 120
  6. java自带的MD5
  7. Memcached stats slabs 命令
  8. IdentityServer4在Asp.Net Core中的应用(一)
  9. Javascript中的void
  10. MySQL设置某一字段默认为0,但是插入数据化却显示为null