把美颜接进 TRTC
在 TRTC 编码之前处理每一帧。自定义前处理回调里调用 Facebetter,再把结果交回去。
直播和视频通话里,美颜要发生在编码之前。观众看到的是发出去的那一帧,本地预览也应该是同一帧处理之后的结果。
Facebetter 挂在 TRTC 的自定义视频前处理上:对方把纹理或像素缓冲交给你,你处理完再交回,由 TRTC 编码并发送。
摄像头
→ TRTC 自定义前处理
→ Facebetter 处理这一帧
→ 交回 TRTC
→ 编码、发送
两条路径,不要混用
纹理路径在对方的 OpenGL 回调线程上创建引擎,并打开外部上下文。输入一般是 GL_TEXTURE_2D。像素缓冲路径用 NV12 或 BGRA,通常不占用对方的 GL 上下文。
一台引擎只走其中一种。纹理和像素缓冲不要交替送进同一个实例。
帧类型用视频帧。输出纹理由引擎持有,不要自己删掉,会话结束再释放引擎。
TRTC 的自定义前处理多用 OpenGL 纹理。声网和 LiveKit 更常见像素缓冲,接法相同,输入不同。
参数
进房前把磨皮、美型、滤镜设好。本地预览和推流共用这组参数,观众和主播看到的强度才一致。滑杆变化只改参数,不要为预览和推流各建一套引擎。
各平台的回调线程和纹理约定不一样,以文档里的第三方对接为准。iOS、Android、Windows 都有对应章节。