腾讯特效SDKWindows_音视频解决方案_同尘科技

腾讯特效SDK 2年前 (2023-07-27) 浏览 67

集成准备

开发者环境要求

开发工具:VS2019(建议)运行环境依赖:QT5.15.2 + QT VS 插件

配置开发者环境

1. 安装 QT 插件。QT 插件安装成功后界面如下:
2. 配置 QT 插件版本,选择对应的 QT 版本。
3. 配置工程依赖的 QT 组件。
4. 添加头文件和 Xmagic 的 dll 库。


接口概览

Windows 端 SDK 的集成涉及到的接口如下:

接口名 描述功能 代码示例
setTELicense 鉴权接口 示例
createXmagic Xmagic 创建接口 示例
destroyXmagic Xmagic 销毁接口 示例
updateProperty 设置美颜参数(如美颜、动效、化妆等) 示例
process 处理美颜接口,返回对应的美颜处理数据(如像素、纹理)
setSegmentBg 设置自定义人像分割
setRenderSize 重置输入数据大小
onPasue 暂停美颜
onResume 开始美颜

接口使用说明

鉴权接口

XMAGIC_API void setTELicense(const char* url, const char* key, int (*TELicenseCallback)(int, const char*));

参数含义:

参数 含义
url 对应的鉴权证书链接(在后台获取)
key 对应的鉴权证书 key(在后台获取)
TELicenseCallback 鉴权成功或者失败的回调

鉴权回调 code 的含义:

错误码 说明
0 成功。Success
-1 输入参数无效,例如 URL 或 KEY 为空
-3 下载环节失败,请检查网络设置
-4 从本地读取的 TE 授权信息为空,可能是 IO 失败引起
-5 读取 VCUBE TEMP License文件内容为空,可能是 IO 失败引起
-6 v_cube.license 文件 JSON 字段不对。请联系腾讯云团队处理
-7 签名校验失败。请联系腾讯云团队处理
-8 解密失败。请联系腾讯云团队处理
-9 TELicense 字段里的 JSON 字段不对。请联系腾讯云团队处理
-10 从网络解析的TE授权信息为空。请联系腾讯云团队处理
-11 把 TE 授权信息写到本地文件时失败,可能是 IO 失败引起
-12 下载失败,解析本地 asset 页失败
-13 鉴权失败
其他 请联系腾讯云团队处理

创建 Xmagic 接口

XMAGIC_API IXmagic* createXmagic(std::string& resDir, int width, int height);

参数含义:

参数 含义
resDir 对应的资源文件(SDK 依赖的资源路径)
width 处理数据宽
height 处理数据高

销毁 Xmagic 接口

XMAGIC_API void destroyXmagic(IXmagic** xmagic);

设置美颜参数

virtual void updateProperty(XmagicProperty* property) = 0;

参数含义:

参数 说明
category 美颜类型,包括以下几种:美颜:BEAUTY = 0美体:BODY_BEAUTY滤镜:LUT动效:MOTION人像分割:SEGMENTATION化妆:MAKEUP
resPath 对应设置资源的地址(如动效、化妆、人像分割等)
effKey 美颜的 key
effValue 美颜的值
isAuth 默认 true

处理美颜(像素)

virtual void process(YTImagePixelData* srcImage, YTImagePixelData* dstImage) = 0;

参数说明:

参数 说明
srcImage 输入的美颜数据
dstImage 输出的美颜数据

YTImagePixelData 结构说明:

struct YTImagePixelData {        /// 字段含义:像素格式        PixelFormat pixelFormat;
/// 字段含义 uint8_t* data;
/// 字段含义:数据的长度,单位是字节 int32_t length;
/// 字段含义:宽度 int32_t width;
/// 字段含义:高度 int32_t height;
YTImagePixelData() : pixelFormat(PixelFormat::PixelFormatRGBA32), data(nullptr), length(0), width(0), height(0) {} };

处理美颜纹理,返回对应的处理纹理

virtual int process(int textureId, int width, int height) = 0;

参数说明:

参数 说明
textureId 输入的纹理 ID
width 纹理宽度
height 纹理高度

设置自定义人像分割

virtual void setSegmentBg(std::string &segmentBgName ,int segmentBgType ,int timeOffset) = 0;

参数说明

参数 说明
segmentBgName 自定义人像分割路径
segmentBgType 设置背影类型(0为图片,1为视频)
timeOffset 如果为视频,设置视频播放时长

重置输入大小

virtual void setRenderSize(int width, int height) = 0;

参数说明:

参数 说明
width 重置后的宽度
height 重置后的高度

暂停美颜

virtual void onPasue() = 0;

开始美颜

virtual void onResume() = 0;

代码示例

说明以下仅为部分示例代码。

鉴权接口

//鉴权接口    auto respCallback = [](        int ret, const char* data) -> int {            int retCode = ret;            const char* msg = data;            return 0;    };
setTELicense("url", "key", respCallback);

创建 Xmaigc

//创建Xmaigc    std::string exeFilePath = "资源位置";    IXmagic* xmagic = createXmagic(exeDirectory, 720, 1280);

销毁 Xmaigc

//销毁if (xmagic) {    destroyXmagic(&xmagic);}

设置属性和输出

//设置属性和输出    YTImagePixelData src,dst;    src.width = 720;    src.height = 1280;    src.length = 4 * 720 * 1280;    src.pixelFormat = PixelFormat::PixelFormatRGBA32;    //uint8_t* rgbaBuffer = (uint8_t*)malloc(src.length);    //int w = 0, h = 0, comp = 0;    uint8_t* imageData;    int w = 0, h = 0, comp = 0;    stbi_set_flip_vertically_on_load(false);  // SDK要求输入的图是倒置的,否则有问题    imageData = stbi_load(path.c_str(), &w, &h, &comp, STBI_rgb_alpha);    src.data = imageData;
dst.width = 720; dst.height = 1280; dst.length = 4 * 720 * 1280; dst.pixelFormat = PixelFormat::PixelFormatRGBA32; uint8_t* rgbaBuffer = (uint8_t*)malloc(dst.length);//这个要释放 dst.data = rgbaBuffer;
std::string bgPath = exeDirectory + "bg.jpg"; xmagic->setSegmentBg(bgPath, 0, 0);
XmagicProperty property; property.category = Category::SEGMENTATION; property.resPath = exeDirectory + "segmentMotionRes.bundle/video_empty_segmentation/template.json"; xmagic->updateProperty(&property);

for(int i =0; i process(&src, &dst); }



对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?