Thumbnail-Job缩略图任务
更新时间:2023-04-23
缩略图是图片、视频经压缩方式处理后的小图。因其小巧,加载速度非常快,故用于快速浏览。缩略图任务可用于为BOS中的多媒体资源创建缩略图。
创建Thumbnail Job
通过pipeline,BOS Key以及其他配置信息为指定媒体生成缩略图,并获取返回的缩略图任务jobId。可以参考如下代码:
Go
1pipelineName := "go_test"
2sourcekey := "01.mp4"
3target := &api.ThumbnailTarget{}
4target.Format = "jpg"
5target.SizingPolicy = "keep"
6capture := &api.ThumbnailCapture{}
7capture.Mode = "manual"
8capture.StartTimeInSecond = 0.0
9capture.EndTimeInSecond = 5.0
10capture.IntervalInSecond = 1.0
11createJobResponse, err := MEDIA_CLIENT.CreateThumbnailJob(pipelineName, sourcekey, TargetOp(target), CaptureOp(capture))
12if err != nil {
13 fmt.Printf("create thumbanil job error: %+v\n", err)
14 return
15}
16fmt.Println("create thumbanil job success jobId: ", createJobResponse.JobId)
创建去水印的缩略图,可以参考如下代码:
Go
1pipelineName := "go_test"
2sourcekey := "01.mp4"
3target := &api.ThumbnailTarget{}
4target.KeyPrefix = "taget_key_prefix_test_delogo3"
5delogo := &api.Area{}
6delogo.X = 20
7delogo.Y = 20
8delogo.Height = 50
9delogo.Width = 80
10
11createJobResponse, err := MEDIA_CLIENT.CreateThumbnailJob(pipelineName, sourcekey, TargetOp(target), DelogoAreaOp(delogo))
12if err != nil {
13 fmt.Printf("create thumbanil job error: %+v\n", err)
14 return
15}
16fmt.Println("create thumbanil job success jobId: ", createJobResponse.JobId)
创建去水印、去黑边的缩略图,可以参考如下代码:
Go
1pipelineName := "go_test"
2sourcekey := "01.mp4"
3target := &api.ThumbnailTarget{}
4target.KeyPrefix = "taget_key_prefix_test_delogo_crop"
5delogo := &api.Area{}
6delogo.X = 20
7delogo.Y = 20
8delogo.Height = 50
9delogo.Width = 80
10
11crop := &api.Area{}
12crop.X = 120
13crop.Y = 120
14crop.Height = 100
15crop.Width = 80
16
17createJobResponse, err := MEDIA_CLIENT.CreateThumbnailJob(pipelineName, sourcekey,
18 TargetOp(target), DelogoAreaOp(delogo), CropOp(crop))
19if err != nil {
20 fmt.Printf("create thumbanil job error: %+v\n", err)
21 return
22}
23fmt.Println("create thumbanil job success jobId: ", createJobResponse.JobId)
创建去水印缩略图任务,其中指定了缩略图格式为jpg、尺寸为与原视频保持一致(keep),抽帧模式(SizingPolicy)为split,根据指定的起止时间和张数截取缩略图,FrameNumber则指定了缩略图张数,代码如下:
Go
1pipelineName := "go_test"
2sourcekey := "01.mp4"
3target := &api.ThumbnailTarget{}
4target.Format = "jpg"
5target.SizingPolicy = "keep"
6
7capture := &api.ThumbnailCapture{}
8capture.Mode = "split"
9capture.FrameNumber = 30
10
11delogo := &api.Area{}
12delogo.X = 20
13delogo.Y = 20
14delogo.Height = 50
15delogo.Width = 80
16
17createJobResponse, err := MEDIA_CLIENT.CreateThumbnailJob(pipelineName, sourcekey,
18 TargetOp(target), CaptureOp(capture), DelogoAreaOp(delogo))
19if err != nil {
20 fmt.Printf("create thumbanil job error: %+v\n", err)
21 return
22}
23fmt.Println("create thumbanil job success jobId: ", createJobResponse.JobId)
如果只想创建一个简单的缩略图任务可以参考如下代码:
Go
1pipelineName := "go_test"
2sourcekey := "01.mp4"
3createJobResponse, err := MEDIA_CLIENT.CreateThumbnailJob(pipelineName, sourcekey)
4if err != nil {
5 fmt.Printf("create thumbanil job error: %+v\n", err)
6 return
7}
8fmt.Println("create thumbanil job success jobId: ", createJobResponse.JobId)
查询指定Thumbnail Job
如果需要获取一个已创建的缩略图任务的信息,可以参考如下代码:
Go
1jobId := "job-xxxxxxx"
2jobResponse, err := MEDIA_CLIENT.GetThumbanilJob(jobId)
3if err != nil {
4 fmt.Printf("get thumbanil job error: %+v\n", err)
5 return
6}
7fmt.Printf("get thumbanil job success job: %+v\n", jobResponse)
查询指定队列的Thumbnail Jobs
如果需要获取一个队列里的全部缩略图任务的信息,可以参考如下代码:
Go
1pipelineName := "go_sdk_test"
2listThumbnailJobsResponse, err := MEDIA_CLIENT.ListThumbnailJobs(pipelineName)
3if err != nil {
4 fmt.Printf("list thumbanil job error: %+v\n", err)
5 return
6}
7for _, job := range listThumbnailJobsResponse.Thumbnails {
8 fmt.Printf("list thumbanil job success : %+v\n", job)
9}