阿里云oss视频上传及预览图汇总
阿里云OSS视频上传的几种方式
1.Web端直传实践简介
https://help.aliyun.com/document_detail/31923.html?spm=a2c4g.11186623.6.631.apBNnA
2.JavaScript客户端签名直传(这种适合js直接跟阿里云服务器交互)
https://help.aliyun.com/document_detail/31925.html?spm=a2c4g.11186623.6.632.k7bluc
3.服务端签名后直传
https://help.aliyun.com/document_detail/31926.html?spm=a2c4g.11186623.6.633.p55gjq
关于预览图的相关操作
OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-oss-process参数的方式来实现的。最简单的使用方式就是直接在public的object的url后面拼接处理字符串。比如如下的url:
http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_10000,m_fast
指定的就是对demo.mp4这个文件直接调用视频截图,截图的位置由参数t指定,后面的单位是ms,因此这个url的含义就是截取视频文件的第10s的内容。生成的url可以直接嵌入在网页提供给用户浏览。
如果需要对private的object调用视频截图,需要使用SDK进行鉴权,接口和OSS图片服务的调用接口一致。
目前OSS只支持视频编码为h264的视频文件的处理,视频格式本身没有限制。
调用参数
目前支持的参数见视频截帧功能的文档:https://help.aliyun.com/document_detail/64555.html。
这里介绍一下具体的一些应用:
时间越界
视频截帧是通过t来指定截帧时间参数,t的范围为0到INT32_MAX,当t指定的时间超出视频的长度的时候,返回视频最后一帧的内容。
控制图片输出大小
视频截帧功能支持选择输出图片的大小,使用w参数指定宽度,h指定长度。
- 不指定w和h参数,或者w和h都指定为0,输出的图片大小为视频的真实长宽。
- 单独指定w或者h参数,输出的图片大小指定的数值,另外一个没有指定的数值通过视频原始比例自动计算出来。
- 同时指定w和h参数,输出图片大小为指定的数值,如果长宽比例和原始视频比不相等则强制拉伸。
比如下面这个url就是将输出的图片大小指定为800宽度。
关键帧
关键帧,也称I帧,是视频编码中的一个关键概念,指的是不依赖于前后参考帧就能独立解码的一种视频帧,在h264格式中常见的关键帧间隔为3-10秒。解码关键帧只需要读取关键帧对应的数据,而解码非关键帧需要顺序读取上一个关键帧到当前帧所有的数据才能完成。因此在OSS视频截帧功能中提供了控制功能,可以选择是否只读取关键帧信息,即m参数。
当m指定为fast的时候,OSS读取到指定时间点之前最接近的一个关键帧就解码返回;如果没有指定该参数则会持续解码到精确的时间点对应的视频帧再返回。对于没有特殊需求的用户来说,OSS强烈建议指定m_fast参数,这样可以大大提升截帧的请求响应速度。
输出格式
OSS输出的视频格式支持jpg和png两种格式,可以通过f参数来切换,默认输出的是jpg格式,对于没有特殊需求的用户无需指定该参数。
下面这个url就是将输出格式切换为png。
如果真的不知道将来要做什么,索性就先做好眼前的事情。只要今天比昨天过得好,就是进步。长此以往,时间自然会还你一个意想不到的未来。
生活像一个杯子。一开始,里面是空的,之后,要看你怎么对待它。如果你只往不如意的方面想,那么你最终辉得到一杯苦水。如果你往好的方面想,那么你最终会得到一杯清泉。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
生活像一个杯子。一开始,里面是空的,之后,要看你怎么对待它。如果你只往不如意的方面想,那么你最终辉得到一杯苦水。如果你往好的方面想,那么你最终会得到一杯清泉。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。