我毕设选了个视频网站的项目,使用了腾讯云点播的服务,直接对着腾讯云点播的文档,很容易就完成了上传视频的操作,但问题是我想上传之后再进行转码的操作(转成M3U8的格式),翻阅了云点播的文档,这里都有相关的API示例 ,在线调试之后发现没什么问题,但是我复制到我自己的项目的时候,就出现问题了 不知道是不是版本的问题(但我项目的版本和API示例提示的版本也是一致的)。总之就是一直出错,最后把代码改写成如下形式就OK了
/**
* 视频转码
* @param fileId 上传到腾讯云点播的文件id,视频上传完成之后会返回
*/
const transcodingVideo = async (fileId) => {
// 坑1:官网的API示例传入的对象是 credential: { secretId: "SecretId", secretKey: "SecretKey", } 的形式,报错了改成这样就行了
const client = new VodClient({
// 这两个是秘钥,需要自行去控制台获取
secretId: 'secretId',
secretKey: ‘secretKey,
});
const params = {
FileId: fileId,
MediaProcessTask: {
TranscodeTaskSet: [
{
Definition: 100210,
},
],
},
};
// 坑2:官网的API示例这里是.then的形式,结果一直报错,然后我通过查看报错和参照腾讯云点播视频上传SDK的方法发现改成这样就好了
client.ProcessMedia(params, (err, data) => {
if (err) {
console.error('error:', err);
} else {
console.log('data', data);
console.log('data.TaskId', data.TaskId);
}
});
};