视频会议(原会议组件)
虚拟背景
更新时间: 2022/07/04 14:10:04
在音视频会议场景中,为了突出人像或者保护隐私,用户不想将视窗的背景呈现出来。NEMeetingKit 通过自动识别用户人像,以自定义图片替代真实背景,从而实现设置虚拟背景。替换后,频道内所有远端用户都能看到本地用户自定义的虚拟背景。
功能原理
NEMeetingKit 支持的虚拟背景采用自研的深度学习算法,在对当前视频帧做背景分割时利用前一帧的分割结果作为先验信息,同时在 video matting 中利用时序信息解决视频分割中可能出现的闪烁问题,提升分割效果,让您在使用虚拟背景的同时也能享受优质的视频通话体验。
注意事项
- 建议您在满足以下条件的场景中使用虚拟背景功能:
- 采用高清摄像设备,避免遮挡摄像头且环境光线均匀。
- 捕获的视频场景中无冗余物件,用户人像尽量保持上半身在画面内且基本无遮挡。
- 背景色单一且尽量不与用户着装颜色相同。
- 自定义背景图片支持 JPG ,JPEG 和 PNG 格式。建议自定义图片大小限制为 5M,且最多上传 5 张图片。
- SDK 会在保证背景图片内容不变形的前提下,对图片进行一定程度上的缩放和裁剪,以适配视频采集分辨率。
- 目前仅支持 GPU 为 Adreno 540 及以上或 Mali-G78 及以上的设备使用虚拟背景;暂不支持在 Texture 格式的视频或通过 Push 方法从自定义视频源获取的视频中设置虚拟背景。
配置步骤
- 调用
NESettingsService
类的enableVirtualBackground
方法,并设置 enabled 参数为 true, 开启虚拟背景功能。请先预览摄像头时或在会议内开启摄像头后开启此功能。
- 调用
setBuiltinVirtualBackgrounds
方法,并通过 path 参数传入自定义背景图片的本地绝对路径,设置自定义背景图片列表。建议最多上传 5 张图片,单张图片的大小限制为 5 M。
- 启用该方法后,您可以通过调用
getBuiltinVirtualBackgrounds
方法获取已设定的自定义背景图片列表。 - 若您需要取消虚拟背景,请调用
enableVirtualBackground
方法,设置 enabled 参数为 false,关闭虚拟背景功能。
示例代码
NESettingsService settingsService = NEMeetingKit.getInstance().getSettingsService();
// 开启虚拟背景功能。
settingsService.enableVirtualBackground(true);
// 是否支持虚拟背景
boolean value = settingsService.isVirtualBackgroundEnabled()
// 获取内置虚拟背景列表
List<NEMeetingVirtualBackground> list= settingsService.getBuiltinVirtualBackgrounds();
NESettingsService settingsService = NEMeetingKit.getInstance().getSettingsService();
// 设置虚拟背景 图片
List<NEMeetingVirtualBackground> virtualBackgrounds = new ArrayList<>();
String virtualPath = MeetingApplication.getInstance().getFilesDir().getPath()+"/virtual";
File virtualFile = new File(virtualPath);
int size = 0;
if(virtualFile.exists()){
size = virtualFile.listFiles().length;
}
for (int i=1;i<=size;i++){
String path = MeetingApplication.getInstance().getFilesDir().getPath()+"/virtual/"+i+".png";
File file = new File(path);
if(file.exists()) {
NEMeetingVirtualBackground virtualBackground = new NEMeetingVirtualBackground(path);
virtualBackgrounds.add(virtualBackground);
}
}
settingsService.setBuiltinVirtualBackgrounds(virtualBackgrounds);
此文档是否对你有帮助?
有帮助
我要吐槽