【传送带->相芯科技官网】

一、access_token

所有要用的接口都需要url拼接access_token。
我这里把获取access_token需要用到的key和secret放在了faceunity.js中。
先生成signature,再生成access_token。

// api:获取faceunity的access_tokenlet fu = require("./../common/faceunity");  let { createHash } = require("crypto");function signature(params, secret) {let keys = Object.keys(params).sort();let sign_str = "";keys.forEach((value, index) => {//构造被签名串sign_str += value + params[value];});sign_str += secret; //连接secrectreturn createHash("sha1").update(sign_str).digest("hex"); //返回被签名串的sha1值}app.get("/getFaceunityAccessToken", function (req, response) {response.writeHead(200, {   //解决跨域问题"Content-Type": "text/html",charset: "utf-8","Access-Control-Allow-Origin": "*","Access-Control-Allow-Methods": "PUT,POST,GET,DELETE,OPTIONS"});let params = {params: "test",Key: fu.key};let sign = signature(params, fu.secret);console.log("生成sign", sign);let url ="https://token.faceunity.com/api/v1/GetAccessToken?params=test&Key=" +fu.key + "&Signature=" + sign;let body = "";let access_token = "";https .get(url, res => {res .on("data", data => {body += data;}).on("end", () => {access_token = JSON.parse(body).data.access_token;console.log(access_token);response.end(JSON.stringify({'access_token':access_token}));}) .on("error", e => {console.log("error:" + e.message);});});
二、美颜接口/api/beauty

方法一:官网的node示例有一点小错误,先是按我自己的逻辑弄出来了,这里直接使用了后台项目文件夹中的图片。

let formData = {image: fs.createReadStream(  // 获取原图片文件流"../festival-back/upload/faceunity-1551862111687.jpg")
};
// access_token是之前获取的
request.post({url: `https://api.faceunity.com/api/beauty?access_token=${access_token}`,formData: formData
}, function (err, body) {if (err) {console.log("错误",err);}fs.writeFileSync(  // 写入新图片'../festival-back/upload/beauty-'+Date.now()+'.jpg',Buffer.from(JSON.parse(body.body).data.data));
});

方法二:官网方法有1处进行了修正。

async function submit(access_token, data) {return new Promise((reslove, reject) => {request.post({url: `https://api.faceunity.com/api/beauty?access_token=${access_token}`,formData: data},function optionalCallback(err, body) {if (err) {reject(err);}reslove(JSON.parse(body.body));  // 修正:原为"reslove(JSON.parse(body));",返回的body本就是json对象了,// body里面的body是个JSON字符串,也是包含了图片Buffer的属性。});});
}(async () => {try {const result = await submit(access_token, formData);fs.writeFileSync('../upload/response.jpg', Buffer.from(result.data.data));} catch (e) {console.log('Submit Error:', e);}
})()
三、贴纸接口/api/sticker

和调用美颜接口类似。

let formData = {image: fs.createReadStream(  // 获取原图片文件流"../festival-back/upload/faceunity-1551862111687.jpg"),item:'baimao_lm_fu'  //和美颜接口就差这个传参
};
// access_token是之前获取的
request.post({url: `https://api.faceunity.com/api/sticker?access_token=${access_token}`,formData: formData
}, function (err, body) {if (err) {console.log("错误",err);}fs.writeFileSync(  // 写入新图片'../festival-back/upload/sticker-'+Date.now()+'.jpg',Buffer.from(JSON.parse(body.body).data.data));
});

有话说:不知道为啥自从第1个申请的key/api过期以后,申请了第2个key/api就怎么都用不了了,只能放弃,去研究face++了,难受啊。只能说faceunity产品很好,但对个人开发者不太友好。
【20190409更新:】终于发现为什么突然不能使了,原来是在复制secret的时候多复制了一个空格,所以后来接口调用就一直报错wrong key。。。现在又可以使用了。

四、视频处理调用接口返回的TaskId怎么使用

调用接口处理视频会返回一个taskId,一开始还以为是接口返回数据有问题,后来发现文档里面写了,凡是视频处理返回的都是taskId,不是视频流,间隔很长时间去问客服,客服都是让你去问技术支持,可是针对个人开发者是没有技术咨询的服务的。然后自己觉得应该是用taskId去获取视频文件。在postman上试了一试在api的url末尾加上taskId数据,返回了server error,然后就更加觉得一定是自己文档看漏了,文档里找了一会儿就在倒数第2个api中找到了,原来人家早就写了,只是最好文档中再加个提示,或者跳转链接就好了,不然一头雾水,以为api只能给企业开发者使用。【传送带->相芯科技】

五、经接口处理过的视频如何在浏览器中预览

之前只要http://ip地址:端口号/upload/视频文件名这样的地址就能在浏览器访问视频,这次直接生成.mp4视频浏览器却一直显示加载中,不能播放,后来查到是编解码问题,处理生成的视频原本是.avi格式的被我直接在fs.writeFileSync函数中直接写了.mp4后缀,改成.avi再在浏览器中访问会直接下载这个视频,因为浏览器视频格式不支持,一般只支持Ogg、MPEG4、WebM这三种,所以需要通过视频转码转成.mp4格式。
这就需要用到一个fluent-ffmpeg包。在项目文件中安装它:npm install fluent-ffmpeg
然后链式调用它的方法:【传送带->NodeJS实现视频转码】
我这里只使用了format和save方法:

const ffmpeg = require('fluent-ffmpeg');
//在代码中插入
new ffmpeg("../festival-back/"+name+'.avi') //这里使用了原生成的avi文件路径.format('mp4').on('end',function(){console.log('视频转码成功。');}).on('error',function(err){console.log('视频转码失败:'+err.message);}).save('../festival-back/'+name+'.mp4'); //参数写生成路径

node 调用相芯科技接口相关推荐

  1. 相芯科技美妆SDK测评:妆容丰富 效果自然 支持自定义

    美妆SDK想必大家都不陌生,得益于人们对美无止境的追求,各大企业纷纷接入这一功能,让客户可以随时体验在线换妆,而不必"劳脸伤财".但因人脸检测与跟踪技术的门槛不低,目前市面上的美妆 ...

  2. 相芯科技蔡锐涛:AI虚拟形象——没有最完美,只有更完美

    在LiveVideoStackCon2019深圳音视频技术大会前夕,我们邀请到了相芯科技资深图形引擎开发经理蔡锐涛老师接受采访,从个人成长聊到智能图形技术方面的创新与应用,再到相芯科技在虚拟形象上的优 ...

  3. 3d 自动生成物体_相芯科技首秀SIGGRAPH,3D形象自动生成火了

    作为全球影响最广.规模最大的CG展示.学术研讨会,SIGGRAPH汇集了全球众多顶尖的计算机图形技术厂商以及影视行业的领军人物,分享最尖端的前沿技术.今年在美国洛杉矶会展中心,SIGGRAPH2019 ...

  4. 相芯科技品牌全面升级:创造更真实的数字世界!

    10 月 19 日,相芯科技带着全新品牌主张:"创造更真实的数字世界",并以全新视觉形象.定位和愿景正式宣布品牌全面升级! 五年蜕变,相芯科技迈入全新阶段 相芯科技自 2016 年 ...

  5. 相芯科技助力华为Mate20Pro玩转3D Live Emoji

    杭州2018年10月17日电 /美通社/ -- 北京时间10月16日晚9点,华为Mate 20系列发布会在英国伦敦召开,期间正式发布了华为Mate 20.Mate 20 Pro.Mate 20 X以及 ...

  6. 全国多少学校开设计算机专业,为何全国只有5所学校开设这一专业?相芯科技为你揭秘...

    "国内音视频人才缺口巨大." 12 月 15 日,由LiveVideoStack主办,相芯科技.七牛云.即构等多方参与的多媒体开发技术沙龙在成都圆满落幕.会上,LiveVideoS ...

  7. 如何使用相芯科技美妆SDK实现美妆(Android)

    1.美妆功能介绍 相芯SDK提供23种内置美妆妆容,如减龄,邻家女孩,欧美等多样妆容风格.支持口红.腮红. 眉毛.眼影. 眼线.睫毛.美瞳.粉底.眼影.高光等15大维度,多种搭配,轻松实现变妆. 2. ...

  8. 手机摄像头驱动_打开手机摄像头,就能实现3D全身动捕,相芯发布虚拟形象全身驱动技术...

    当提起3D全身动捕时,大家脑海中的第一反应基本上都是在好莱坞电影里,演员工作时常身穿安装有传感器的紧身衣,脸上也布满了传感器,让现实生活中不存在的虚拟角色可以活灵活现地出现在荧屏上.当然一整套动作捕捉 ...

  9. java WEB调用秒嘀科技短信验证接口(实现短信验证登录)

    java WEB调用秒嘀科技短信验证接口(实现短信验证登录) 前言 注册秒嘀云账号 登录秒嘀云官网 代码 前言 短信验证登咱就不多说了,为什么推荐用秒嘀的呢,应为他会送你10元钱,对于新手来说10元钱 ...

  10. 感芯科技MC3172移植U8g2图形库

    MC3172移植U8g2单色图形库 简介 MC3172是厦门感芯科技发布的一款单核硬件64线程MCU,此芯片开发上手难度不高,与其他MCU裸机开发相似(可以把每一个线程当作一个MCU来使用)每个线程运 ...

最新文章

  1. ubuntu16.04安装torch
  2. 深度学习100例 - 卷积神经网络(Inception V3)识别手语 | 第13天
  3. 56.ISE综合,在chipscope信号列表看不到
  4. 数据库:SQLServer中游标的用法笔记
  5. tensorflow的keras 与 原生keras几点比较
  6. python的传参是传值还是传址
  7. H3C交换机创建用户
  8. deepin安装mysql记录
  9. redis下载配置并简单测试(免安装版)
  10. Excel小技巧之:如何在表格内插入水印
  11. 『 文件操作 』HTML文件转MD文件
  12. linux skyeye,用skyeye运行uClinux内核
  13. 弘玑Cyclone完成1.5亿美元C轮融资,创行业单笔融资额最大记录
  14. 市场调研-全球与中国化妆品级抗坏血酸葡糖苷市场现状及未来发展趋势
  15. Javascript中的作用域,作用域链
  16. prometheus 监控告警安装与设置
  17. 阿里P8整理Mysql面试题答案,助你面试“脱颖而出”
  18. SQL SERVER 服务器名称的更改
  19. 大学c语言活动策划,大学校园文化班级趣味运动会活动方案
  20. 使用cdn来加速字体文件在前端的加载速度,并监听字体是否加载完成

热门文章

  1. Cento 常见错误
  2. Task 5 超大图上的节点表征学习
  3. Constraintlayout使用问题归纳
  4. 求职信高中生计算机,高中生求职信
  5. Airtest-Poco的元素操作
  6. Android 中Looper机制详解
  7. J4JLogger:提供源代码信息的Serilog包装器
  8. python函数可视化心得_最近关于数据可视化方面交流的心得感悟
  9. 计算机辅助检测软件系统,智能计算机辅助检测规划系统-东南大学学报.pdf
  10. 【STM32】STM32之霍尔检测电机归位时掉电