腾讯特效SDKWindows_音视频解决方案_同尘科技
集成准备
开发者环境要求
开发工具: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折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?