## 背景

> 我司目前主要应用包括:视频监控(健康监测、工地、公厕)、视频称重等。
>
> 早期,通过大华、海康摄像头NVR配合 SDK调用,再使用[MediaPush](http://10.8.30.22/FS-Anxinyun/trunk/codes/services/MediaPusher/mediaPusher) RTSP/RTMP方式推流 (基于SRS开发的推流服务,目前发布在:218.3.150.106)
>
> 后期智慧城市项目多使用海康[萤石云](https://open.ys7.com/console/videoMonitor.html)接入。
>
> 2021年完成对GB28181国标协议的接入(基于开源项目 [Monibuca](https://github.com/Monibuca/engine))。(目前发布地址:http://221.230.55.27:8081/ui/#/home)



## 目标

**统一、开放、独立的视频接入中台服务**。

1. 适配我司现有/待选型摄像头/NVR视频接入和WEB/APP/小程序等所有推流场景。逐渐标准化视频解决方案。
2. 作为IOT产线功能模块直接提供第三方服务,实现独立平台功能包括设备配置、管理,实时推流展示、抓拍录像等
3. 深耕我司安全监测/智慧城市业务领域,实现视频监测与业务融合的解决方案。



## 规划

+ 开发基于`Monibuca`实现可视化视频管理平台 ☆☆☆☆
  + 设备管理列表、项目分组归属;☆☆☆☆
  + 实时预览、历史回看,支持显示多种协议推流地址(URL)信息 ☆☆☆☆
  + 云控、录像、抓拍功能验证或开发;☆☆☆
  + 设备在线状态和流量统计;☆☆☆
+ 性能压测和调优(负载均衡+分布式推流);☆☆☆☆☆
+ 视频和监测联动控制;☆☆
+ 除GB28181之外,考虑适配Onvif、EHOME等较为常见的视频流协议;☆
+ 视频推流分辨率控制;☆



![](imgs\视频产品构想\视频GB平台.png)

设备管理层级和绑定关系:

![image-20220307092436931](imgs/视频产品构想/image-20220307092436931.png)



## 竞品

### LiveQING LiveGBS 

[官网](https://www.liveqing.com/); [演示地址](https://gbs.liveqing.com:10010/#/);  [开发文档](https://www.liveqing.com/docs/download/LiveGBS.html#%E7%9B%B8%E5%85%B3%E4%BB%8B%E7%BB%8D); [前端源码](https://gitee.com/livegbs/GB28181-Server)

功能点:

+ 可视化设备管理,在线状态
+  RTSP、RTMP、HTTP-FLV、Websocket-FLV、HLS、WebRTC 等多种协议流输出
+ 国标向上级联
+ H264、H265, UDP、TCP信令和流传输
+ 预览、回看、音频、多路、云台、语音对讲

程序组成结构:

![image-20220304094035019](imgs/视频产品构想/image-20220304094035019.png)

### 海康萤石云

GB接入功能:

+ 设备管理列表
+ License接入控制
+ 国标级联、算法训练
+ 云录制、云存储、消息推送

总览页如下:

![image-20220303173016767](imgs/视频产品构想/image-20220303173016767.png)



监控控制台中的设备列表:

![image-20220307090023722](imgs/视频产品构想/image-20220307090023722.png)



### 青犀TSINGSEE

主页

http://open.tsingsee.com/

`EasyCVR`支持国标和EHOME协议

http://demo.easycvr.com:18000/#/device/list  easycvr/easycvr

主要功能:

+ 设备列表、视频调阅
+ 告警设置和查询
+ 定时录像计划、国标级联

设备列表:

![image-20220129153126420](imgs/视频产品构想/image-20220129153126420.png)

通道列表

![image-20220129153140317](imgs/视频产品构想/image-20220129153140317.png)



![image-20220129153624593](imgs/视频产品构想/image-20220129153624593.png)



## 附录-术语+技术

### ONVIF

【百度百科】ONVIF(开放式网络视频接口论坛);

规范1.0版本包括以下方面:

- IP配置
- 查找设备
- 设备管理
- 影像配备
- 实时监控
- 事件分析
- [PTZ](https://baike.baidu.com/item/PTZ/3478717)摄像头控制
- 视频分析
- 安防领域 

仅支持局域网访问。外网访问需要有固定IP。

支持golang的库有如下:

```
github.com/use-go/onvif
```



### EHOME

*ehome协议*是海康的私有协议,相对于GB28181国标协议都是基于设备端主动向平台注册,更适用于无固定ip地址的设备,只需要配置一下设备注册地址即可云端使用。

[tsingeye/Free*Ehome*](https://github.com/tsingeye/FreeEhome)

[《EasyCVR平台集成EHOME协议》](https://www.cnblogs.com/EasyNVR/p/13626433.html)



### ES 、PES、PS、TS

+ ES Elementary Stream 原始流,编码器直接输出的流,可以是H.264/MIPEG,音频AAC.
+ PES  Packetized Elementary Stream 分组ES(分组、打包、加入包头信息)
+ PS Program Stream 节目流 ,多个PES包的组合,包含同步信息、时钟恢复信息。
+ TS Transport Stream 传输流,固定长度的TS包组成,PES包的重组。信道环境较为恶劣、传输误码较高时一般采用TS码流



### RTMP/RTSP/HLS

REF:https://www.jianshu.com/p/c04d810b7562

+ RTMP: Real time messaging protocol;

  Adobe公司提出,基于TCP协议的互联网应用层。基本单元是Message,传输时候会切割成Chunk,进行串行同步的发送。

+ RTSP: Real time streaming protocol

  基于RTP/RTCP(UDP)的媒体传输协议;

  ![img](imgs/视频产品构想/webp.webp)

  区别:

  1)RTMP协议是Adobe的私有协议,未完全公开,RTSP协议和HTTP协议是共有协议,并有专门机构做维护。

  2)RTMP协议一般传输的是flv,f4v格式流,RTSP协议一般传输的是ts,mp4格式的流。

  3)RTSP传输一般需要2-3个通道,命令和数据通道分离,RTMP一般在TCP一个通道上传输命令和数据。

+ HLS: Http live streaming

  苹果公司提出的基于HTTP协议的流媒体网络传输协议。HTTP+M3U8+TS

![image-20220305195430986](imgs/视频产品构想/image-20220305195430986.png)



### H264 、H265



REF:https://www.cnblogs.com/pjl1119/p/9914861.html; 

符合MPEG-4 标准,视频压缩算法(格式)。H265是H264升级,减少带宽提高画质。

- 帧内预测压缩,解决的是空域数据冗余问题。
- 帧间预测压缩(运动估计与补偿),解决的是时域数据冗余问题。
- 整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化。
- CABAC压缩。

经过压缩后的帧分为:I帧,P帧和B帧:

- I帧:关键帧,采用帧内压缩技术。
- P帧:向前参考帧,在压缩时,只参考前面已经处理的帧。采用帧音压缩技术。
- B帧:双向参考帧,在压缩时,它即参考前而的帧,又参考它后面的帧。采用帧间压缩技术。





## 其他

### 宇视科技

https://open.uniview.com/login  yinweiwen/poixxxx_

![image-20220307111257305](imgs/视频产品构想/image-20220307111257305.png)