← 全部文章

集成

把美颜接进 TRTC

在 TRTC 编码之前处理每一帧。自定义前处理回调里调用 Facebetter,再把结果交回去。

直播和视频通话里,美颜要发生在编码之前。观众看到的是发出去的那一帧,本地预览也应该是同一帧处理之后的结果。

Facebetter 挂在 TRTC 的自定义视频前处理上:对方把纹理或像素缓冲交给你,你处理完再交回,由 TRTC 编码并发送。

摄像头
  → TRTC 自定义前处理
  → Facebetter 处理这一帧
  → 交回 TRTC
  → 编码、发送

两条路径,不要混用

纹理路径在对方的 OpenGL 回调线程上创建引擎,并打开外部上下文。输入一般是 GL_TEXTURE_2D。像素缓冲路径用 NV12 或 BGRA,通常不占用对方的 GL 上下文。

一台引擎只走其中一种。纹理和像素缓冲不要交替送进同一个实例。

帧类型用视频帧。输出纹理由引擎持有,不要自己删掉,会话结束再释放引擎。

TRTC 的自定义前处理多用 OpenGL 纹理。声网和 LiveKit 更常见像素缓冲,接法相同,输入不同。

参数

进房前把磨皮、美型、滤镜设好。本地预览和推流共用这组参数,观众和主播看到的强度才一致。滑杆变化只改参数,不要为预览和推流各建一套引擎。

各平台的回调线程和纹理约定不一样,以文档里的第三方对接为准。iOS、Android、Windows 都有对应章节。