视频截图是截取视频中特定位置的图像,保存为图片文件。
使用场景
- 单帧截图
设置一个明确的截图时间点,截取对应的视频图像。
- 多帧截图
按照设置的间隔时间,均匀的截取对应视频的多帧图像,每帧图像都是一个图片文件。也叫批量截图、序列截图。
- 雪碧拼图
多帧截图的图像以雪碧图的方式拼成一张大图输出。这样可以一次请求获取多帧图像,降低图片请求次数,提高客户端性能。
- WebVTT缩略图
HTML5标准的字幕文件格式,也被很多H5播放器作为缩略图预览的格式。
WebVTT只是文件格式,缩略图可以是多张图片,也可以是雪碧图方式拼成的一张大图。
类型
- 关键帧
因为视频编码的特点,关键帧图像的优势是画质好,执行速度快。由于视频中关键帧是间隔一段时间才会出现,所以劣势是时间点不太精确,会在设置的时间点附近寻找相应的关键帧。
- 普通帧
和关键帧相反,画质稍差,执行速度较慢。优点是可以根据设置的时间点精确截取图像。
参数说明
- OSS的Location必须和媒体处理服务的地域对应。例如,OSS的oss-cn-hangzhou对应媒体处理的cn-hangzhou。
- 更多截图常见问题说明,请参见截图常见问题。
在截图配置(SnapshotConfig)中,需要关注以下参数:
设置截图的OSS输出文件。OSS的Object除了设置为固定的文件名外,还支持按照一些规则自定义文件名。
Time
设置单帧截图的时间点,也是多帧截图的开始时间点。整数类型,单位:毫秒。
Interval、Num
设置多帧截图的间隔时间(单位:秒)和数量。分以下几种情况:
不设置Num时,表示按照间隔时间,一直截取到视频结尾。
Num大于1时,表示按照间隔时间,截取到指定数量的图像时就停止截图。
设置Num=1时,按照异步方式执行单帧截图。
Width、Height
设置单帧截图或多帧截图输出的图片宽和高,单位:像素。
宽和高都是以输入视频为参考。
如果宽和高都不设置时,图片的尺寸和视频相同。
如果只设置宽(或高)时,另一边会按照视频的分辨率保持比例不变,避免图像变形。
说明 建议您不要同时任意设置宽和高的值,以免引起图像比例失真。如果MP4的竖屏视频带有旋转标识,截图是横屏图像。
如果MP4的竖屏视频不带有旋转标识,则截图保持竖屏图像。
- FrameType
设置截图的类型:关键帧或普通帧。默认:关键帧。
- TileOutputFile、TileOut
设置雪碧拼图的OSS输出文件和拼图配置(TileOut)。
- SubOut、Format
- 如果您需要使用webVTT格式的缩略图,设置Format=“VTT”。
- 如果webVTT格式需要以雪碧图的方式显示,要同时设置Format和SubOut的值。
执行方式
执行方式详情,请参见 作业和管道>作业执行和结果。
- 同步
调用API时,同步返回截图作业ID以及截图结果。
同步方式只支持单帧截图的场景。
- 异步
调用API时,仅返回截图作业ID。截图结果的查询,可以使用消息通知服务,也可以通过截图作业ID查询。
单帧截图、多帧截图、雪碧拼图、WebVTT缩略图都支持异步的执行方式。
示例代码
例如一个720P(1280x720)时长10秒的视频,设置截图高度360像素,从第2秒开始,按照每1秒截取一张图的方式,最多截取3帧。最终会输出3张图片,时间点分别是2、3、4秒。文件名也会按照00001、00002、00003的规则来命名。