边缘转发RTSP视频流
功能简介
ipc-agent为边缘RTSP视频流 接入转发 代理模块。该模块支持拉取边缘摄像头的RTSP流,并把其转发推送至云端RTSP Server。使用该模块,可以帮助用户实现在云端实时查看边缘视频流的功能。主要适用于边缘智能视觉场景中,用户需要在云端直接查看边缘视频监控场景。
使用前提:
- 边缘侧有可连接的RTSP视频源
- 云端有部署好的RTSP Server
ipc-simulator模块部署
在边缘侧部署rtsp视频流模拟器 ipc-simulator,用于边缘侧的rtsp视频源。如下图所示:
ipc-simulatro的详细配置,请参考文档设备模拟器当中的IPC模拟器章节。
ipc-agent模块部署
进入到边缘节点,找到应用部署,点击右上角齿轮,勾选部署baetyl-ipc-agent模块,如下图所示:
ipc-agent模块配置
部署完模块后,需要通过应用配置项来设置推流和拉流地址。进入已创建的节点,点击应用部署,点击baetyl-ipc-agent进入对应应用。
点击卷挂载,进入该应用的配置项,会看到配置内容如下。用户需要根据实际情况修改参数。
rule参数说明:
- name:视频流转的规则名称,用户自定义。当有多条视频流时,可建立多条规则,一条规则对应一条视频流。这个
name
在云端配置节点影子控制rtsp上传的热启动时会用到。 - enable:控制边缘推流的开关。
true
为转发上传视频,false
为停止转发上传。如果云端配置了节点影子,则是否上传rtsp流开关以节点影子为准。如果未配置节点影子,则以此处enable开关为准。 -
source addrsss(源rtsp地址):需要被转发到云端的边缘侧流地址。注意,由于ipc-agent运行在容器中,因此
source address
不要填写localhost
和127.0.0.1
,需要使用宿主机的IP地址,如果使用ipc-simulator,也可以使用服务名,示例如下- 宿主机访问地址示例: rtsp://「IP」:554/media/filename.mkv
- 服务名访问地址示例: rtsp://baetyl-ipc-simulator.baetyl-edge-system:554/media/filenanme.mkv
-
target address(目标rtsp地址):
- 此处的推流地址为用户在云端读取视频流的地址,例如在以下配置中,用户可通过rtsp://10.67.98.23:8554/node-name/camera1来获取视频流。
- 当使用BIE的RTSP Server时,云边通过tls证书进行加密(推流地址配置为rtsps),云端开放视频流则使用rstp协议,用户直接通过rtsp协议读取视频流即可。(公有云暂不提供)
-
当使用外部RTSP Server时,推流地址及鉴权方式由RTSP Server端决定。RTSP Server搭建可以参考:https://github.com/aler9/rtsp-simple-server。
- 若边缘上报rtsp使用密码鉴权,推流地址格式为示例:
rtsp://username:password@ip:port/channels
- 若边缘上报rtsp使用证书鉴权,需要在certs字段下配置映射到容器内的证书地址,并在下面
rules-target-tls
指定证书的name
。
- 若边缘上报rtsp使用密码鉴权,推流地址格式为示例:
配置文件示例:
certs: // 证书配置,可选
- name: 'test-tls'
ca: '/var/lib/baetyl/ca.pem'
key: '/var/lib/baetyl/key.pem'
cert: '/var/lib/baetyl/cert.pem'
insecureSkipVerify: true
rules:
- name: camera1 // 规则名称
enable: false // 是否开启
source:
name: source // 源地址名称
address: 'rtsp://192.168.1.1:8554/camera1' // 源rtsp地址
target:
name: target // 推送地址名称
address: 'rtsps://10.67.98.23:8554/node-name/camera1' // 目标rtsp地址 (推送地址建议使用节点名称+子设备名称)
tls: 'test-tls' // 证书名称
logger:
level: debug
encoding: console
节点影子动态控制推流
当配置项里规则为”enable=true“时,边缘会持续不断的向云端推送视频流,占用较高带宽。此时若想控制视频流的推送,可以使用节点影子控制,无需更改配置文件。
进入节点的节点影子页面,增加rtsp-${rule-name}: on/off
的KV键值对,其中${rule-name}
对应了上面配置里rules
下的name
。