文档

视频截帧

更新时间:

您可以通过视频截帧功能,按一定规则提取视频帧并转换为需要的图片格式。本文介绍视频截帧功能参数及示例。

使用场景

  • 视频编辑与制作:在视频剪辑过程中,为了选取合适的镜头、制作动态海报或预告片,需要从原始视频中精确地截取某一帧画面作为静态图像。

  • 动画制作与游戏开发:动画师和游戏开发者可能会从视频中抓取特定帧作为角色动作的关键帧,用于构建动画序列或者游戏中的角色动作资源。

  • 视频分析与监控:在安防监控、运动分析等领域,通过截取视频中的关键帧进行细节查看和数据分析。例如,人脸识别、行为识别等技术就需要对视频的每一帧进行处理。

  • 截图分享与记录:用户在观看视频时,如果看到喜欢的画面想要保存或分享,也可以通过截取该时刻的视频帧实现。

注意事项

  • 视频截帧仅支持异步处理(x-oss-async-process处理方式)。

  • 视频截帧可能由于视频时间戳或码流的损坏而失败或生成的图片文件数量不正确。

  • 使用视频截帧前,需要先绑定IMM Project。关于控制台和API如何绑定,请参见快速入门AttachOSSBucket

  • 不支持匿名访问。

  • 必须拥有IMM处理所需的相关权限。更多信息,请参见权限

参数说明

操作名称:video/snapshots

具体参数如下表所示。

参数

类型

是否必须

描述

ss

int

视频截帧的起始时间,单位为毫秒。取值:

  • 0(默认值):从起始位置开始。

  • 大于0:从第ss毫秒开始。

f

string

图片输出格式,取值:

  • jpg

  • png

num

int

截帧数量,默认为不限制数量(截帧到视频结束)。

重要

当视频长度不足时,实际截帧数量会小于设定的参数值。

inter

int

截帧间隔,单位为毫秒,默认截取所有视频帧。

说明

当该参数小于源视频帧间隔(帧率倒数)时,会按源视频帧间隔进行截帧。

w

int

输出图片的宽度,单位为px,取值范围为[32,4096],默认与源视频宽度相同。

h

int

输出图片的高度,单位为px,取值范围为[32,4096],默认与源视频高度相同。

pw

int

输出图片宽度与原始视频宽度的百分比,取值范围为(0,200],默认值为100。

说明

wpw同时设置时,pw无效。

ph

int

输出图片高度与原始视频高度的百分比,取值范围为(0,200],默认值为100。

说明

hph同时设置时,ph无效。

scaletype

string

缩放方式。取值:

  • crop:缩放并裁剪。

  • stretch(默认值):拉伸以填满。

  • fill:缩放并保留黑边。

  • fit:缩放并不保留黑边,等比缩放。

说明

视频截帧时也会用到sys/saveasnotify参数。更多信息,请参见另存为消息通知

使用REST API

以每10秒截1帧的形式对视频进行截帧

截帧信息

  • 截帧前

    • 视频名称:example.mkv

  • 处理方式

    • 截帧完成消息通知:发送MNS消息

  • 截帧后

    • 截帧信息

      • 截帧格式:jpg

      • 视频间隔:10s

      • 输出图片分辨率:100x100

    • 文件存储路径

      • jpg文件:oss://outbucket/outobjprefix-%d.jpg

处理示例

// 对文件example.mkv进行视频截帧。
POST /exmaple.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****

x-oss-async-process=video/snapshots,f_jpg,w_100,h_100,scaletype_crop,inter_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg/notify,topic_QXVkaW9Db252ZXJ0

从视频的第3秒连续截帧100帧png图片

截帧信息

  • 截帧前

    • 视频名称:example.mkv

  • 处理方式

    • 截帧完成消息通知:发送MNS消息

  • 截帧后

    • 截帧信息

      • 截帧格式:png

      • 视频间隔:0s

      • 输出图片分辨率:宽高都为源视频的1/4

    • 文件存储路径

      • png文件:oss://outbucket/outobjprefix-%d.png

处理示例

// 对文件example.mkv进行视频截帧。
POST /exmaple.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
 
x-oss-async-process=video/snapshots,ss_3000,f_png,pw_25,ph_25,num_100|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9Cg/notify,topic_QXVkaW9Db252ZXJ0

使用SDK

视频截帧仅支持异步处理,SDK使用方法请参见使用SDK

  • 本页导读 (1)
文档反馈