截图是截取视频特定位置的图像并生成图片的过程,是一种离线任务。云点播提供以下类型的截图:
使用截图功能,可以满足如下应用场景:
截图的目标规格,包含截图文件格式、截图宽高等参数。云点播使用截图模板表示截图参数集合,通过截图模板,可以指定以下截图相关参数。
时间点截图模板,用于“指定时间点截图”和“截取一张图作封面”两种任务。
参数 | 说明 |
---|---|
格式(Format) | 截图文件的输出格式,目前仅支持 JPG。 |
宽度(Width) | 截图宽度,范围是128px - 4096px。 |
高度(Height) | 截图高度,范围是128px - 4096px。 |
填充方式(FillType) | 当截图的宽高比与原始视频的宽高比不一致时,对截图的处理方式,即为“填充”。一般有以下几种填充方式: |
针对常见的规格,云点播提供 预置时间点截图模板。另外,您还可以通过控制台创建和管理自定义截图模板,具体操作请参见 模板设置。
采样截图模板,用于“采样截图”任务。
参数 | 说明 |
---|---|
格式(Format) | 截图文件的输出格式,目前仅支持 JPG。 |
宽度(Width) | 截图宽度,范围是128px - 4096px。 |
高度(Height) | 截图高度,范围是128px - 4096px。 |
采样方式(SampleType) | 采样方式分为两种: |
采样间隔(Interval) | 采样的间隔长度: |
填充方式(FillType) | 当截图的宽高比与原始视频的宽高比不一致时,对截图的处理方式,即为“填充”。一般有以下几种填充方式: |
针对常见的规格,云点播提供了 预置采样截图模板。另外,您还可以通过控制台创建和管理自定义截图模板,具体操作请参见 模板设置。
雪碧图模板,用于“截雪碧图”任务。
参数 | 说明 |
---|---|
格式(Format) | 雪碧图文件的输出格式,目前仅支持 JPG。 |
小图宽度(Width) | 雪碧图中小图的宽度。 |
小图高度(Height) | 雪碧图中小图的高度。 |
小图行数(Rows) | 一张大图中有多少行小图。 |
小图列数(Columns) | 一张大图中有多少列小图。 |
采样方式(SampleType) | 小图采样方式,目前仅支持按照时间间隔采样。 |
采样间隔(Interval) | 小图采样的间隔,即隔多久采样一张小图。 |
注意:
- Width × Columns 需要在128px - 4096px之间(即大图宽度在128px - 4096px之间)。
- Height × Rows 需要在128px - 4096px之间(即大图高度在128px - 4096px之间)。
针对常见的规格,云点播提供了 预置雪碧图模板。另外,您还可以通过控制台创建和管理自定义截图模板,具体操作请参见 模板设置。
发起截图任务,有“通过服务端 API 直接发起”,“通过控制台直接发起”和“上传时指定要执行的任务”三种方式。具体请参照视频处理的 任务发起。
以下是各种方式发起截图任务的说明:
MediaProcessTask.SnapshotByTimeOffsetTaskSet
参数指定 截图模板 的模板 ID。procedure
参数指定为该任务流。procedure
指定该任务流。发起截图任务后,您可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取截图任务的执行结果。下面是发起截图任务后,普通回调方式下结果通知的示例(省略了值为 null 的字段):
{
"EventType":"ProcedureStateChanged",
"ProcedureStateChangeEvent":{
"TaskId":"1256768367-Procedure-2e1af2456351812be963e309cc133403t0",
"Status":"FINISH",
"FileId":"5285890784246869930",
"FileName":"动物世界",
"FileUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/AtUCmy6gmIYA.mp4",
"MetaData":{
"AudioDuration":60,
"AudioStreamSet":[
{
"Bitrate":383854,
"Codec":"aac",
"SamplingRate":48000
}
],
"Bitrate":1021028,
"Container":"mov,mp4,m4a,3gp,3g2,mj2",
"Duration":60,
"Height":480,
"Rotate":0,
"Size":7700180,
"VideoDuration":60,
"VideoStreamSet":[
{
"Bitrate":637174,
"Codec":"h264",
"Fps":23,
"Height":480,
"Width":640
}
],
"Width":640
},
"MediaProcessResultSet":[
{
"Type":"SnapshotByTimeOffset",
"SnapshotByTimeOffsetTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10,
"Definition":[3, 6, 9]
},
"Output":{
"Definition":10,
"PicInfoSet": [
{
"TimeOffset":3,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg"
},
{
"TimeOffset":6,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx2.jpg"
},
{
"TimeOffset":9,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx3.jpg"
}
]
}
}
},
{
"Type":"SampleSnapshot",
"SampleSnapshotTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10
},
"Output":{
"Definition":10,
"SampleType":"Percent",
"Interval": 10,
"WaterMarkDefinition": [],
"ImageUrlSet": [
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx2.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx3.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx4.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx5.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx6.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx7.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx8.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx9.jpg"
]
}
}
},
{
"Type":"ImageSprites",
"ImageSpriteTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10
},
"Output":{
"Definition":10,
"Height":80,
"Width":142,
"TotalCount":1,
"ImageUrlSet":[
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg"
],
"WebVttUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx.vtt"
}
}
},
{
"Type":"CoverBySnapshot",
"CoverBySnapshotTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10,
"PositionType":"Time",
"PositionValue":0
},
"Output":{
"CoverUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx.jpg"
}
}
}
],
"TasksPriority":0,
"TasksNotifyMode":""
}
}
回调结果中,ProcedureStateChangeEvent.MediaProcessResultSet
有Type
为SnapshotByTimeOffset
、SampleSnapshot
、ImageSprites
和CoverBySnapshot
的结果,分别代表指定时间点截图、采样截图、截雪碧图和截取一张图作封面几种截图任务。
本页内容是否解决了您的问题?