尽管,我们将视频资源传到了七牛CDN存储,仍解决不了播放卡顿问题。于是,想到了以前做七牛调研时的视频切片处理方案。
简而言之,就是将一整段视频切成一段段文件,然后播放时,加载索引文件,根据进度,加载播放指定分片文件。
那么,视频切片后会有哪些好处?
根据以下路径上传视频源文件:
对象存储 -> 选择一个存储空间(若没有,则创建一个存储空间)->内容管理 ->上传文件 ->选择文件
上传成功后,记住上传的文件名以及bucket(存储空间名,此处图示为 tianhls )
在控制台首页的产品列表中,找到「多媒体队列」,并创建队列
此处,我们创建了一个叫「video_pipeline」的队列:
在队列中,新建作业。根据提示,填写相关信息。
预设规格,根据具体需求选择 video-HLS-240k 、 video-HLS-150k 、 video-HLS-640k 、 video-HLS-1000k 中任意一个。示例,选择 video-HLS-640k .
最后,就是选择处理后文件的存储地址和文件名。需要注意的是,建议文件名取为 .m3u8 结尾的文件名。
然后,点击「确认创建」。即可完成作业创建。接着,就是等待处理结果了。若状态更新为成功,则处理完成。
回到「对象储存」,找到刚刚处理成功的文件。
测试地址
将获取到的播放地址,放到该网页上,进行测试。若播放成功,则说明文件有效。
七牛云上传文件的方法还挺多的,我说2种常用的方法,第一种:在七牛云找到控制台界面的对象存储--空间管理--文件管理,选择文件进行上传。第二种方法:选用服务端SDK进行上传,建议先参阅服务端SDK文档,可以在七牛云的SDK&工具栏目下找文档查看,当前七牛云仅提供文档中已有的相关SDK。
第一步:获取七牛云token,这步 *** 作很简单,请求七牛云接口即可
getUpToken: function() {
var url = "resource/getUpToken"
var header = {
token : wx.getStorageSync("token")
}
var that = this
network.requestLoading(url,"",header,"",function(data){
console.log(data)
that.setData({
up_token : data.data
})
},function(){
})
},
第二步:利用upfile API上传文件
wx.uploadFile({
formData:{token:that.data.up_token}, //这里是请求头部分
url: 'url',
filePath: tempFilePaths[i],
name:"file",
success:function(data) {
var res = JSON.parse(data.data)
var image_keys = that.data.image_keys.concat(res.key)
}
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)