您可以通过视频截帧功能,按一定规则提取视频帧并转换为需要的图片格式。本文介绍视频截帧功能参数及示例。
使用场景
视频编辑与制作:在视频剪辑过程中,为了选取合适的镜头、制作动态海报或预告片,需要从原始视频中精确地截取某一帧画面作为静态图像。
动画制作与游戏开发:动画师和游戏开发者可能会从视频中抓取特定帧作为角色动作的关键帧,用于构建动画序列或者游戏中的角色动作资源。
视频分析与监控:在安防监控、运动分析等领域,通过截取视频中的关键帧进行细节查看和数据分析。例如,人脸识别、行为识别等技术就需要对视频的每一帧进行处理。
截图分享与记录:用户在观看视频时,如果看到喜欢的画面想要保存或分享,也可以通过截取该时刻的视频帧实现。
注意事项
视频截帧仅支持异步处理(x-oss-async-process处理方式)。
视频截帧可能由于视频时间戳或码流的损坏而失败或生成的图片文件数量不正确。
使用视频截帧前,需要先绑定IMM Project。关于控制台和API如何绑定,请参见快速入门和AttachOSSBucket。
不支持匿名访问。
必须拥有IMM处理所需的相关权限。更多信息,请参见权限。
参数说明
操作名称:video/snapshots
具体参数如下表所示。
参数 | 类型 | 是否必须 | 描述 |
ss | int | 否 | 视频截帧的起始时间,单位为毫秒。取值:
|
f | string | 是 | 图片输出格式,取值:
|
num | int | 否 | 截帧数量,默认为不限制数量(截帧到视频结束)。 重要 当视频长度不足时,实际截帧数量会小于设定的参数值。 |
inter | int | 否 | 截帧间隔,单位为毫秒,默认截取所有视频帧。 说明 当该参数小于源视频帧间隔(帧率倒数)时,会按源视频帧间隔进行截帧。 |
w | int | 否 | 输出图片的宽度,单位为px,取值范围为[32,4096],默认与源视频宽度相同。 |
h | int | 否 | 输出图片的高度,单位为px,取值范围为[32,4096],默认与源视频高度相同。 |
pw | int | 否 | 输出图片宽度与原始视频宽度的百分比,取值范围为(0,200],默认值为100。 说明 当w与pw同时设置时,pw无效。 |
ph | int | 否 | 输出图片高度与原始视频高度的百分比,取值范围为(0,200],默认值为100。 说明 当h与ph同时设置时,ph无效。 |
scaletype | string | 否 | 缩放方式。取值:
|
使用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)