摄像机三种基于web直播、点播协议在项目实战中的应用

当前在很多项目中我们都会涉及到视频监控模块的开发,传统的开发方式就是依赖厂家的SDK包进行二次开发集成,但这种集成开发的工作有几个弊端:

  • 工作量大:每一个厂家的SDK我们都需要集成开发一次,会涉及大量的SDK兼容与升级问题;
  • 稳定性差异较大:不是每一个厂家开放出来的SDK都像海康一样,具备较高的成熟度和稳定性,甚至会有一些厂家开放的SDK稳定性会影响到集成系统的稳定性;
  • 扩展难,SDK接入不像RTSP、Onvif通用协议一样,按照统一的标准接入就搞定了,SDK是需要来一个接一个,像扩展系统的接入能力,必须接入新SDK,必须做开发;

一、目前的一些行业现状

1、OCX插件式播放,几乎每个厂家提供的视频播放都需要支持一些插件播放,有插件就意味着有一定的限制,例如,有的是OCX插件则必须基于IE进行播放。

2、品牌众多难以集成,当遇到各种品牌的监控设备时,你一定会懵,显然需要一种集成播放各主流品牌的的视频播放协议,例如RTSP、Onvif。

3、用户体验较差,一般视频监控只是项目中的一个模块,而我们整个项目的视觉或者UI都是进行极致的设计,使用到一些比较新的渲染技术,整体浏览效果非常好,但是遇到视频监控(当然也有其他的插件式)就得安装插件,甚至切换浏览器,导致的结果就是我们整个项目的渲染会受到严重的影响。

二、使用web播放协议进行视频直播

目前主流的播放协议主要有三种:
1、HTTP-FLV
出于Adobe公司,基于HTTP协议的长连接,低延迟的播放协议,支持HTML5标准,当前主流浏览器都会兼容,只要支持HTML5标准的都可以进行播放,当然包括移动端。

2、RTMP
出于Adobe 公司,基于TCP的传输协议,不支持HTML5标准,基于Flash进行播放,播放延时率很低,大概2秒左右,好多直播网站采用这种方式,由于PC端几乎所有浏览器都支持Flash,只有移动端支持较少,因此该协议适合在PC端运行。

3、HLS
出于苹果公司的,基于HTTP协议进行传输,采用切片数据传输,因此在客户端会产生很多的ts文件,播放延时率较高,普通的在10s+,不过有的厂家对HLS进行了底层优化,据说可以达到4s左右,同时支持HTML5标准,因此支持PC和移动端。

三、开发及部署

1、流媒体播放服务器一般采用nginx,稳定好用,安装部署自行查阅相关资料。参考地址:https://www.cnblogs.com/xuey/p/9244434.html

2、需要厂家的设备支持RTSP协议(实时流传输协议,是TCP/IP协议体系中的一个应用层协议,几乎所有都支持),可以联系厂家进行设置。

3、使用对应的js插件进行播放。HTTP-FLV使用flv.js,HLS、RTMP采用video.js。前台页面使用video标签进行播放。
在这里插入图片描述
在这里插入图片描述
四、项目实践及应用

1、基于GIS的视频播放,下面是天地图的使用的在线视频播放
在这里插入图片描述
2、集成在项目中,完全融合项目的界面风格
在这里插入图片描述

五、推荐优秀的流媒体服务平台

最后给大家推荐一款很好用的流媒体服务平台EasyNVR,一键安装,他是利用nginx+Golang搭建的流媒体服务,集成了HTTP-FLV、HLS、RTMP、RTSP四种协议,无缝切换,使用体验好,稳定,特别适合快速大家流媒体服务进行无插件的web播放。

猜你喜欢

转载自blog.csdn.net/xiejiashu/article/details/98043161