相芯美颜
更新时间: 2023/08/02 06:22:40
NERTC SDK 支持接入相芯等第三方专业美颜滤镜厂商,实现美颜、美妆、滤镜、贴纸等美颜特效。在娱乐社交、在线教育等场景中,您可以快速构建具备美颜特效能力的应用,让用户在进行视频通话或直播时,呈现更良好的肌肤状态和精神面貌。
相芯美颜(Faceunity Nama SDK,下文简称 Nama SDK)的详细功能介绍请参见人脸特效。
准备工作
- 下载相芯美颜 SDK。
- 获取相芯美颜 SDK 的证书,具体请联系网易云信商务经理。
- 获取相芯美颜资源文件,具体请联系网易云信商务经理。
功能原理
-
NERTC SDK 提供了
setVideoCallback
采集数据回调的接口,将采集到的视频图像数据通过该接口回调出来。 -
Nama SDK 通过回调获取视频图像数据,进行美颜处理后,通过参数返回给 NERTC SDK。
-
NERTC SDK 将美颜后的数据进行编码和传输。
基本概念
- 纹理(Texture):纹理指的是一张二维的图片,把它像贴纸一样贴在图元上面,让图元看起来像贴纸所要表现的效果那样。
- NV21:NV21是 YUV420SP 图像编码的一种类型。根据 YUV 来定义图像的颜色,其中Y 表示明亮度,U 和 V 分别表示色调和饱和度。Android 系统的相机默认的图像格式是 NV21 。它比 RGB 模型的图像更省存储空间和带宽。
- 双输入:纹理+ YUV 双份数据输入。
基于 Demo 源码集成
您可以基于1对1 娱乐社交示例项目源码,快速集成相芯美颜。
-
将源码工程中的
beauty/beauty-faceunity
文件夹拷贝到您的项目目录下。 -
将证书文件
authpack.java
放到本地项目的beauty/beauty-faceunity/src/main/java/com/faceunity/nama
目录下(如果存在则替换)。 -
在项目对应模块的
build.gradle
中加入以下行。// allprojects配置 allprojects { repositories { ... maven { url 'https://maven.faceunity.com/repository/maven-public/' } ... } }
-
在
settings.gradle
中添加include(":beauty:beauty-faceunity")
-
在 Android Studio 中,单击 Sync Project with Gradle Files 按钮,同步工程依赖。
-
在 Application 中初始化。
FURenderer.getInstance().init(this);
-
在视频帧的回调中增加美颜处理。
NERtcEx.getInstance() .setVideoCallback( neRtcVideoFrame -> { if (isFirstInit) { isFirstInit = false; mHandler = new Handler(Looper.myLooper()); mFURendererManager.prepareRenderer(mFURendererListener); return false; } int texId = mFURendererManager.onDrawFrameSingleInput( neRtcVideoFrame.textureId, neRtcVideoFrame.width, neRtcVideoFrame.height); if (mSkipFrame-- > 0) { return false; } if (neRtcVideoFrame.format == NERtcVideoFrame.Format.TEXTURE_OES) { neRtcVideoFrame.format = NERtcVideoFrame.Format.TEXTURE_RGB; } neRtcVideoFrame.textureId = texId; return true; }, true);
-
在需要打开美颜的地方打开美颜页面。
Intent intent = new Intent(context, BeautySettingActivity.class); intent.putExtra(BeautySettingActivity.INTENT_KEY_APP_KEY, AppConfig.getAppKey()); context.startActivity(intent);
相关文档
基于 RTC SDK 集成相芯美颜的步骤请参见相芯美颜。
此文档是否对你有帮助?