Skip to main content
SDK 2.0.0。把 Facebetter 挂在第三方 SDK 的自定义视频前处理回调里:在对方提供的 OpenGL 线程(或像素缓冲回调)上处理帧,再交回对方。 iOS · 第三方对接 共用同一套 Objective-C API;差异主要在运行时环境(OpenGL、App Sandbox、进程名绑定)。完整纹理约定见 实现美颜 · 外部纹理

共性约定

TRTC 自定义前处理常用 OpenGL 纹理;声网 / LiveKit 更常见 CVPixelBuffer。不要在同一台引擎上混用两种模式。

共用:处理纹理

共用:处理 CVPixelBuffer(NV12 示意)

像素缓冲路径用 externalContext = NO。凭证:订阅服务授权与许可。无 Bundle 的命令行工具在控制台绑定进程名

TRTC(腾讯云)

挂钩 API:setLocalVideoProcessDelegete:pixelFormat:bufferType:(官方拼写 Delegete)。TRTCVideoPixelFormat_Texture_2D + TRTCVideoBufferType_Texture
取消委托或退房后将引擎置 nil。详见腾讯云 TRTC 第三方美颜文档。

声网 Agora

挂钩 API:AgoraRtcEngineKit.setVideoFrameDelegate:(Video SDK 4.x)。macOS 采集帧同样多为 CVPixelBuffer
写回 CVPixelBuffer 的方式随声网大版本变化。Facebetter 输出与输入同格式;塞回 AgoraOutputVideoFrame 以声网文档为准。
销毁前 setVideoFrameDelegate:nil 并置 beautyEngine = nil

LiveKit

实现 Swift VideoProcessor,在 process(frame:) 中处理 CVPixelBuffer,创建相机轨时传入 processor:(macOS 同样支持)。
官方示例见 BackgroundBlurVideoProcessor(macOS 12+)。屏幕共享轨也可挂同一套 processor(API 以当前 LiveKit Swift 为准)。

排错要点

相关文档