前言:在阿里云oss视频上传后,我们如何获取视频封面呢?而不是通过上传方式获取封面.其实OSS本身提供了视频截帧功能

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

注意

  • 当前仅支持对视频编码格式为H264的视频文件进行视频截帧。
  • OSS当前没有默认保存视频截帧的操作,视频截帧的图片需手动下载到本地。
  • 如果需要对private的object调用视频截图,需要使用SDK进行鉴权,接口和OSS图片服务的调用接口一致。
  • 图片处理除了能够处理已经存在的图片内容,还能够截取出视频中的指定位置产生图片,完成视频截帧。

参数

操作分类:video

操作名称:snapshot

参数 描述 取值范围
t 截图时间 单位ms,[0,视频时长]
w 截图宽度,如果指定为0则自动计算 像素值:[0,视频宽度]
h 截图高度,如果指定为0则自动计算,如果w和h都为0则输出为原视频宽高 像素值:[0,视频高度]
m 截图模式,不指定则为默认模式,根据时间精确截图,如果指定为fast则截取该时间点之前的最近的一个关键帧 枚举值:fast
f 输出图片格式 枚举值:jpg、png

示例

  • 找到视频7s处的内容,输出为jpg。

    http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast

  • 找到视频50s处的内容,输出为jpg,精确为对应的时间。

    http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_50000,f_jpg,w_800,h_600

控制图片输出大小

视频截帧功能支持选择输出图片的大小,使用w参数指定宽度,h指定长度。

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

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

http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/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:

http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_10000,m_fast,w_800,f_png

阿里云oss视频上传后,如何获取视频封面相关推荐

  1. 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题

    解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...

  2. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  3. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

  4. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  5. 阿里云OSS文件上传下载,拿来即用

    什么是OSS 我们可以理解为就是一个资源服务器,在这之前我也尝试过Nginx当静态资源服务器,但效果比较一般,为什么选择阿里云OSS,只是因为最近刚好公司用到了,所以就接入了,还有其他的比如七牛云,腾 ...

  6. 阿里云 OSS监控上传进度

    阿里云 OSS监控上传进度 阿里云上传进度SDK 使用阿里云带进度条的上传,然后将长传进度存入session // 带进度条的上传ossClient.putObject(new PutObjectRe ...

  7. C#阿里云oss接口上传和下载文件

    一  前期准备工作:需要获取阿里云的:endpoint, accessKeyId, accessKeySecret这三个参数值,可以登录阿里云账号获取到. 再一个就是项目中需要引入阿里云的接口文件Al ...

  8. PHP上传大文件视频到阿里云oss分片上传

    下载阿里云oss的SDK composer require aliyuncs/oss-sdk-php 上传视频,我用的是分片上传,其实阿里云的文档已经写得很清楚了,不过这是当我把上传的功能写出来后才这 ...

  9. 阿里云oss文件上传(简单上传、服务端签名后直传)

    前置: 自行开通阿里oss服务: https://www.aliyun.com/product/oss?spm=a2c4g.11174283.J_8058803260.125.d9387da2TjNf ...

最新文章

  1. [译]Web Inspector开始支持CSS区域
  2. Centos7 网络yum
  3. JAVA实现顺时针打印矩阵问题(《剑指offer》)
  4. 计算机系统概论寻址空间,自考《计算机系统结构》重点知识概论:数据表示(二)...
  5. ecshop简单三部实现导航分类二级菜单
  6. 虚拟机ubuntu19.04下设置idea快捷键
  7. PHP于js的交互,关于php与js交互问题
  8. 漫谈微服务架构:什么是Spring Cloud,为何要选择Spring Cloud
  9. android datepicker 自定义,android – 如何使用两个datepicker创建自定义对话框?
  10. 其实没有啥好说的公司组织去清远漂流
  11. html页面性能优化两则
  12. Maven搭建webService (一) 创建服务端---使用main函数发布服务
  13. 蓝牙耳机播放音频无声问题的解决方案
  14. adc网络语什么意思_王者荣耀游戏术语解释 ADC是什么意思
  15. 算法提高 素数环 java 题解 977
  16. idea中java版本设置
  17. 创建数据表与修改数据表
  18. 一篇文章带你认识数学建模中的二维插值
  19. SQL中将查询结果赋值给变量
  20. Synchronized详细介绍之锁升级过程

热门文章

  1. App中显示html网页
  2. uniapp 微信小程序保存图片到系统相册( 获取用户是否开启 授权保存图片到相册。)
  3. PostMan工具用法详细教程
  4. 几种常用的程序命名方法(规则)
  5. 笔记本不能上网的原因和维修方法
  6. 一次CPU突然飙高的详细排查流程
  7. java练习之生成随机数1-10,如果是1输出“恭喜,中1等奖”,如果是2输出“恭喜,中2等奖”,如果是3输出“恭喜,中3等奖”,如果是4输出“恭喜,中4等奖”,如果是5输出“恭喜,中5等奖
  8. 手机端,电脑端,MQTT服务端 连接测试
  9. FANUC协作机器人CRX系列_程序的创建与运行
  10. 快递代领--需求分析