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

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
日志服务 SLS,月写入数据量 50GB 1个月
简介: OSS作为对象存储产品,主要提供的是海量非结构化数据的存储,其中绝大部分都是视频和图片等富媒体数据,针对该场景的需求,OSS提供了丰富的图片处理功能来帮助用户更加方便的对存储于OSS上的图片数据进行加工,从而减少了对于流量、CPU等资源的消耗。


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

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


调用方式


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




指定的就是对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宽度。


关键帧


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


输出格式

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

下面这个url就是将输出格式切换为png。



相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
JavaScript 对象存储
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
1285 1
|
6月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
2079 2
|
2月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
135 9
|
5月前
|
对象存储
视觉智能开放平台操作报错合集之用oss上传视频后,发起调用报错是什么导致的
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
5月前
|
存储 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之是否提供相应的功能接口和指令,可以将数据从OSS存储同步到Hologres中进行分析
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
Java 对象存储
【工具类】使用阿里oss实现图片、视频、文档上传
【工具类】使用阿里oss实现图片、视频、文档上传
424 0
|
6月前
|
机器学习/深度学习 编解码 API
视觉智能平台常见问题之如何将融合后的视频上传至oss
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
6月前
|
存储 小程序 API
对象存储OSS产品常见问题之前端直传视频获取视频的长度获得多少秒如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
464 0
|
6月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
1710 2
|
11月前
|
对象存储
uniapp对接oss视频上传+压缩
uniapp对接oss视频上传+压缩
542 0

相关产品

  • 对象存储