iOS&Mac

DingRTC SDK为您提供基础美颜功能和第三方美颜接入功能的接口和回调。通过阅读本文,您可以了解使用基础美颜以及第三方美颜的相关流程。

基础美颜

  • 功能简介

    DingRTC SDK 在 3.2 及以上版本中提供了基础美颜功能,包含了美白和磨皮两种功能。您可以在直播、视频通话、视频会议等场景中,通过美颜功能提高使用体验。

  • 实现方法DingRTC SDK 通过 enableBeautyFace 方法设置是否启用基础美颜。

    /**
    * 设置美颜
    * @param enable 美颜开关
    * @param options 美颜参数控制
    */
    - (int)enableBeautyFace:(BOOL)enable withOption:(DingRtcBeautyFaceOptions* _Nonnull)options;

    名称

    类型

    描述

    enable

    BOOL

    YES表示启用,NO表示关闭,默认为NO。

    options

    DingRtcBeautyFaceOptions *Nonnull

    基础美颜参数。

第三方美颜

  • 功能简介

    功能简介DingRTC SDK 在 3.2 及以上版本中提供了支持第三方美颜功能,通常第三方美颜SDK接受以下两种类型的数据回调处理:

    • I420等不同格式的裸数据。

    • cvpixelbuffer的格式的数据。

  • 接入流程

    以下第三方美颜功能以接入I420cvpixelbuffer的数据为例:

    1. 初始化 RtcEngine对象。

    2. 实现一个美颜处理的类,假设为BeautyFace, 里面继承 NSObject <DingRtcVideoFrameDelegate>,并根据具体第三方美颜库实现相关方法,onCaptureVideoFrame方法中根据frame的类型进行处理,并实现美颜处理的具体代码。

    3. enableVideoFrameObserver选择回调的时机,setVideoFrameDelegate注册视频流观察者回调。

    4. 在每一帧的视频处理中,会回调到onCaptureVideoFrame进行视频流的处理,如果处理成功,会覆写原来的buffer内容,如果处理失败,buffer还是原来的内容。

    5. 做第三方算法BeautyFace的销毁工作。

第三方美颜接口调用

  • DingRTC SDK 在接入第三方美颜的时候,需要订阅采集之后的前处理数据,所以在 startPreview 之后需要调用 setVideoFrameDelegate 和enableVideoFrameObserver 接口获取采集前处理数据并处理。

     // @param enable 是否允许数据回调。
     // @param position 视频数据类型
    - (int)enableVideoFrameObserver:(BOOL)enable position:(DingRtcVideoObservePosition)position;
    // @param delegate DingRtcVideoFrameDelegate对象。
    - (int)setVideoFrameDelegate:(id<DingRtcVideoFrameDelegate> _Nullable)delegate;

    订阅成功后,将会回调 DingRtcVideoFrameDelegateonCaptureVideoFrame 参数。

    // 获得回调视频流数据并处理
    // @param frame 视频帧数据
    - (void)onCaptureVideoFrame:(DingRtcVideoFrame * _Nonnull)frame;