Skip to content

Commit cc2aa8a

Browse files
authored
Merge pull request #145 from agin719/cos-v4-dev
Cos v4 dev
2 parents 4c0eb2d + 17cf1d4 commit cc2aa8a

File tree

3 files changed

+98
-10
lines changed

3 files changed

+98
-10
lines changed

ci_media.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type Video struct {
2525
Width string `xml:"Width"`
2626
Height string `xml:"Height"`
2727
Fps string `xml:"Fps"`
28-
Remove string `xml:"Remove"`
28+
Remove string `xml:"Remove,omitempty"`
2929
Profile string `xml:"Profile"`
3030
Bitrate string `xml:"Bitrate"`
3131
Crf string `xml:"Crf"`
@@ -48,7 +48,7 @@ type Audio struct {
4848
Samplerate string `xml:"Samplerate"`
4949
Bitrate string `xml:"Bitrate"`
5050
Channels string `xml:"Channels"`
51-
Remove string `xml:"Remove"`
51+
Remove string `xml:"Remove,omitempty"`
5252
}
5353

5454
type TransConfig struct {
@@ -97,13 +97,25 @@ type Watermark struct {
9797
Image *Image `xml:"Image,omitempty"`
9898
Text *Text `xml:"Text,omitempty"`
9999
}
100-
100+
type ConcatFragment struct {
101+
Url string `xml:"Url,omitempty"`
102+
StartTime string `xml:"StartTime,omitempty"`
103+
EndTime string `xml:"EndTime,omitempty"`
104+
}
105+
type ConcatTemplate struct {
106+
ConcatFragment []ConcatFragment `xml:"ConcatFragment,omitempty"`
107+
Audio *Audio `xml:"Audio,omitempty"`
108+
Video *Video `xml:"Video,omitempty"`
109+
Container *Container `xml:"Container,omitempty"`
110+
Index string `xml:"Index,omitempty"`
111+
}
101112
type MediaProcessJobOperation struct {
102-
Output *JobOutput `xml:"Output,omitempty"`
103-
Transcode *Transcode `xml:"Transcode,omitempty"`
104-
Watermark *Watermark `xml:"Watermark,omitempty"`
105-
TemplateId string `xml:"TemplateId,omitempty"`
106-
WatermarkTemplateId []string `xml:"WatermarkTemplateId,omitempty"`
113+
Output *JobOutput `xml:"Output,omitempty"`
114+
Transcode *Transcode `xml:"Transcode,omitempty"`
115+
Watermark *Watermark `xml:"Watermark,omitempty"`
116+
TemplateId string `xml:"TemplateId,omitempty"`
117+
WatermarkTemplateId []string `xml:"WatermarkTemplateId,omitempty"`
118+
ConcatTemplate *ConcatTemplate `xml:"ConcatTemplate,omitempty"`
107119
}
108120

109121
type CreateMediaJobsOptions struct {

cos.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222

2323
const (
2424
// Version current go sdk version
25-
Version = "0.7.30"
25+
Version = "0.7.31"
2626
userAgent = "cos-go-sdk-v5/" + Version
2727
contentTypeXML = "application/xml"
2828
defaultServiceBaseURL = "http://service.cos.myqcloud.com"

example/CI/media_process/media_process.go

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,78 @@ func log_status(err error) {
3030
}
3131
}
3232

33-
func main() {
33+
func InvokeConcatTask() {
34+
u, _ := url.Parse("https://wwj-bj-1253960454.cos.ap-beijing.myqcloud.com")
35+
cu, _ := url.Parse("https://wwj-bj-1253960454.ci.ap-beijing.myqcloud.com")
36+
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
37+
c := cos.NewClient(b, &http.Client{
38+
Transport: &cos.AuthorizationTransport{
39+
SecretID: os.Getenv("COS_SECRETID"),
40+
SecretKey: os.Getenv("COS_SECRETKEY"),
41+
Transport: &debug.DebugRequestTransport{
42+
RequestHeader: true,
43+
// Notice when put a large file and set need the request body, might happend out of memory error.
44+
RequestBody: true,
45+
ResponseHeader: true,
46+
ResponseBody: true,
47+
},
48+
},
49+
})
50+
// DescribeMediaProcessQueues
51+
DescribeQueueOpt := &cos.DescribeMediaProcessQueuesOptions{
52+
QueueIds: "",
53+
PageNumber: 1,
54+
PageSize: 2,
55+
}
56+
DescribeQueueRes, _, err := c.CI.DescribeMediaProcessQueues(context.Background(), DescribeQueueOpt)
57+
log_status(err)
58+
fmt.Printf("%+v\n", DescribeQueueRes)
59+
// CreateMediaJobs
60+
concatFragment := make([]cos.ConcatFragment, 0)
61+
concatFragment = append(concatFragment, cos.ConcatFragment{
62+
Url: "https://wwj-bj-1253960454.cos.ap-beijing.myqcloud.com/input/117374C.mp4",
63+
StartTime: "0",
64+
EndTime: "10",
65+
})
66+
concatFragment = append(concatFragment, cos.ConcatFragment{
67+
Url: "https://wwj-bj-1253960454.cos.ap-beijing.myqcloud.com/input/117374C.mp4",
68+
StartTime: "20",
69+
EndTime: "30",
70+
})
71+
createJobOpt := &cos.CreateMediaJobsOptions{
72+
Tag: "Concat",
73+
Operation: &cos.MediaProcessJobOperation{
74+
Output: &cos.JobOutput{
75+
Region: "ap-beijing",
76+
Object: "output/go_117374C.mp4",
77+
Bucket: "wwj-bj-1253960454",
78+
},
79+
ConcatTemplate: &cos.ConcatTemplate{
80+
Container: &cos.Container{
81+
Format: "mp4",
82+
},
83+
Video: &cos.Video{
84+
Codec: "H.264",
85+
},
86+
Audio: &cos.Audio{
87+
Codec: "AAC",
88+
},
89+
ConcatFragment:concatFragment,
90+
},
91+
},
92+
QueueId: DescribeQueueRes.QueueList[0].QueueId,
93+
}
94+
createJobRes, _, err := c.CI.CreateMediaJobs(context.Background(), createJobOpt)
95+
log_status(err)
96+
fmt.Printf("%+v\n", createJobRes.JobsDetail)
97+
98+
// DescribeMediaJobs
99+
DescribeJobRes, _, err := c.CI.DescribeMediaJob(context.Background(), createJobRes.JobsDetail.JobId)
100+
log_status(err)
101+
fmt.Printf("%+v\n", DescribeJobRes.JobsDetail)
102+
}
103+
104+
func InvokeTranscodeTask() {
34105
u, _ := url.Parse("https://wwj-cq-1253960454.cos.ap-chongqing.myqcloud.com")
35106
cu, _ := url.Parse("https://wwj-cq-1253960454.ci.ap-chongqing.myqcloud.com")
36107
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
@@ -95,3 +166,8 @@ func main() {
95166
log_status(err)
96167
fmt.Printf("%+v\n", DescribeJobRes.JobsDetail)
97168
}
169+
170+
func main() {
171+
InvokeConcatTask()
172+
//InvokeTranscodeTask()
173+
}

0 commit comments

Comments
 (0)