美颜特效涉及 AI 检测、图像处理、2D 和 3D 图形渲染、动画特效等操作,会占用一定的 CPU 和 GPU 资源。如果在直播、拍摄场景时,系统本身负载已经很高,再叠加上美颜特效,在性能较差的设备上可能出现卡顿、掉帧现象。因此我们整理了低端机性能优化实践教程,尽可能减少美颜特效 SDK 在低端机上的性能开销,确保用户有良好的使用体验。
低端机的定义
SDK 提供了getDeviceLevel
接口获取设备等级(接口说明见:Android ,iOS),等级取值为1 ~ 5, 1为最低端机,5为最高端机。我们建议将等级小于等于3的设备视为低端机。 您也可以根据自身产品数据以及自身App的性能消耗情况,自行判断当前设备的等级。
通过判断不同的设备等级,结合以下措施减少低端机的性能消耗:
措施一:使用 SDK 的 Normal 模式
从 SDK V3.9.0 开始,创建 SDK 时必须指定 EffectMode,它有两个取值: EffectMode_Normal 和 EffectMode_Pro。
EffectMode_Normal 等价于旧版本 SDK 的“高性能模式”。
EffectMode_Pro 等价于旧版本 SDK 的默认模式。
措施二:关闭 SDK 的某些高级能力
FeatureName.WHITEN_ONLY_SKIN_AREA
美白仅对皮肤生效。默认未开启。开启此功能会触发开启“皮肤分割能力”。低端机上不建议开启。
FeatureName.SEGMENTATION_SKIN
皮肤分割能力,开启后可使磨皮和美白区域更精准,减少对周围环境的影响。SDK在设备等级大于等于4时会默认开启。低端机上不建议开启。
FeatureName.SEGMENTATION_FACE_BLOCK
人脸遮挡检测能力,开启后可避免妆容画到遮挡物上。SDK在设备等级大于等于5时会默认开启。低端机上不建议开启。
FeatureName.SMART_BEAUTY
智能美颜(为男性、宝宝减淡美颜美妆效果)。默认未开启。低端机上不建议开启。
此外,“美黑”能力也会触发开启 FeatureName.SEGMENTATION_SKIN 能力。低端机上不建议使用美黑能力。
措施三:使用轻美妆代替风格整妆
轻美妆是腾讯特效 SDK 在V3.9.0版本推出的新功能,与之前的“风格整妆特效”相比,轻美妆性能更好,且能跟其他特效很好地叠加。
措施四:使用性能更好的特效素材
我们提供丰富的特效供客户选择。有些特效比较简单,在低端机上能流畅展示。但有些特效需要消耗较多的 CPU 和 GPU 资源,在低端机上不建议使用,例如 3D 特效,GAN 特效(例如变娃娃脸、变漫画脸),背景分割特效等等。
我们提供了低端机专区,供客户自行选择,详情见美颜特效 Demo。
其他优化措施
除了以上美颜特效相关的优化措施,也可以关注外部影响性能/流畅度的因素:
1、选择合适的分辨率
分辨率越高,SDK 需要处理的像素就越多。在低端机上直播或拍摄时,建议不要超过540P分辨率。
2、设置合适的日志开关
SDK 提供了 setXmagicLogLevel 接口(Android,iOS)用于设置日志等级,默认等级为 WARN 或 INFO。您可以将它进一步提升到 ERROR 级别,以减少日志输出。切记不能设置为 DEBUG 级别,否则大量的日志会影响性能。 3、检查推流帧率
检查是否设置的比较低,建议调整到24fps以上。当您的应用在没有设置美颜的时候画面也不太流畅时,需要检查一下采集模块的相机帧率,可以适当提高相机帧率从而达到画面流畅的效果。如果您使用的是 TRTC,那么可以参见 此文档 调整帧率。 4、检查美颜特效之外的模块的性能
如果在使用美颜特效之前,您的应用就已经很卡了,或者 CPU 占用率已经很高,说明 APP 性能已经出现了问题,这种情况下再使用美颜特效,只能让情况变得更差。所以建议先优化美颜特效之外的模块的性能。
本页内容是否解决了您的问题?