美文网首页
RTC+AI视觉,如何基于Win/Mac快速开发一个实时美颜应用

RTC+AI视觉,如何基于Win/Mac快速开发一个实时美颜应用

作者: 即构开发者 | 来源:发表于2022-07-03 19:51 被阅读0次

本文将以 WINDOWS,MACOS 端为切入点,带大家了解一下在PC端 Express SDK + Effects SDK 的整个实现过程
帮助开发者在音视频场景中快速获得 AI 视觉功能 —— 美颜、滤镜、背景抠图等。

AI视觉在音视频代码中的实现逻辑

1、初始化Effects SDK

初始化Effects SDK主要是完成对象的创建和资源的设置。

C++代码实现如下:


...
// 设置资源
zego_effects_set_models(model_path_list, 2);
zego_effects_set_resources(resouce_path_list, 4);
// 创建 effects 实例
zego_effects_create(&m_handle,license);
// 初始化effects 对象
zego_effects_init_env(handle,width,height);

2、初始化Express SDK

初始化Express SDK主要完成视频帧数据格式的设置,启动自定义前处理功能以及注册回调对象。这里需要注意的是,不同平台下所用的视频帧格式有所不同。

平台 视频帧数据格式
MACOS ZEGO_VIDEO_BUFFER_TYPE_CV_PIXEL_BUFFER
WINDOWS ZEGO_VIDEO_BUFFER_TYPE_RAW_DATA

C++(MACOS)代码实现如下:

// 创建 express 实例
engine = ZegoExpressSDK::createEngine(appID,appSign,true, ZEGO_SCENARIO_GENERAL,nullptr);
// 选择  CVPixelBuffer 类型视频帧数据
ZegoCustomVideoProcessConfig config;
config.bufferType = ZEGO_VIDEO_BUFFER_TYPE_CV_PIXEL_BUFFER;
// 开启自定义前处理
engine->enableCustomVideoProcessing(true,&config);
// 设置视频前处理回调对象
engine->setCustomVideoProcessHandler(myHandler);

C++(WINDOWS)代码实现如下:

// 创建 express 实例
engine = ZegoExpressSDK::createEngine(appID,appSign,true, ZEGO_SCENARIO_GENERAL,nullptr);
// 选择  RAW_DATA 类型视频帧数据
ZegoCustomVideoProcessConfig config;
config.bufferType = ZEGO_VIDEO_BUFFER_TYPE_RAW_DATA;
// 开启自定义前处理
engine->enableCustomVideoProcessing(true,&config);
// 设置视频前处理回调对象
engine->setCustomVideoProcessHandler(myHandler);

3、Effects SDK + Express SDK 的实现逻辑

Express SDK 提供的自定义视频前处理能与 Effects SDK 完美结合起来。

自定义视频前处理功能无需开发者管理设备输入源,开发者只需在 Express SDK 提供的采集回调函数中对原始数据进行操作,再把数据传回给 Express SDK 即可,而 Effects SDK 在这个过程中负责对原始数据的处理。

C++(MACOS)代码实现如下:

void MyHandler::onCapturedUnprocessedCVPixelBuffer(void * buffer, unsigned long long referenceTimeMillisecond, ZegoPublishChannel channel) {
    ...
    //把Express SDK采集的数据传给Effects SDK进行处理
    zego_effects_process_image_buffer_rgb(m_handle,image.bits(), image.bytesPerLine() * image.height(),param);
    // 把Effects SDK处理后数据抛回给Express SDK
    engine->sendCustomVideoProcessedCVPixelBuffer(buffer,referenceTimeMillisecond,channel);
    ...
}

C++(WINDOWS)代码实现如下:

void MyHandler::onCapturedUnprocessedRawData(const unsigned char** data, unsigned int* dataLength, ZegoVideoFrameParam param, unsigned long long referenceTimeMillisecond, ZegoPublishChannel channel) {
    ...
    //把Express SDK采集的数据传给Effects SDK进行处理
    zego_effects_process_image_buffer_rgb(m_handle,image.bits(), image.bytesPerLine() * image.height(),frameParam);
    //把Effects SDK处理后数据抛回给Express SDK
    engine->sendCustomVideoProcessedRawData((const unsigned char**)data,dataLength,param,referenceTimeMillisecond);
    ...
}

4、AI视觉效果调整

Effects_SDK还提供了美颜,美型,背景分割,人脸检测,挂件,滤镜等功能,广泛应用于娱乐直播,在线教育,拍照工具等多个场景,开发者可根据需要调用相应的接口。

C++代码实现如下:

// 开启美白功能
effects.enableWhiten(handle,true);
// 设置美白强度,范围 [0, 100],默认为 50
ZegoEffectsWhitenParam param = new ZegoEffectsWhitenParam();
param.intensity = 100;
effects.setWhitenParam(handle,&param);

总结

以上就是关于在 PC 端通过使用 Express SDK 和 Effects SDK 搭建音视频+Al 的解读。

ZEGO Effects 作为一款 AI 视觉产品,提供了多项智能图像渲染和算法能力,包括智能美颜、人像检测、图像分割等,被广泛应用于娱乐直播、在线教育、拍照工具等多种场景。

这是 AI 能力与音视频的有机结合,我们也期待在将来可以实现更多音视频与 AI 的创新应用。

获取更多支持

  • 获取本文的Demo、开发文档、技术支持,访问即构文档中心
  • 近期有开发规划的开发者可上即构官网查看,恰逢即构七周年全线音视频产品1折的优惠,联系商务获取RTC产品优惠;

相关文章

  • 如何快速实现直播美颜功能 - 接入美颜SDK详解

    1 音视频SDK和直播美颜SDK-使用导读 1.1 AI视觉应用-美颜SDK 实时音视频是 ZEGO 的一款实时音...

  • 开始_2019-08-29

    介绍 openvino开发包可以帮助AI开发者快速开发模拟人类视觉的应用。基于卷积神经网络,该开发包通过Intel...

  • 搭建大众点评CAT监控平台

    CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应...

  • 快速应用开发

    快速应用开发(RAD)是瀑布模型的高速变种,通过使用基于构件的开发方法获得快速开发。 快速应用开发的基本思想:1、...

  • Cat入门

    Dianping CAT 安装说明文档 CAT基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。 C...

  • iOS GPUImage实时美颜滤镜

    转载自:实战分享:实时美颜滤镜是怎样炼成的 1.背景 前段时间由于项目需求,做了一个基于GPUImage的实时美颜...

  • CAT使用总结

    简介 CAT基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。 CAT支持的监控消息类型包括: Tr...

  • 【推荐】大众点评Java开发实时应用监控平台-CAT

    CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。 CAT作为大众点评网基础监控...

  • GPUImage美颜

    来源【如何快速的开发一个完整的iOS直播app】(美颜篇) 利用GPUImage处理直播过程中美颜的流程 采集视频...

  • MixFiles开发

    项目简介 MixFiles是一款mac os应用,用于自动化对基于oc开发的iOS项目进行项目混淆,方便快速从现有...

网友评论

      本文标题:RTC+AI视觉,如何基于Win/Mac快速开发一个实时美颜应用

      本文链接:https://www.haomeiwen.com/subject/stfjbrtx.html