虚拟背景

更新时间: 2026/01/06 15:49:38

在音视频会议场景中,为了突出人像或者保护隐私,用户不想将视窗的背景呈现出来。NEMeetingKit 通过自动识别用户人像,以自定义图片替代真实背景,从而实现设置虚拟背景。替换后,频道内所有远端用户都能看到本地用户自定义的虚拟背景。

功能原理

NEMeetingKit 支持的虚拟背景采用自研的深度学习算法,在对当前视频帧做背景分割时利用前一帧的分割结果作为先验信息,同时在 video matting 中利用时序信息解决视频分割中可能出现的闪烁问题,提升分割效果,让您在使用虚拟背景的同时也能享受优质的视频通话体验。

注意事项

  • 有关虚拟背景的使用条件,请参考《网易会议》虚拟背景
  • 建议您在满足以下条件的场景中使用虚拟背景功能:
    • 采用高清摄像设备,避免遮挡摄像头且环境光线均匀。
    • 捕获的视频场景中无冗余物件,用户人像尽量保持上半身在画面内且基本无遮挡。
    • 背景色单一且尽量不与用户着装颜色相同。
  • 自定义背景图片支持 JPG 和 PNG 格式。建议自定义图片大小限制为 5M,且最多上传 5 张图片。
  • SDK 会在保证背景图片内容不变形的前提下,对图片进行一定程度上的缩放和裁剪,以适配视频采集分辨率。
  • 目前仅支持 A13 及以上的设备使用虚拟背景;暂不支持在 Texture 格式的视频或通过 Push 方法从自定义视频源获取的视频中设置虚拟背景。
  • 虚拟背景服务使用设备本地存储,暂不支持跨设备漫游。且设置信息是按用户账号隔离的,即不同账号在同一设备上登录应用会有其对应的独立配置。

    您需要在用户登录成功后,再调用本服务的相关方法,用户未登录时调用将不会生效。

配置步骤

  1. 调用 NESettingsService 类 的 enableVirtualBackground 方法,并设置 enabled 参数为 true, 开启虚拟背景功能。

    请先预览摄像头时或在会议内开启摄像头后开启此功能。

  2. 调用 setBuiltinVirtualBackgrounds 方法,并通过 path 参数传入自定义背景图片的本地绝对路径,设置自定义背景图片列表。
    • 建议最多上传 5 张图片,单张图片的大小限制为 5 M。
    • 若自定义图片是工程项目中的图片,需要将指定图片拷贝到沙盒,并传入图片在沙盒中的具体路径。
  3. 启用该方法后,您可以通过调用 getBuiltinVirtualBackgrounds 方法获取已设定的自定义背景图片列表。
  4. 若您需要取消虚拟背景,请调用 enableVirtualBackground 方法,设置 enabled 参数为 false,关闭虚拟背景功能。

示例代码

使用虚拟背景功能:

Objective-C    NESettingsService *settingsService = [[NEMeetingKit getInstance] getSettingsService];

    // 开启虚拟背景功能。
    [settingsService enableVirtualBackground:YES];

    // 是否支持虚拟背景
    BOOL value = [settingsService isVirtualBackgroundEnabled];

    // 获取内置虚拟背景列表
    NSArray<NSString *> *list = [settingsService getBuiltinVirtualBackgroundList];

设置虚拟背景图片:

Objective-C// 设置自定义背景图片
NSString *source = @"图片路径";
NSString *source1 = @"图片路径";
NSArray *sources = @[
    source,
    source1
];
[[[NEMeetingKit getInstance] getSettingsService] setBuiltinVirtualBackgroundList:sources];

此文档是否对你有帮助?
有帮助
去反馈
  • 功能原理
  • 注意事项
  • 配置步骤
  • 示例代码