导语
智能媒体管理已经支持了视频截帧和雪碧图生成功能,可以方便的在一次请求完成视频首帧、封面、雪碧图生成工作。
功能介绍
在视频点播等场景中,需要在视频上添加一张封面,在播放的同时科技根据进度查看指定时间点的视频画面,来提升用户体验,智能媒体管理可以方便的实现该功能,通过一次请求,可以指定多个输出方式,如时间间隔、百分比间隔、生成雪碧图等。
功能实现
首先需要有阿里云的账号,并且开通IMM(智能媒体管理)功能,关于账号和开通IMM的功能请参考相关文章。
创建一个视频类型的 project,可以使用SDK或者在控制台创建。通过工单提出需要分析的类型,我们会配置好需要的功能。
然后需要为改 Project 的使用的 ServiceRole 添加 AliyunIMMFullAccess 权限,添加方法请参考 RAM 相关文档。完成之后就可以使用截帧功能了。
主要参数说明如下:
IMM 参数 | 类型 | 是否必填 | 描述 | |
---|---|---|---|---|
Interval |
String |
否 | 截帧间隔,截单帧可以不设置,否则必须设置,支持按时长的百分比设置,该值如果小于0.01按0.01处理 | |
TotalNumber | Integer | 否 | 截帧数量,如果视频有效时长不足,则按照有效时长截帧,不会超过该值 | |
SkipBegin | String | 否 | 跳过开始时间,支持按时长的百分比设置。 | |
SkipEnd | String | 否 | 跳过开始时间,支持按时长的百分比设置 | |
TargetUri | String | 是 | 输出文件的OSS URI。支持自定义文件名如 pre{002}suf.jpg,则输出图片文件名为 pre002suf.jpg ,pre003suf.jpg 等等,如果 TotalNumber为1, 则直接使用该名称 | |
GrabType | String | 是 | 截帧类型,目前支持SPRITE(雪碧图),INTERNAL(间隔截帧) | |
Width | String | 否 | 帧宽度,支持按百分比设置 | |
Height | String | 否 | 帧高度,支持按百分比设置 | |
SpriteRow | Integer | 否 | 雪碧图中小图的行数,截雪碧图是必填,雪碧图顺序为优先填满行,不足的为黑色背景,最大为20 | |
SpriteColumn | Integer | 否 | 雪碧图中小图的列数,截雪碧图是必填,雪碧图顺序为优先填满行,不足的为黑色背景,最大为20 | |
SpritePad | Integer | 否 | 雪碧图小图之间的间隔,默认为2。最大为50 | |
SpriteMargin | Integer | 否 | 雪碧图边缘间隔,默认为2。最大为100 | |
ScaleType | String | 否 | 缩放方式,可选值:CROP/STRETCH/FILL/FIT,分别为缩放并裁剪/拉伸以填满/缩放并保留黑边/缩放并不保留黑边。默认 STRETCH 。 |