小亿 发布的文章

目录

关注我们

关注 ThingsBoard 微信公众号

手动增加微信公众号:thingsboard_cn
2023-10-26T01:09:12.png

访问 ThingsBoard 中文社区网站

访问网址:http://www.thingsboard.club
2023-10-26T01:08:23.png

ThingsBoard 扩展视频接入和实时点播/直播功能

本文所涉及到的视频技术主要是 ffmpeg, rtsp, onvif, webrtc, 如果不太了解的话,建议去先预习一下。

另外,本文所描述的应用场景主要是跟流媒体服务相关,没有过多的 ThingsBoard 配置管理。

社区经常问到的问题:TB 怎么接视频?

!!! success "答案是:肯定的,支持!"

这个问题困扰着很多人,有的解决了,有的还在苦苦挣扎中,那这篇文章将可能帮助那些还没有解决的伙伴一个思路和指引。

我们要实现的目标(需求分析)

!!! question "视频采集要简单(点几下鼠标,自动发现或输入连接信息)"

**不管是 USB 摄像头还是 IPC 网络摄像头,要很 *方便 *的管理和视频采集。**

- USB 摄像头一般都是 WebCam,通过 USB 接在网关或主机上,比如 Linux 下: `/dev/video0, /dev/video1`
- IPC 网络摄像头:
    1. 绝大部分都支持 `ONVIF` 协议,对接相对便捷,输入用户名和密码,自动获取 `StreamURI;`
    1. 不支持 `ONVIF` 协议,可以采用 `RTSP` 协议进行对接,配置起来相对比较麻烦些,必须要知道`摄像头流播放地址`,就是 `StreamURI` ;
    1. 最好是支持 `POE` 供电的网络摄像头,这样就不需要为摄像头拉电源线和转换器;

!!! question "在 Web 浏览器查看视频流(谁还愿意安装一个 App 来看视频呢?)"

- 坚决抵制(*客户要求*)安装 App 来查看视频,是不是太原始了;
- 能够兼容绝大部分的浏览器(对不起:IE 不支持 :fontawesome-regular-face-sad-cry: );

!!! question "查看视频流延迟尽量小(< 1 秒)"

**客户需求肯定是希望视频流越快越好,最好没有延迟和卡顿( *基本做不到* :material-emoticon-sad:,那就尽量提高查看视频效率吧**

- 人眼感知度在 `1秒` 内,还是可以忍受的范围,市面上大部分摄像头也就能达到这个级别;
- 视频和音频同步播放,怕就怕在声音来了图像还没有到,那种感觉太难受了;
- 不同的播放终端设备,其实延迟都不一样,比如 `HLS` 协议相对就比较延迟一些;
- 采用更高效的 `WebRTC` 协议,的确效果改善不少(需要浏览器支持);

!!! question "按需点播/直播,空闲时节省服务器资源"

** *占着茅坑不拉屎*,就是形容某些没有点播/直播的时候网关/服务器还占着资源不释放,所以 `按需` 才是王道。**

- 没有点播/直播时,要处于 `suspend 或 standby` 的状态,以便节省计算和网络资源;
- *即点即播*,一旦有客户端发起点播指令,应该在 `几百毫秒` 之内完成 `采集->编码->解码->视频流` 这一系列工作;
- *按需*,根据需要来驱动视频流的相关流程和处理,是客户所认同的观点。

技术实现原理(解决方案)

架构设计

简单架构设计逻辑

!!! info "架构"

2023-09-08T05:16:38.png

如上图所示,需要一系列的组建来完成这个架构设计,我司经过多年的经验和精密的设计,完成了高效的框架,以便满足在边缘端实现视频流处理。

复杂产品化框图

!!! success "产品级"

2023-09-08T05:16:48.png

要想达到产品级的要求,需要更多逻辑来配合上述简单设计,如果需要产品资料可与 [文末](#_8) 管理员联系。

网络摄像头(IPC)

!!! note "支持 ONVIF 协议"

这是首要条件,也是必备条件,请认准 ONVIF 标志在你的网络摄像头上支持程度。

- [x] 海康、大华、TPLINK、华为等工业摄像头都是支持这个 ONVIF 协议的产品;
- [x] 支持 PoE 接入是最好的了,方便快捷,一根网线搞定;
- [ ] 家庭监控的摄像头基本都不支持 ONVIF 协议,购买时请与商家确认好需求;
- [ ] Wi-Fi 摄像头不够稳定,选择时需要慎重:octicons-blocked-16:;
- [ ] 4G LTE 摄像头不能被局域网管理,不能选:material-block-helper:;

USB 摄像头(WebCam)

!!! example "USB 摄像头仅仅作为测试用途"

如果暂时没有 IPC,也可以用 USB 摄像头来测试/演示,笔记本自带摄像头或购买 USB 外置摄像头。

- [x] 视频流实现起来非常容易,几行命令就可以驱动摄像头工作;
- [x] 测试效果比 IPC 要好,尤其是延迟会减少,不要被这个性能所迷惑了:material-robot-confused:;
- [ ] 无法批量增加摄像头,并行查看效果,功能比较单一;

流媒体服务器 YiMEDIA

!!! tip "流媒体服务器器是必须的组件"

更多的流媒体服务器软件知识可以在互联网找到,如果需要我司支持,请与我们商务人员联系。

- [x] 如 [架构图](#_4) 所示,YiMEDIA 流媒体服务器是一个盘路的工具,不影响整个系统的稳定性;
- [x] `宿主服务器`的处理性能决定了所接入的 IPC 摄像头的数量和可点播的客户端数量;
- [ ] 第三方流媒体服务器不能在本项目中支持:material-block-helper:;

效果展示

IPC 视频监控

!!! warning "两路 IPC 监控(内部网络,不支持在线实时点播:fontawesome-regular-face-smile:)"

局域网延迟在 300ms 以内,效果非常不错。

2023-09-08T05:17:06.png

录制了一段演示视频,3个 IPC(左上:OEM,右上:海康,右下:TPLINK),一个 USB WebCam(左下:最普通了像素很低),抬手的同时,可以观察到稍微有点延迟,不过效果已经非常好了。

360P

!!! warning "点击图片在线查看 DEMO,2 个实时 360P 视频流播放"

- 编/解码 完全没压力,刚刚的;
- CPU 要求低,1核心 可以处理8路视频源;
- 同时播放几路视频,无卡顿现象;

2023-09-08T05:17:49.png

720P

!!! warning "点击图片在线查看 DEMO, 1 个实时 720P 视频流播放"

- 视频解码要求一般,720P 绰绰有余;
- `1核心` CPU 可以处理好几路视频源;
- 2Mb 互联网带宽播放没有卡顿现象;

2023-09-08T05:18:04.png

1080P

!!! warning "1 个实时 1080P 视频流播放(服务器带宽不足,就不能提供实时 DEMO 查看效果了)"

- 服务器处理要求高,1010P `编/解码耗资源`;
- 至少需要 `1核心` CPU 来负责处理 `1路` 视频源;
- 网络传输要求高,`流量大`,缓存现象严重;

2023-09-08T05:18:16.png

关于亿琪软件

!!! success "打个广告"

上海亿琪软件有限公司成立于 2016 年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。

- 2023 年,公司发布“YiFUSION |工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。

- 2022 年公司推出 “YiCLOUD |亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。

感知物联,畅快无限。

联系我们

- 网站:http://yiqisoft.cn
- 邮件:support@yiqisoft.cn
- 电话:021-68863086
- 手机:186-1666-9123

http://demo.yiqisoft.cn/dashboard/d38ca5d0-4be8-11ee-a001-f365932952a4?publicId=21dcd1a0-0c2f-11ee-ac9d-0b3447f67253
http://demo.yiqisoft.cn/dashboard/38981e50-4bf8-11ee-a001-f365932952a4?publicId=21dcd1a0-0c2f-11ee-ac9d-0b3447f67253