由于本地转码
参考文章:golang 结合ffmpeg 实现视频转码h265转码h264格式 并上传阿里云oss-CSDN博客
还需要再ubuntu安装ffmpeg环境 且文件还需要写入、读取、替换、删除文件 这个时候再去请求oss 时间会很久 所以这边可以考虑直接通过阿里云转码。
1.通过前端去解析视频是h265还是h264
const checkVideoCode = (file) => {
return new Promise((resolve, reject) => {
let mp4boxFile = null,
reader = null,
arrayBuffer = null
mp4boxFile = MP4Box.createFile();
reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = (e) => {
arrayBuffer = e.target.result;
arrayBuffer.fileStart = 0;
mp4boxFile.appendBuffer(arrayBuffer);
};
mp4boxFile.onReady = function(info) {
resolve(info);
};
mp4boxFile.onError = function(info) {
reject(info);
};
});
}
但是 这边解析会报错 可以选择忽略这个报错哈(希望有大佬给出为啥会报错,小弟学业不精)
然后原本是h264的继续走原来直传oss的接口,例如正常的上传路径是https:xxxx.com/aaa/bb.mp4
那要是h265的去请求特殊文件的oss接口,例如https:xxxx.com/special_file/bb.mp4 这时 我们就需要去oss去配置样式,具体配置和码率自行调节哈。
然后我们就需要去触发器 初始一个触发任务 只要是特殊文件都会去触发器的请求
这边输出路径和输出路径不可以一样哈,oss文档参考:如何创建和查询触发器_对象存储(OSS)-阿里云帮助中心
这样回调回来的视频就是解码完的视频哈!