如何将视频直播流相关服务接入物联网平台 YiCONNECT ?
目录
关注我们
关注 ThingsBoard 微信公众号
手动增加微信公众号:thingsboard_cn
访问 ThingsBoard 中文社区网站
访问网址:http://www.thingsboard.club
视频信息如何作为物联网管理的一部分,一直是我们公司比较关注的一项内容,哪些内容应该被纳入物联网管理范畴?通过这篇文章,我们一起来探讨一下。
准备工作
- 视频直播设备,比如:IPC 网络摄像机,或者可以模拟推流的ffmpeg,IPC 拍摄视频,自定义码流(比如500kbit/s),自定义分辨率(1080P),标准协议(RTMP);
- Wi-Fi 或 有线网络是比较容易的选择,有4G当然更加灵活,这个根据具体需求来确定选择哪类传输方式;
- 流媒体服务器,比如:YiMEDIA,可以实现流媒体服务支持,推流/拉流,状态查询;
- 物联网插件,具备从流媒体服务器获取IPC信息,流信息,并且与物联网服务器交互,比如:YiCONNECT;
过程剖析
IPC 端
- 首先,必须是 IPC,这样才能通过网络推流;
- 其次,具备 RTMP 推流协议,如果只是支持 RTSP,需要一个转换器把 RTSP流 转换成 RTMP流 推送出去;
- 再次,编码类型H264,分辨率看摄像头,一般都可以1080P,码流至少要达到 500kbps 以上,否则不一定能推流成功,且视频不清晰;
- 再一次,如果需要音频上传,需要用 aac 编码;
- 最后,成功推流。如果不行,建议咨询 IPC 厂家。
YiMEDIA 端
流媒体服务器,这里以我司 YiMEDIA 为基础,简单介绍一些。
- 流媒体服务器开启 RTMP 通道,一般是 TCP 1935 端口号;
- 开启推流验证,如果验证不通过,就断开推流客户端的连接,可以用随机数的方式,YiMEDIA 才有回调应用服务器确认连接安全性;
- 推流/拉流 URL 建议采用: rtmp://[IPADDRESS]/[IPC]/[auth_key],或 rtmp://[IPADDRESS]/[IPC]/[MAIN/SUB]?key=[auth_key] ;
- YiMEDIA 开启 NVR/DVR 功能,记录所有的视频信息;
YiCONNECT 端
为了将视频流数据状态和信息发送到 YiCONNECT,需要开发一个插件,获取 流信息 后,以 Thingsboard 能接收的方式发送。
- 编写 Thingsboard gateway 应用程序,以便支持 视频流 信息的转发和解析;
开启 rest.json 服务 编写 YiMEDIA 丢过来的回调请求回应信息
- 解析 [IPC] 和 [auth_key] 字段,并验证 auth_key 是否满足要求;
- YiCONNECT 端新建 Gateway 网关设备,保持验证码一致;
结果预览
YiMEDIA 状态查看
- 客户端状态
- 流状态
YiCONNECT
- 设备列表表
- 视频流列表
图像预览
可以通过 VLC 播放器播放:
- rtmp 流: rtmp://ipaddress/ON400H16DM0FZ20210308002/high,基本处于实时播放,1-3秒
- flv 格式: http://ipaddress/ON400H16DM0FZ20210308002/high.flv,准实时播放,3-5秒
- m3u8 格式:http://ipaddress/ON400H16DM0FZ20210308002/high.m3u8,延时比较大,几秒到几十秒
-
4G 摄像头抓图
-
半夜红外线开启抓图