如何本身实现一套EasyNVR这样的无插件流媒体服务器

EasyNVR流媒体解决方案

EasyNVR可以经过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具备RTSP协议输出的设备接入到EasyNVR,EasyNVR可以将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),而且EasyNVR可以将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发,EasyNVR的主要建设目标是将各类各样的安防摄像机、NVR进行统一接入和管理,并控制流的按需输出,对全平台终端提供统一的标准H5流输出:nginx

EasyNVR无插件直播

咱们在EasyNVR的设计之初就按照视频能力平台的目标去建设,链接底层各类厂家的硬件和上层各类各样的视频场景应用:git

EasyNVR无插件直播

EasyNVR技术实现咱们采用技术流程是:github

  • EasyOnvifClient进行设备的发现和设备直播流取址;
  • EasyRTSPClient进行RTSP取流;
  • 将安防类的G.711/G.726等音频格式经过EasyAACEncoder转码为AAC格式;
  • EasyRTMP对音视频流进行校订和推流到EasyDSS流媒体服务器;
  • EasyDSS流媒体服务器进行RTMP/HTTP-FLV/HLS同步输出,兼容全部终端;
  • 外围根据用户的接口请求控制拉流->推流->转发的节奏;
  • 各个流转节点同步会作一些快照、错误码的记录和对外输出;

如何自建一套EasyNVR流媒体系统

第一步:设备对接协议的选择

不管是以RTSP、Onvif协议从设备取流,仍是国标GB/T28181向设备取流,都是根据设备所支持的协议,经过协议过程获取到设备回调的音视频数据,例如海康的NetSDK、国家电网视频平台A/B接口等;web

在取流协议的选择上,就看自身的应用需求,好比您的设备只有海康的,那么您彻底能够用海康的SDK来取流,可是若是您的设备是各类厂家都有,并且不固定,建议采用的是RTSP这种国际标准的取流方式。服务器

那么,以RTSP取流为例,咱们在开源或者商用领域有不少可选的,好比ffmpeg和EasyRTSPClient(https://github.com/EasyDSS/easyRTSPClient);网络

第二步:数据处理与分析

从第一步取到音视频流后,咱们须要将流统一Demux为ES流进行进一步的处理,例如海康SDK输出的大部分流为PS流,咱们须要将PS解析成ES的音视频数据,再基于ES的音频、视频数据进行例如:快照、视频信息、转码、视频分析等多种操做。svg

第三步:推流与分发

在第二步进行了初步的数据处理后,咱们须要将ES音视频数据经过librtmp或者EasyRTMP(https://github.com/EasyDSS/EasyRTMP)推送到nginx-rtmp或者EasyDSS(www.easydss.com)流媒体服务器进行高性能分发和存储,并提供一系列的对外管理接口;性能

第四步:接口化处理

完成了以上3步,只能算是跑通了整个数据流程,咱们还须要对整个流程进行控制,例如,当有客户端请求观看的时候,咱们才启动取流、转码、推流、分发的过程,当用户中止观看或者一段时间内超时未进行服务端保活,服务端即中止整个流转的过程。编码

同时,咱们须要将对某个设备的取流、取录像的过程均以接口的形式对外输出(参考EasyNVR的实现),这样一套底层能够提供给多个现场,多种项目使用。插件

服务建设的原则

回顾EasyDarwin->EasyDSS->EasyNVR的发展过程,基本上保持的是先局部后系统、先组件后平台的发展方式,一步一步夯实每个细节功能点,从最基础、最兼容的音视频数据的拉流获取,到高效的、全兼容的数据推流,再到流媒体服务器对音视频数据的高性能分发,与全平台的音视频播放,这整个的一条音视频数据传输链路的造成,就足够知足各类变幻无穷的音视频应用的需求场景。

尤为是在安防领域,其主要特色是设备多、用户少、智能化要求高,咱们须要接入多种网络环境下的多种不一样协议的设备,例如摄像机IPC、网络硬盘录像机NVR、硬盘录像机DVR、GB/T28181国标设备、单兵设备、SIP协议设备等,这就会涉及到比较多的数据传输和控制协议,例如:RTSP、RTP、Onvif、GB/T2818一、SIP、国网A/B接口等,而这些传输协议的数据封装格式又会各类各样:ES、TS、PS,PES,咱们须要作的是将全部的这些协议进行兼容,对上层应用系统、用户侧提供统一的接口和兼容性强的音视频输出协议,构建一套高内聚、低耦合、易扩展、接口友好的视频能力平台,让应用系统的研发人员基于视频能力平台就能够研发出各类以视频为增值服务的应用平台!

在传统安防结合互联网的音视频应用领域,基本上能够拆分为如下几点:

一、协议兼容

从设备取流与数据转发协议上,咱们须要涉及到:

  • RTSP取流;
  • Onvif协议控制;
  • GB/T28181协议控制;
  • 国网A/B接口控制;
  • RTMP推流;

二、流封装的处理

经过取流协议获取到音视频数据后,咱们须要对各类音视频数据的封装格式和编码格式进行二次处理,统一输出:

  • RTP数据解析;
  • PS数据解析;
  • RTMP/FLV数据封装;

三、流数据的分发与存储

流媒体服务是全部视频应用最核心的部分,主要要求可以稳定、高性能、全平台分发,而且可以提供一系列的外围管理服务,包括录像、检索、回放、鉴权等:

  • 高性能分发;
  • RTMP/HLS/HTTP-FLV同步输出;
  • 录像、检索与回放;

四、音视频编解码

  • 视频快照;
  • G.711/G.726/PCM转码AAC;
  • 音视频的解码与播放

关于EasyNVR

EasyNVR可以经过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具备RTSP协议输出的设备接入到EasyNVR,EasyNVR可以将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),而且EasyNVR可以将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;

详细说明:http://www.easynvr.com

点击连接加入群【EasyNVR解决方案】:383501345

资源引用

EasyDarwin开源流媒体服务器:www.EasyDarwin.org

EasyDSS商用流媒体解决方案:www.EasyDSS.com

EasyNVR无插件直播方案:www.EasyNVR.com

EasyDarwin RTSP系列:https://github.com/EasyDarwin

EasyDSS RTMP系列:https://github.com/EasyDSS

Copyright © EasyDarwin Team 2012-2018

相关文章
相关标签/搜索