云信美颜
更新时间: 2024/09/18 16:26:13
NERTC SDK 提供云信自研的基础美颜和高级美颜功能,帮助用户在音视频通话或互动直播场景中,对人脸进行美肤、美型等美颜调整,或通过画面滤镜改变视频的色调与氛围。
自 V4.6.20 起,云信美颜功能支持插件化集成,请在集成时引入美颜库 NERtcBeauty.framework
和 NERtcFaceDetect.framework
,具体集成方式请参考集成 SDK。
前提条件
- 请在官网首页通过在线消息、微信或电话联系云信商务经理,获取对应的美颜资源或模型。
- 基础美颜可以免费使用。高级美颜需要开通授权才能正式使用,未开通的高级美颜时,只能在调用高级美颜时体验2分钟高级美颜效果。请在云信控制台开通高级美颜,具体请参见开通高级美颜。
注意事项
- 调用
enableLocalVideo
开启本地视频采集时,请设置NERtcVideoStreamType
为kNERTCVideoStreamMain
,否则美颜效果不会生效。 - 不同架构的 Mac 设备,云信美颜的支持情况如下:
- X86_64 架构的 M 芯片的 Mac 设备暂不支持云信高级美颜功能。
- X86_64 架构的 Intel 芯片的 Mac 设备支持云信高级美颜功能。
- ARM 64 架构的 M 芯片的 Mac 设备,V5.3.2 及之后版本支持云信高级美颜功能。
基础美颜
云信基础美颜可免费使用。
云信基础美颜支持美白、磨皮、红润和锐化 4 种效果,程度可调节,具体参数如下表所示。
分类 | 项 | 枚举值 | 描述 |
---|---|---|---|
美肤 | 美白 | kNERtcBeautyWhiten | 强度范围 0~1,默认值为 0,推荐值为 0.80 |
磨皮 | kNERtcBeautySmooth | 强度范围 0~1,默认值为 0,推荐值为 0.65 | |
红润 | kNERtcBeautyFaceRuddy | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
锐化 | kNERtcBeautyFaceSharpen | 强度范围 0~1,默认值为 0,推荐值为 0.10 |
基础美颜的实现方法和高级美颜一样,具体步骤请参见高级美颜中的实现方法。
高级美颜
云信高级美颜提供美白、磨皮、瘦脸、大眼等多种美肤、美型效果。
开通高级美颜
-
登录网易云信控制台。
-
在首页单击指定应用名称。
-
在产品总览区域,单击音视频通话 2.0 产品选项卡中的功能配置。
-
单击高级功能页签,单击 高级美颜 的开关按钮,开启高级美颜。
-
单击确定。
实现方法
NERTC SDK 基础美颜和高级美颜的实现方法如下:
NERTC macOS SDK 在美颜功能中,和 iOS SDK 使用同一套接口。
-
启用美颜模块。
在开启视频之前,调用
startBeauty
开启美颜功能模块。开启美颜功能之后才能使用全局美颜、滤镜等美颜效果。若您使用的是 V4.6.20 之前版本的 NERTC SDK,请在完成美颜模块的初始化后,调用
addTempleteWithPath
加载美颜资源。参数说明如下表所示。
参数说明path
设置为美颜资源 beauty 文件夹的绝对路径。例如: /NEBeauty/beauty_prj/data/beauty/nebeauty/beauty/
。name
设置为美颜资源或模型文件的名称。例如: template.json
。注意引入存放美颜资源的
beauty
文件夹时,必须以 folder reference 的方式进行引用。 -
调整美颜效果。
您可以通过
setBeautyEffectWithValue
手动设置各种美颜效果,并调整对应的效果强度,具体参数请参见高级美颜枚举值。参数说明type
用于指定美颜效果。目前支持美白、磨皮等美颜效果。 level
用于指定美颜强度。取值范围为 [0,1],各种美颜效果的默认值不同。取值越大,美颜强度越大,请根据业务需要自定义设置美颜强度。 美白、磨皮等美颜效果可以互相叠加,也可以和滤镜效果互相叠加,但是不能同时使用多款滤镜。
-
(可选)暂停和恢复美颜功能。
美颜功能启用后,您可以通过
isOpenBeauty
暂停和恢复美颜功能,参数说明如下:- NO:暂停美颜功能。暂停后,所有美颜和滤镜效果都会暂时取消,直至重新启用美颜效果。
- YES:恢复美颜功能。
-
结束美颜模块。
无需使用美颜效果时,需要调用
stopBeauty
结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。
高级美颜枚举值
高级美颜目前有 28 种效果,程度可调节,且包含了基础美颜的 4 种效果。
分类 |
项 |
枚举值 | 描述 |
---|---|---|---|
美肤 | 美白 | kNERtcBeautyWhiten | 强度范围 0~1,默认值为 0,推荐值为 0.80 |
磨皮 | kNERtcBeautySmooth | 强度范围 0~1,默认值为 0,推荐值为 0.65 | |
红润 | kNERtcBeautyFaceRuddy | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
锐化 | kNERtcBeautyFaceSharpen | 强度范围 0~1,默认值为 0,推荐值为 0.10 | |
脸型 | 瘦脸 | kNERtcBeautyThinFace | 强度范围 0~1,默认值为 0,推荐值为 0.35 |
V 脸 | kNERtcBeautyVFace | 强度范围 0~1,默认值为 0,推荐值为 0.00 | |
窄脸 | kNERtcBeautyNarrowFace | 强度范围 0~1,默认值为 0,推荐值为 0.00 | |
小脸 | kNERtcBeautySmallFace | 强度范围 0~1,默认值为 0,推荐值为 0.10 | |
面部 | 瘦颧骨 | kNERtcBeautyCheekBone | 强度范围 0~1,默认值为 0,推荐值为 0.30 |
瘦下颌 | kNERtcBeautyUnderJaw | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
瘦下巴 | kNERtcBeautyJaw | 强度范围 0~1,默认值为 0,推荐值为 0.40 | |
人中调整 | kNERtcBeautyPhiltrum | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
袪抬头纹 | kNERtcBeautyForeheadWrinkles | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
袪法令纹 | kNERtcBeautySmileLines | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
短脸 | kNERtcBeautyShortFace | 强度范围 0~1,默认值为 0,推荐值为 0.10 | |
眼睛 | 大眼 | kNERtcBeautyBigEye | 强度范围 0~1,默认值为 0,推荐值为 0.30 |
圆眼 | kNERtcBeautyRoundEye | 强度范围 0~1,默认值为 0,推荐值为 0.80 | |
亮眼 | kNERtcBeautyLightEye | 强度范围 0~1,默认值为 0,推荐值为 0.60 | |
开眼角 | kNERtcBeautyEyeCorner | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
眼距调整 | kNERtcBeautyEyeDis | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
眼角调整 | kNERtcBeautyEyeAngle | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
袪黑眼圈 | kNERtcBeautyDarkCircles | 强度范围 0~1,默认值为 0,推荐值为 0.30 | |
鼻子 | 小鼻 | kNERtcBeautySmallNose | 强度范围 0~1,默认值为 0,推荐值为 0.40 |
鼻长调整 | kNERtcBeautyLongNose | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
嘴巴 | 美牙 | kNERtcBeautyWhiteTeeth | 强度范围 0~1,默认值为 0,推荐值为 0.30 |
嘴角调整 | kNERtcBeautyMouthAngle | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
嘴型调整 | kNERtcBeautyMouth | 强度范围 0~1,默认值为 0.50,推荐值为 0.50 | |
嘴巴宽度 | kNERtcBeautyMouthWider | 强度范围 0~1,默认值为 0.50,推荐值为 0.50(不调整宽度) |
滤镜
云信美颜支持通过美颜资源或模型打造多种个性化的滤镜。
-
请在官网首页通过在线消息、微信或电话联系云信商务经理,获取对应的美颜资源或模型。
-
启用美颜模块。 在开启视频之前,调用
startBeauty
开启美颜功能模块。开启美颜功能之后才能使用全局美颜、滤镜等美颜效果。若您使用的是 V4.6.20 之前版本的 NERTC SDK,请在完成美颜模块的初始化后,调用
addTempleteWithPath
加载美颜资源。 -
调用
addBeautyFilterWithPath
添加滤镜效果。滤镜效果可以和美颜等效果互相叠加,但是不支持叠加多个滤镜。
需要更换滤镜时,重复调用此接口使用新的滤镜资源即可。
参数 说明 path
指定滤镜模型所在路径。 name
指定滤镜资源或模型文件的名称。例如: template.json
。filterStrength
指定滤镜强度,取值范围为 [0,1],默认为 0.5。取值越大,滤镜越明显,请根据业务需要自定义设置滤镜强度 -
不需要使用滤镜效果时,调用
removeBeautyFilter
移除滤镜。 -
结束美颜模块。
无需使用美颜效果时,需要调用
stopBeauty
结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。
示例代码
云信美颜 Demo 的示例项目源码请参见美颜的示例项目。
//开启美颜模块
[[NERtcBeauty shareInstance] startBeauty];
//添加资源模板
// 存放美颜资源的beauty文件夹必须以folder reference的方式进行引用
// path参数的值需传入beauty文件夹中template.json文件的所在路径以及文件名
NSString *templatePath = @"templatePath";
[[NERtcBeauty shareInstance] addTempleteWithPath: templatePath andName: @"template.json"];
//打开美颜功能
[NERtcBeauty shareInstance].isOpenBeauty = YES;
//设置美颜参数
NERtcBeautyEffectType effectType;
float value = 0.5;
[[NERtcBeauty shareInstance] setBeautyEffectWithValue:value atType:effectType];
//添加滤镜
NSString *filterPath = @"filterPath";
[[NERtcBeauty shareInstance] addBeautyFilterWithPath:filterPath andName:@"template.json"];
//移除滤镜
[[NERtcBeauty shareInstance] removeBeautyFilter];
//关闭美颜功能
[NERtcBeauty shareInstance].isOpenBeauty = NO;
//关闭美颜模块,释放资源
[[NERtcBeauty shareInstance] stopBeauty];