umvideo2-client
v2.13.0
Published
umvideo2 client
Downloads
12
Readme
联信视频 2.0
简便、易用、轻量的视频会议系统
概述
联信视频基于webrtc技术,将视频通话连接过程进行封装简化,提供客户端SDK用于快速搭建视频会议系统。服务器支持自主搭建私有云,支持国产Linux操作系统, 以及Docker快速部署。
系统结构
[系统框架图]
[SFU网络图]
[Mesh网络图]
特点
联信视频基于SFU/P2P混合模式进行视频通讯,可选“仅SFU/仅P2P/SFU优先/P2P优先”四种模式。 这些模式区别如下:
- 仅SFU:这种模式下,视频会议房间内的端对端全部使用SFU模式,即通过服务器中转分发的方式进行视频通讯。特点是建立连接稳定,但是对服务器带宽要求高,对客户端带宽和性能要求低。
- 仅P2P:这种模式下,视频会议房间内的端对端全部使用P2P模式,即点对点直连方式进行视频通话。特点是连接建立不稳定,同时支持的端不多。但是对服务器几乎无要求,对客户端性能和带宽要求高,且客户端所处网络必须支持NAT穿透。
- SFU优先:混合模式,SFU优先。如果P2P可以打通通道,则把SFU通道替换为P2P。特点是开始时对服务器要求高,如果P2P能稳定连接,则会逐渐降低服务器负载。这也是联信视频的默认模式。
- P2P优先:混合模式,P2P优先。如果P2P通道建立失败,则改为建立SFU通道代替P2P。特点是开始时对服务器性能要求低,后面可能会高。另外视频建立所需时间也比SFU优先要慢一些。
快速开始
安装客户端库
npm install umvideo2-client --save
准备页面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>联信视频-快速开始</title>
</head>
<body>
<div id="localMedia"></div>
<div id="remoteMedias"></div>
</body>
</html>
编写代码
import uv2 from 'umvideo2-client'
// [1] 设置SDK参数, 仅设置一次即可
uv2.setup({
signalServer: "open.umnet.cn", // 默认为当前网页所属地址。可以为ip或域名
listenPort: 40000, // 信令服务器端口
localMedia: localMedia, // 本地视频插入位置
remoteMedias: remoteMedias, // 远端媒体插入位置
})
// [2] 加入视频会议
let roomId = 'test_room_001'
let userName = '张三'
let connectType = 'sfufirst' // 可选: sfu, p2p, sfufirst, p2pfirst
uv2.joinRoom(roomId, userName, connectType, (ret)=>{
console.log('join room', ret.result)
// 开启语音和视频
uv2.setMediaEnable(uv2.mediaType.audio, true)
uv2.setMediaEnable(uv2.mediaType.video, true)
})
// [3] 退出视频会议
// uv2.exitRoom()
文档
https://open.umnet.cn:40000/docs
更新记录
2.6.4
- 支持npm导入
- 添加快速开始示例
2.8.0
- 支持sendCommand接口,用于发送房间指令,更改个人状态等操作
2.12.0
- 支持token认证
- 支持服务器预定房间人员列表模式
- 支持服务器人员角色权限控制