新闻动态
技术中心
技术中心
当前位置:科达自控 >> 服务支持 >> 技术中心 >> 浏览文章
如何自建一套EasyNVR流媒体系统
作者:张永斌 日期:2021年03月22日 来源:技术部 浏览:

内容导读:无论是以RTSP、Onvif协议从设备取流,还是国标GB/T28181向设备取流,都是根据设备所支持的协议,通过协议过程获取到设备回调的音视频数据,例如海康的NetSDK、国家电网视频平台A/B接口等;

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

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

在取流协议的选择上,就看自身的应用需求,比如您的设备只有海康的,那么您完全可以用海康的SDK来取流,但是如果您的设备是各种厂家都有,而且不固定,建议采用的是RTSP这种国际标准的取流方式。那么,以RTSP取流为例,我们在开源或者商用领域有很多可选的,比如ffmpeg和EasyRTSPClient(https://github.com/EasyDSS/easyRTSPClient);

第二步:数据处理与分析

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

第三步:推流与分发

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

第四步:接口化处理

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

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

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

1、协议兼容

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

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

2、流封装的处理

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

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

3、流数据的分发与存储

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

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

4、音视频编解码

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

上一篇文章:煤矿井下胶带机智能化精确控制系统 下一篇文章:没有了
相关链接
发表评论
用户评论
版权所有 山西科达自控股份有限公司 晋ICP备09004627号-2  晋公网安备 14019202000008号   
官方微信
新浪官方微博
腾讯官方微博