监控设备对接
功能介绍
SDK 支持通过邀请方式将监控设备加入房间。设备入会后作为房间成员,其他用户可订阅观看其视频,也可通过 云端录制 对画面进行录制。
当前支持的拉流协议:
| 协议 | 邀请地址示例 |
|---|---|
| RTSP | rtsp://192.168.1.163:554/live/av0 |
| RTMP | rtmp://192.168.1.2/live/livestream0 |
| ONVIF | onvif://admin:8888@192.168.1.3:8080/live |
| GB28181 | gb28181:44010200402000000123(须先完成平台注册,44010200402000000123 为通道号) |
使用介绍
1. 邀请监控设备
注意:
须在成功进入房间后,方可发起邀请。
本功能通常用于私有化部署:流媒体服务须能直接访问监控设备地址,一般要求服务器与监控设备在同一内网。
GB28181 须先完成对接注册,具体用法请咨询商务。
invitedUserID 填写监控流地址(见上表)。usrExtDat 须包含会议号及 devInfo(userID、nickName 等约定字段):
const targetUrl = "rtsp://192.168.1.163:554/live/av0";
// const targetUrl = "rtmp://192.168.1.2/live/livestream0";
// const targetUrl = "onvif://admin:8888@192.168.1.3:8080/live";
// const targetUrl = "gb28181:44010200402000000123";
const usrExtDat = JSON.stringify({
meeting: { ID: 88888888 },
devInfo: {
userID: "该设备在房间中的用户ID",
nickName: "该设备在房间中的昵称",
},
});
const inviteID = CRVideo_Invite(targetUrl, usrExtDat);
CRVideo_InviteSuccess.callback = function (inviteID, cookie) {
// 邀请发送成功,等待接受/拒绝或超时
};
CRVideo_InviteFail.callback = function (inviteID, sdkErr, cookie) {
// 邀请发送失败
};
相关 API 请参考:
2. 邀请被接受/拒绝
CRVideo_NotifyInviteAccepted.callback = function (inviteID, userExtDat) {
// 邀请被接受,等待设备进入房间
};
CRVideo_NotifyInviteRejected.callback = function (inviteID, reason, userExtDat) {
// 邀请被拒绝
};
相关 API 请参考:
3. 设备进入房间
设备入会后作为普通成员出现在房间内:
CRVideo_UserEnterMeeting.callback = function (userID) {
// userID 为邀请时 devInfo.userID 中指定的值
// 可订阅观看视频,不需要时可请出房间
};
4. 观看监控画面
设备入会并推送视频后,使用视频 UI 组件订阅显示,参见 订阅并显示视频。setVideo 的 UID 使用邀请时 devInfo.userID 指定的用户 ID。
var videoUI = CRVideo_CreatVideoObj();
document.getElementById("videoContainer").appendChild(videoUI.handler());
videoUI.setVideo(deviceUserID);
5. 请出监控设备
不需要继续观看时,具备权限的用户可调用 CRVideo_Kickout 将设备请出房间,用法见 进入/离开房间 中「请出房间」一节。
相关 API 请参考: