功能简介

我们在视频通话、直播等场景中,为用户呈现出良好的肌肤状态,打造独特自然的美颜效果。我们需要使用到美颜功能,通过调整美白、磨皮、锐化以及红润的程度,轻松实现最佳的视频效果。

那么我们如何使用 ZEGO SDK 实现这样的效果呢?

支持美颜功能的浏览器如下表:

浏览器 兼容版本
Chrome 65 及以上
Firefox 70 及以上
Safari 12 ~14 或 15.2 及以上
Edge 80 及以上
移动端浏览器 不支持
微信内嵌网页 不支持

示例源码下载

请参考 下载示例源码 获取源码。

相关源码请查看 “src/Examples/Others/EffectsBeauty” 目录下的文件。

前提条件

在实现美颜功能之前,请确保:

使用步骤

  1. createStream 获取到媒体流后,通过 ZegoExpressEngine 实例调用 setEffectsBeauty 接口开启基础美颜功能,并可以根据需要通过 ZegoEffectsBeautyParam 的 4 个参数设置美颜效果。
  • smoothIntensity:磨皮,在保留脸部细节的基础上进行磨皮,比如脸上的痣会保留。
  • whitenIntensity:美白,对画面整体调高亮度来美白脸部。
  • rosyIntensity:红润,对画面整体进行暖色处理。
  • sharpenIntensity:锐化,对画面整体进行锐化处理,当画面有些模糊时可以稍微调大锐化使轮廓清晰。

以上四个参数的取值范围都为 0 ~ 100,取值越大美颜程度越高,默认值为 50。

  • 如果在推流前开启美颜,需要等待美颜开启完成后再调用 startPublishingStream 接口推流。
  • 美颜效果与对应的 MediaStream 绑定,当调用 useVideoDevicereplaceTrack 接口时不会改变 MediaStream 的美颜效果。
  • 美颜处理占用资源并消耗性能,当不需要使用美颜时请及时调用 zg.setEffectsBeauty(localStream,false) 关闭。
  • 当调用 destroyStream 销毁流的同时 SDK 会关闭美颜效果,其他情况 SDK 不会自动关闭美颜,需要自行调用 zg.setEffectsBeauty(localStream,false) 关闭。
// 创建流,zg 为 ZegoExpressEngine 实例对象。
const localStream = await zg.createStream();
const enable = true;
// 开启美颜
// setEffectsBeauty 是 Promise 异步方法,异步函数执行完美颜才完成开启。
await zg.setEffectsBeauty(
localStream,
enable,
{
sharpenIntensity: 50,
whitenIntensity: 50,
rosyIntensity: 50,
smoothIntensity: 50
}
) // 开始推流
// 如果是推流前开启美颜,需要等待美颜开启完成才能进行推流。
zg.startPublishingStream("stream1", localStream); // 关闭美颜
await zg.setEffectsBeauty(localStream, false);

获取Demo

获取本文的Demo、开发文档、技术支持。

获取SDK的商务活动、热门产品。

注册即构ZEGO开发者帐号,快速开始。

Web视频通话时怎么美颜?教你3步轻松搞定!的更多相关文章

  1. java web每天定时执行任务(四步轻松搞定)

    第一步: package com.eh.util; import java.util.Calendar; import java.util.Date; import java.util.Timer; ...

  2. 手把手教你使用Python轻松搞定发邮件

    前言 现在生活节奏加快,人们之间交流方式也有了天差地别,为了更加便捷的交流沟通,电子邮件产生了,众所周知,电子邮件其实就是客户端和服务器端发送接受数据一样,他有一个发信和一个收信的功能,电子邮件的通信 ...

  3. 2018.11.7 关于将Web项目部署到阿里云服务器-5个步骤搞定

    将Eclipse导出的War包部署到阿里云服务器上,提供给移动端实时的访问 1. 先登录阿里云网站注册账号,选择服务器类型(我用的是 云服务器ECS), 如果你还是在读大学生可享受优惠价,最低好像是9 ...

  4. 推荐一款好用的国产web报表软件,轻松搞定复杂报表

    随着经济全球化程度的逐步加深以及全球市场的加速整合以便最大程度地对企业资源进行整合,从而达到降低成本和提高效率的目的.Web报表由于借助于web平台,即运用了B/S模式,即"浏览器/服务器& ...

  5. CAD动态输入框不见了怎么办?教你三个调出方法,轻松搞定!

    CAD动态输入是除了命令行以外又一种友好的人机交互方式,在CAD设计过程中,启用CAD动态输入功能,可以直接在光标附近显示信息.输入值等.可当CAD动态输入框不见了的时候,该怎么办呢?本文小编以浩辰C ...

  6. 手把手教你学Numpy,搞定数据处理——收官篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Numpy专题第6篇文章,我们一起来看看Numpy库当中剩余的部分. 数组的持久化 在我们做机器学习模型的研究或者是学习的时候,在完成 ...

  7. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!

    本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...

  8. Golang Web开发时前端出现谜之空白换行的坑

    在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分. 分析: 查看出现问题页面的网页源代码,复制空白换行部 ...

  9. 引用web service时,出现无法识别的配置节点applicationSettings

    ApplicationSetting 节点的内容: <applicationSettings> <MyWeb.Properties.Settings> <setting ...

  10. PHP为fopen,file_get_contents等函数请求web地址时增加Http头的方法

    我们在使用fsockopen时可以方便的自定义自己请求的http头内容来访问某些对客户端请求头有特殊限制的网站,但是使用fopen,file_get_contents等函数请求web地址时怎么来灵活定 ...

随机推荐

  1. lovelymem梭哈solar内存取证---Alex4nd3r

    内存取证1 请找到rdp连接的跳板地址 flag{192.168.60.220} 内存取证2 请找到攻击者下载黑客工具的IP地址 控制台信息 flag{155.94.204.67} 内存取证3 攻击者 ...

  2. 关于dpnet项目

    关于dpnet项目 dpnet是我开源的一个轻量异步框架,主要用于利用多核优势执行异步任务,处理异步IO. 起初并没有独立的dpnet项目,所有功能集成在另一个项目dplua中. 提到异步,实现方案必 ...

  3. 5 MyBatis动态sql中foreach标签的使用

    1 MyBatis动态SQL之if 语句 2 MyBatis动态sql之where标签|转 3 MyBatis动态SQL之set标签|转 4 MyBatis动态SQL之trim元素|转 5 MyBat ...

  4. IDEA 调试Java代码的两个技巧

      本文介绍两个使用IDEA 调试Java代码的两个技巧: 修改变量值 使用RuntimeException终止代码执行 修改变量值   在Java代码调试过程中,我们可以修改变量值,使其达到走指定分 ...

  5. kali系统在hyper-v上的配置

    安装 镜像下载地址 下载: 将压缩包解压,后找到 .bat 文件,以管理员身份运行. 之后便可以在 \(hyper-v\) 管理器中看到其虚拟机. 汉化处理: 在最上面找到终端,点击打开. 1.打开终 ...

  6. 给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)(上)

    1 引言 在上一篇文章<解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)>中,我们通过设置域内CDN的方式解决Vditor加载Markdown网页很慢的问 ...

  7. PVE折腾笔记 (2) 挂载之前在QNAP里使用的硬盘

    前言 在上一篇文章中,我们已经完成了 PVE 系统的安装 接下来做的就是在 PVE 里读取之前 QNAP 使用的硬盘里的数据 去除 RAID 标记(可选) 我没有启用 QNAP 的 RAID 功能,是 ...

  8. Java团队Cursor最佳实践:3分钟构建「零泄漏」AI开发环境

    最近用了段时间的 cursor,  发现卷程序员的还是程序员自己,  开发效率确实飞起了. 没办法, 开源卷自己.AI还是第一个卷自己, 但对于我们个人来说, 只能拥抱变化. 本文总结了下最近用到的基 ...

  9. 2023 syzx 春季训练 1

    得找个时间把 zr 题补补.. A 考虑 \(f_{i}\) 只能拆为 \(f_{i-1}+f_{i-2}\),考虑拆 \(f_{i-1}=f_{i-2}+f_{i-3}\) 时,这条 \(f_{i- ...

  10. java--Hibernate查询、连接池、二级缓存

    hibernate查询 1) Get/load主键查询 2) 对象导航查询 3) HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言. 4) ...