同时推送多路视频流
功能介绍
本节介绍如何在同一房间内同时推送多路视频画面,供远端按 videoID 选择观看。
多路视频流可来自系统摄像头、stream 摄像头、canvas 摄像头、桌面摄像头 等,可通过 CRVideo_GetAllVideoInfo 获取。设备添加与管理见 视频设备管理。
注意:
须在成功进入房间后,方可推送视频流(含多路摄像头与 CRVideo_SetEnableMutiVideo)。
1. 开启推送多路
- 通过 CRVideo_GetAllVideoInfo 获取本端视频设备列表,确认要推送的摄像头已添加;不需要推送的设备可先通过 CRVideo_DisableCamera 禁用。
- 调用 CRVideo_SetEnableMutiVideo(UID,
true) 启用多摄像头推送。 - 调用 CRVideo_OpenVideo(UID) 打开本端视频,开始推送。
OpenVideo之后也可再次调用 CRVideo_SetEnableMutiVideo 更新是否启用多路。
示例:
var UID = myUID;
// 启用多摄像头推送
CRVideo_SetEnableMutiVideo(UID, true);
// 打开本端视频,向房间推送多路画面
CRVideo_OpenVideo(UID);
相关 API 请参考:
- CRVideo_SetEnableMutiVideo
- CRVideo_GetEnableMutiVideo
- CRVideo_OpenVideo
- CRVideo_GetAllVideoInfo
- 视频设备管理
- 推送视频流
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。