畅直播
  • iOS
  • Android : Java
  • macOS
  • Windows
  • Web
  • Flutter
  • 产品简介
    • 概述
    • 发布日志
    • 基本概念
    • 产品优势
    • 应用场景
    • 限制说明
    • 升级指南
  • 计费说明
  • 下载
  • 快速开始
  • 直播推流
  • 直播拉流
  • 基础功能
  • 进阶功能
  • 最佳实践
  • 常用错误码
  • 服务端 API
  • 客户端 API
  • 常见问题

低照度增强

更新时间:2022-10-28 13:44

功能简介

低照度增强,指在环境光较暗的情况下,摄像头采集到的画面亮度不满足看清通话方人脸、或无法进行人脸识别等业务需求时,对画面亮度进行增强的功能。

ZEGO 提供两种低照度增强的方式:

  • 方式 1:通过开启自适应帧率,在设定的帧率范围内动态降低采集帧率,以延长每一帧的画面曝光时间,达到增强采集到的画面亮度的效果。 例如:开发者开启并设置自适应帧率范围为 [10,25]。环境光照充足的时候,采集帧率依然是 25 帧,环境光照度较低的时候,采集帧率会在 [10,25] 之间动态调整,以延长每一帧的曝光时间增强采集画面的亮度。

  • 方式 2:通过算法对采集到的画面亮度进行增强:

    • 手动增强模式:根据接收到的参数确定是否开启算法增强。
    • 自动增强模式:根据用户所处环境的环境光照度,SDK自动决定是否开启算法增强和增强的程度。

两种处理方式可以独立使用,也可以同时使用,均兼容美颜功能。

功能优势

  • 全机型覆盖。
  • 支持多种模式,根据业务需求灵活选择。
  • 系统资源占用小。

效果展示

增强前 增强后

前提条件

在使用低照度增强功能之前,请确保:

实现流程

1 初始化和登录房间

初始化和登录房间的具体流程,请参考实现视频通话文档中的 “3.1 创建引擎”及“3.2 登录房间”。

2 设置低照度增强模式

RTC SDK 支持不同的算法低照度增强模式:

枚举值 说明
ZegoLowlightEnhancementMode.OFF 关闭低照度增强功能,采集画面亮度不变。
ZegoLowlightEnhancementMode.ON 开启低照度增强功能,采集画面亮度增强。
ZegoLowlightEnhancementMode.AUTO 自动低照度增强功能,采集画面亮度增强值随环境亮度动态调整。

以开启自动低照度增强功能为例:

engine.setLowlightEnhancement(ZegoLowlightEnhancementMode.AUTO,ZegoPublishChannel.MAIN);

3 开启摄像头自适应帧率(可选)

当环境光照度较低,且摄像头采集帧率过高时,每一帧画面的曝光时间不足,可能导致采集的视频画面偏暗,此时可以通过 enableCameraAdaptiveFPS 开启摄像头自适应帧率。SDK 会根据设置的帧率范围匹配摄像头支持的采集帧率范围,在此范围内,根据环境亮度动态调整摄像头采集帧率,提升设置的帧率过高时的画面亮度。

int minCamFPS = getIntent().getIntExtra("camMinFPS", 0);//设置最小帧率
int maxCamFPS = getIntent().getIntExtra("camMaxFPS", 0);//设置最大帧率
engine.enableCameraAdaptiveFPS(true, minCamFPS, maxCamFPS, ZegoPublishChannel.MAIN);

4 开始预览

开启预览后,可以设置不同的低照度增强模式,并实时体验效果。

ZegoCanvas previewCanvas = new ZegoCanvas(preview);
engine.startPreview(previewCanvas);

5 开始推流

当预览效果达到预期后,可以开始推流,推流画面效果将与预览效果一致。

engine.startPublishingStream("STREAM_ID");
本篇目录