分享｜ThingsBoard 扩展视频接入和实时点播/直播功能
目录 关注我们 关注 ThingsBoard 微信公众号 访问 ThingsBoard 中文社区网站 ThingsBoard 扩展视频接入和实时点播/直播功能 社区经常问到的问题：TB 怎么接视频？ 我们要实现的目标（需求分析） 技术实现原理（解决方案） 架构设计 简单架构设计逻辑 复杂产品化框图 网络摄像头（IPC） USB 摄像头（WebCam） 流媒体服务器 YiMEDIA 效果展示 IPC 视频监控 360P 720P 1080P 关于亿琪软件 关注我们 关注 ThingsBoard 微信公众号 手动增加微信公众号：thingsboard_cn 访问 ThingsBoard 中文社区网站 访问网址：http://www.thingsboard.club 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 "架构" 如上图所示，需要一系列的组建来完成这个架构设计，我司经过多年的经验和精密的设计，完成了高效的框架，以便满足在边缘端实现视频流处理。 复杂产品化框图 !!! success "产品级" 要想达到产品级的要求，需要更多逻辑来配合上述简单设计，如果需要产品资料可与 [文末](#_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 以内，效果非常不错。 录制了一段演示视频，3个 IPC（左上：OEM，右上：海康，右下：TPLINK），一个 USB WebCam（左下：最普通了像素很低），抬手的同时，可以观察到稍微有点延迟，不过效果已经非常好了。 360P !!! warning "点击图片在线查看 DEMO，2 个实时 360P 视频流播放" - 编/解码 完全没压力，刚刚的； - CPU 要求低，1核心 可以处理8路视频源； - 同时播放几路视频，无卡顿现象； 720P !!! warning "点击图片在线查看 DEMO， 1 个实时 720P 视频流播放" - 视频解码要求一般，720P 绰绰有余； - `1核心` CPU 可以处理好几路视频源； - 2Mb 互联网带宽播放没有卡顿现象； 1080P !!! warning "1 个实时 1080P 视频流播放（服务器带宽不足，就不能提供实时 DEMO 查看效果了）" - 服务器处理要求高，1010P `编/解码耗资源`； - 至少需要 `1核心` CPU 来负责处理 `1路` 视频源； - 网络传输要求高，`流量大`，缓存现象严重； 关于亿琪软件 !!! 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