# 音视频融合通信系统架构
音视频融合通信系统是作者提供的以音视频数据和多种通信方式融合的系统架构设计和实现。
## 主要功能包括:
* 将 GB28181 设备或级联平台作为源端设备,把源端设备推送的 PS 流转成 ES 流,并提供 RTSP、RTMP、HTTP-FLV、WEBSOCKET-FLV、HLS 多种数据格式输出和分发,以支持 Web 浏览器、手机浏览器、微信、PC 客户端等多终端无插件播放;
* 支持实时预览、云端存储、历史数据回放和控制、语音对讲等;
* 支持简单的业务处理,主要包括:用户管理、源端设备管理和控制、系统信息查询、黑名单和白名单等;
* 对外提供 HTTP API 接口,通过接口可以进行多系统互联互通。
## 系统架构图
<div align="center">
<img src=./doc/architecture.png />
</div>
## 概要设计
### 一 引言
#### 1 编写目的
对流媒体应用平台进行整体的规划和设计,以此作为后续代码开发工作的基础。
#### 2 背景
#### 3 定义
| 缩写 | 全称 |
| ---- | ----------------------------------- |
| CMS | 应用平台管理服务 |
| CMD | 应用平台部署服务 |
| CMQ | 应用消息队列服务 |
| SMS | 流媒体分发服务 |
| CDB | 应用平台数据库管理服务 |
| DVS | 对 DVR、NVR 和 IPC 等物理设备的统称 |
| DC | DVS 接入服务 |
| DH | DC 控制服务 |
| SDK | 应用平台 SDK 接口 |
### 二 基本约定
#### 1 程序名称
| 序号 | 程序名 | 简述 |
| ---------------------- | --------------- | ---------------------------- |
| 应用平台基础(核心)部分 | | |
| 1 | cms | 查询和配置平台内所有的资源 |
| 2 | Web | 基于 Web 的平台部署 |
| 3 | sms | 音视频流数据分发 |
| 4 | cmq | 平台通信数据分发 |
| 5 | cdb | 数据库访问接入 |
| 应用平台扩展部分 | | |
| 1 | log | 平台日志记录和查询 |
| 2 | storage | 平台音视频数据集中存储和播放 |
| 3 | gb28181upward | GB28181 上级平台接入 |
| 4 | gb28181downward | GB28181 下级平台接入 |
| 5 | rtppublisher | RTSP/RTP 流接入 |
| 6 | rtmppublisher | HTTP/RTMP 流接入 |
| 7 | hlspublisher | HTTP/HLS 流接入 |
| … | … | … |
| DVS 设备接入部分 | | |
| 1 | devicehost | 分发和监视 DC 组件运行 |
| 2 | dc_hik | 基于 HIK SDK 访问的组件 |
| 3 | dc_dh | 基于 DH SDK 访问的组件 |
| 4 | dc_onvif | 基于 ONVIF 协议访问的组件 |
| 5 | dc_gb28181 | 基于 GB28181 协议访问的组件 |
| 6 | dcmonitor | 与 Web 服务同步的 DC 监视器 |
| … | … | … |
| Demo 工具 | | |
| 1 | demo | 平台接入测试与演示工具 |
| 2 | dct | 设备组件接入测试工具 |
| … | … | … |
#### 2 目录配置
##### 2.1 程序文件
Windows
| 目录 | 描述 |
| ---- | ---- |
| | |
Linux
| 目录 | 描述 |
| ---- | ---- |
| | |
##### 2.2 配置文件
Windows
| 目录 | 描述 |
| ---- | ---- |
| | |
Linux
| 目录 | 描述 |
| ---- | ---- |
| | |
##### 2.3 日志
Windows
| 目录 | 描述 |
| ---- | ---- |
| | |
Linux
| 目录 | 描述 |
| ---- | ---- |
| | |
### 三 系统设计
#### 1 系统结构图
一套完整的流媒体应用系统由平台基础(核心)部分和 DVS 设备接入部分组成。其中:
· 平台基础(核心)部分的 3 种服务是不可选配的,它由一个 CMS 服务、一个 CMQ 服务和一个或多个 SMS 服务组成,这 3 种服务缺一不可;
· 每个平台可以接入一个或多个 DeviceHost 服务,该服务通过平台配置的 DVS 组件信息来控制其运行并监视其运行状态;
· 每个 DeviceHost 服务在同一时刻可以控制和监视一个或多个不同类型的 DVS 组件(如 DC_HIK, DC_GB28181 等),但同一类型的 DVS 组件在同一时刻只能隶属于一个 DeviceHost 服务。
做为流媒体应用平台的服务,它必须尽可能适应各种各样不同格式的流媒体数据。所以流媒体应用平台提供了可扩展的应用部分,这些可扩展的服务作为流媒体应用平台内部和外部数据的桥梁,以流媒体应用平台内部数据为基础,向平台外部提供更多、更丰富的数据展示。另外,可扩展部分的服务可以是由我们自己按照一定的需求来完成,也可以由第三方通过遵照我们平台 API 接口的方式来完成。最后,将可扩展的服务部署到平台上即可使用。
鉴于流媒体应用平台系统在不同行业中的应用场景需求,平台与平台间必须包含上下级级联结构,其基本规则如下:
· 平台内的资源只能由该平台管理员进行配置和修改,其他任何上级和下级平台都无权进行操作;
· 下级平台主动向它隶属的上一级平台推送该平台内的所有资源信息以及相应的变更通知或报警通知等;
· 上级平台能够请求播放隶属于它自己的所有下级平台内的流媒体数据,但下级平台不能请求播放上级平台的流媒体数据;
· 隶属于同一个上级的兄弟平台间不能请求播放流媒体数据。
![](https://www.writebug.com/myres/static/uploads/2021/11/19/b129ccc13709250d394b685ac60d02b8.writebug)
##### 1.1 V1.0.0.6120 设计结构图
V1.0.0.6120 作为当前第一个版本的设计结构图,遵照优先构建私有格式流媒体数据传输的目的,其系统结构图如下:
![](https://www.writebug.com/myres/static/uploads/2021/11/19/d92ffb9b56b0f53bd6964a686139df02.writebug)
该结构结构设计实现以下功能:
1. DC_Hik 模块通过 HIK SDK 和一个或多个物理 HIK 设备建立连接,并从物理 HIK 设备上获取音视频流数据,最后将音视频流数据主动推送到 SMS 中;
2. SMS 服务完成音视频流数据的管理和转发,以及通知 DC_Hik 模块登录哪些物理 HIK 设备;
3. Player App 是使用 SMS_Client SDK 的客户端应用程序,实现音视频流的播放。
#### 2 网络通信
应用平台网络通信采用异步消息队列分发的模式,消息的传递类似于邮局寄信的方式。每个应用平台都仅有一个 CMQ 服务,它就是邮局,所有的其他服务都向 CMQ 服务投递消息;投递结束后不必等待消息的回复(如果外部逻辑要求等待,也是可以的),CMQ 会自动对回复消息进行处理。对于级联模式来说,消息就是在上下级的 CMQ 之间进行分发。
应用平台网络通信包含的方式有多种,比如:
· 请求-应答
· 发布-订阅
· 管道
· 代理
等。
#
基于C++实现音视频融合通信系统【100012561】
版权申诉
5星 · 超过95%的资源 186 浏览量
2023-05-31
14:14:59
上传
评论 1
收藏 960KB ZIP 举报
神仙别闹
- 粉丝: 2712
- 资源: 7668
最新资源
- 基于LUT查找表方法的正弦信号产生器FPGA实现,包含testbench,包括程序,注释,操作步骤
- Screenshot_20240618_174113.jpg
- matlab画正余弦函数图的代码!!!!!
- 2_期末网店运营报告模版.pdf
- MyBatisCodeHelperPro 3.3.2-2322 2023.2-2024.1
- 基于Python的简单的学生成绩管理程序设计(课程设计)
- jdk-8u20-windows-x64安装版本-jdk-8u301-linux-x64解压版
- 植物大战僵尸杂交版 修改阳光和冷却
- html css js网页设计ntion-model-for-开发笔记
- 数据库课程设计-processing开发笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈