nodejs+腾讯云点播上传视频之后进行转码操作

136 阅读1分钟

我毕设选了个视频网站的项目,使用了腾讯云点播的服务,直接对着腾讯云点播的文档,很容易就完成了上传视频的操作,但问题是我想上传之后再进行转码的操作(转成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);
    }
  });
};