如何使用OSS视频截帧功能快速生成视频预览

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: OSS作为对象存储产品,主要提供的是海量非结构化数据的存储,其中绝大部分都是视频和图片等富媒体数据,针对该场景的需求,OSS提供了丰富的图片处理功能来帮助用户更加方便的对存储于OSS上的图片数据进行加工,从而减少了对于流量、CPU等资源的消耗。


OSS作为对象存储产品,主要提供的是海量非结构化数据的存储,其中绝大部分都是视频和图片等富媒体数据,针对该场景的需求,OSS提供了丰富的图片处理功能来帮助用户更加方便的对存储于OSS上的图片数据进行加工,从而减少了对于流量、CPU等资源的消耗。

但是随着视频业务的发展,对于如何处理OSS上大量的视频数据在业务上也是一个比较大的挑战。比如视频预览就是很多业务场景下的强需求,常规的做法是从OSS读取视频文件然后本地处理再返回给用户,这个过程中文件读取和处理都会存在一定的瓶颈。针对这个场景,OSS内置提供了视频截帧功能。这里主要介绍OSS提供的视频截帧功能的使用方法。


调用方式


OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-oss-process参数的方式来实现的。最简单的使用方式就是直接在public的object的url后面拼接处理字符串。比如如下的url:


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指定长度。

  1. 不指定w和h参数,或者w和h都指定为0,输出的图片大小为视频的真实长宽。
  2. 单独指定w或者h参数,输出的图片大小指定的数值,另外一个没有指定的数值通过视频原始比例自动计算出来。
  3. 同时指定w和h参数,输出图片大小为指定的数值,如果长宽比例和原始视频比不相等则强制拉伸。

比如下面这个url就是将输出的图片大小指定为800宽度。
snapshot,t_10000,m_fast,w_800

关键帧


关键帧,也称I帧,是视频编码中的一个关键概念,指的是不依赖于前后参考帧就能独立解码的一种视频帧,在h264格式中常见的关键帧间隔为3-10秒。解码关键帧只需要读取关键帧对应的数据,而解码非关键帧需要顺序读取上一个关键帧到当前帧所有的数据才能完成。因此在OSS视频截帧功能中提供了控制功能,可以选择是否只读取关键帧信息,即m参数。
当m指定为fast的时候,OSS读取到指定时间点之前最接近的一个关键帧就解码返回;如果没有指定该参数则会持续解码到精确的时间点对应的视频帧再返回。对于没有特殊需求的用户来说,OSS强烈建议指定m_fast参数,这样可以大大提升截帧的请求响应速度。


输出格式

OSS输出的视频格式支持jpg和png两种格式,可以通过f参数来切换,默认输出的是jpg格式,对于没有特殊需求的用户无需指定该参数。

下面这个url就是将输出格式切换为png。
snapshot,t_10000,m_fast,w_800,f_png


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
6月前
|
JavaScript 对象存储
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
425 1
|
3月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
532 2
|
3天前
|
存储 小程序 API
对象存储OSS产品常见问题之前端直传视频获取视频的长度获得多少秒如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
15 0
|
1月前
|
机器学习/深度学习 编解码 API
视觉智能平台常见问题之如何将融合后的视频上传至oss
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
32 3
|
6月前
|
Java 对象存储
【工具类】使用阿里oss实现图片、视频、文档上传
【工具类】使用阿里oss实现图片、视频、文档上传
223 0
|
3月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
417 2
|
4月前
|
对象存储
uniapp对接oss视频上传+压缩
uniapp对接oss视频上传+压缩
260 0
|
4月前
|
vr&ar 对象存储
oss视频截封面
oss视频截封面
240 0
|
7月前
|
存储 弹性计算 数据管理
云上有“数”系列实验(1)——利用OSS搭建在线教育视频课程分享网
本场景将基于一台配置了CentOS 7.7的ECS实例(云服务器)和OSS资源。通过本教程的操作,您可以在ECS实例上搭建在线教育网站,从OSS中上传数据,可以开通OSS传输加速对OSS数据进行加速访问,并且可以设置生命周期对OSS进行降本增效。
|
7月前
|
存储 弹性计算 对象存储
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
432 0

相关产品

  • 对象存储