音视频通话

同时推送多路视频流

功能介绍

本节介绍如何在同一房间内同时推送多路视频画面,供远端按 videoID 选择观看。

多路视频流可来自系统摄像头、stream 摄像头、canvas 摄像头、桌面摄像头 等,可通过 CRVideo_GetAllVideoInfo 获取。设备添加与管理见 视频设备管理

注意:

须在成功进入房间后,方可推送视频流(含多路摄像头与 CRVideo_SetEnableMutiVideo)。

1. 开启推送多路

  1. 通过 CRVideo_GetAllVideoInfo 获取本端视频设备列表,确认要推送的摄像头已添加;不需要推送的设备可先通过 CRVideo_DisableCamera 禁用。
  2. 调用 CRVideo_SetEnableMutiVideo(UID, true) 启用多摄像头推送。
  3. 调用 CRVideo_OpenVideo(UID) 打开本端视频,开始推送。OpenVideo 之后也可再次调用 CRVideo_SetEnableMutiVideo 更新是否启用多路。

示例:

var UID = myUID;

// 启用多摄像头推送
CRVideo_SetEnableMutiVideo(UID, true);

// 打开本端视频,向房间推送多路画面
CRVideo_OpenVideo(UID);

相关 API 请参考:

2. 关闭推送多路

CRVideo_OpenVideo 前或后,均可调用 CRVideo_SetEnableMutiVideo(UID, false) 关闭多路推送。若视频已为开启状态(已调用过 OpenVideo),关闭多路后将只保留默认摄像头继续向房间推送视频流,其余已开启的多路摄像头将停止推送。

示例:

var UID = myUID;
CRVideo_SetEnableMutiVideo(UID, false);

相关 API 请参考:

3. 限制与注意

  • 可推送的视频流数量、分辨率等限制与账号授权及服务端策略有关。
  • 同时推送多路视频流会增加编码与带宽开销,建议按需开启并合理设置分辨率与帧率(参见 视频推流质量配置)。
  • 远端观看指定 videoID 时,需为对应成员创建视频 UI 组件,并调用 setVideo(UID, camID) 订阅,参见 API 中 CRVideo_VideoObj.setVideo