有奖捉虫:云通信与企业服务文档专题,速来> HOT

功能描述

提交一个拼接任务。


请求

请求示例

POST /jobs HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml

<body>
说明
Authorization: Auth String(详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该请求操作的实现需要有如下请求体。
<Request>
<Tag>Concat</Tag>
<Input>
<Object>input/demo.mp4</Object>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>
具体的数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Request
保存请求的容器
Container
Container 类型 Request 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Tag
Request
创建任务的 Tag:Concat
String
Input
Request
待操作的媒体信息
Container
Operation
Request
操作规则
Container
QueueId
Request
任务所在的队列 ID
String
CallBackFormat
Request
任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式
String
CallBackType
Request
任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型
String
CallBack
Request
任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调
String
CallBackMqConfig
Request
任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig
Container
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Object
Request.Input
媒体文件名
String


Container 类型 Operation 的具体数据描述如下:

节点名称(关键字)
父节点
描述
类型
是否必选
ConcatTemplate
Request.Operation
指定拼接参数
Container
TemplateId
Request.Operation
指定的模板 ID
String
Output
Request.Operation
结果输出地址
Container
JobLevel
Request.Operation
任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0
String
注意
优先使用 TemplateId,无 TemplateId 时使用 ConcatTemplate。
Container 类型 ConcatTemplate 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
默认值
限制
ConcatFragment
Request.Operation.ConcatTemplate
拼接节点
Container 数组
支持多个文件,按照文件顺序拼接
Audio
Request.Operation.ConcatTemplate
音频参数,同创建拼接模板 CreateMediaTemplate 接口中的 Request.ConcatTemplate.Audio
Container
Video
Request.Operation.ConcatTemplate
视频参数,同创建拼接模板 CreateMediaTemplate 接口中的 Request.ConcatTemplate.Video
Container
Container
Request.Operation.ConcatTemplate
封装格式,同创建拼接模板 CreateMediaTemplate 接口中的 Request.ConcatTemplate.Container
Container
AudioMix
Request.Operation.ConcatTemplate
混音参数, 详情见 AudioMix
Container数组
仅在 Audio.Remove 为 false 时生效
Index
Request.Operation.ConcatTemplate
Input 节点位于 ConcatFragment 序列索引
String
0
不能大于 ConcatFragment 长度
DirectConcat
Request.Operation.ConcatTemplate
简单拼接方式(不转码直接拼接),其他的视频和音频参数失效
String
false
true、false
Container 类型 ConcatFragment 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
默认值
限制
Url
Request.Operation.ConcatTemplate.ConcatFragment
拼接对象地址
String
同 bucket 对象文件
FragmentIndex
Request.Operation.ConcatTemplate.ConcatFragment
拼接对象的索引位置
String
0
大于等于0的整数
StartTime
Request.Operation.ConcatTemplate.ConcatFragment
开始时间
String
视频开始
[0 视频时长]
单位为秒
EndTime
Request.Operation.ConcatTemplate.ConcatFragment
结束时间
String
视频结束
[0 视频时长]
单位为秒
Container 类型 Output 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Region
Request.Operation.Output
存储桶的地域
String
Bucket
Request.Operation.Output
存储结果的存储桶
String
Object
Request.Operation.Output
输出结果的文件名
String

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c6f</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<Tag>Concat</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<TemplateName>concat_demo</TemplateName>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>
具体的数据内容如下:
节点名称(关键字)
父节点
描述
类型
Response
保存结果的容器
Container
Container 节点 Response 的内容:
节点名称(关键字)
父节点
描述
类型
JobsDetail
Response
任务的详细信息
Container
Container 节点 JobsDetail 的内容:

节点名称(关键字)
父节点
描述
类型
Code
Response.JobsDetail
错误码,只有 State 为 Failed 时有意义
String
Message
Response.JobsDetail
错误描述,只有 State 为 Failed 时有意义
String
JobId
Response.JobsDetail
新创建任务的 ID
String
Tag
Response.JobsDetail
新创建任务的 Tag:Concat
String
State
Response.JobsDetail
任务的状态,为 Submitted、Running、Success、Failed、Pause、Cancel 其中一个
String
CreationTime
Response.JobsDetail
任务的创建时间
String
StartTime
Response.JobsDetail
任务的开始时间
String
EndTime
Response.JobsDetail
任务的结束时间
String
QueueId
Response.JobsDetail
任务所属的队列 ID
String
Input
Response.JobsDetail
该任务的输入资源地址
Container
Operation
Response.JobsDetail
该任务的规则
Container
Container 节点 Input 的内容:
节点名称(关键字)
父节点
描述
类型
Region
Response.JobsDetail.Input
存储桶的地域
String
Bucket
Response.JobsDetail.Input
存储结果的存储桶
String
Object
Response.JobsDetail.Input
输出结果的文件名
String
Container 节点 Operation 的内容:
节点名称(关键字)
父节点
描述
类型
TemplateId
Response.JobsDetail.Operation
任务的模板 ID
String
TemplateName
Response.JobsDetail.Operation
任务的模板名称, 当 TemplateId 存在时返回
String
ConcatTemplate
Response.JobsDetail.Operation
同请求中的 Request.Operation.ConcatTemplate
Container
Output
Response.JobsDetail.Operation
同请求中的 Request.Operation.Output
Container
MediaInfo
Response.JobsDetail.Operation
输出文件的媒体信息,任务未完成时不返回
Container
MediaResult
Response.JobsDetail.Operation
输出文件的基本信息,任务未完成时不返回
Container
UserData
Response.JobsDetail.Operation
透传用户信息
String
JobLevel
Response.JobsDetail.Operation
任务优先级
String
Container 节点 MediaInfo 的内容: 同 GenerateMediaInfo 接口中的 Response.MediaInfo 节点。
Container 节点 MediaResult 的内容:
节点名称(关键字)
父节点
描述
类型
OutputFile
Response.Operation.MediaResult
输出文件的基本信息
Container
Container 节点 OutputFile 的内容:
节点名称(关键字)
父节点
描述
类型
Bucket
Response.Operation.MediaResult.OutputFile
输出文件所在的存储桶
String
Region
Response.Operation.MediaResult.OutputFile
输出文件所在的存储桶所在的园区
String
ObjectName
Response.Operation.MediaResult.OutputFile
输出文件名,可能有多个
String 数组
Md5Info
Response.Operation.MediaResult.OutputFile
输出文件的 MD5 信息
Container 数组
Container 节点 Md5Info 的内容:
节点名称(关键字)
父节点
描述
类型
ObjectName
Response.Operation.MediaResult.OutputFile.Md5Info
输出文件名
String
Md5
Response.Operation.MediaResult.OutputFile.Md5Info
输出文件的 MD5 值
Container

错误码

常见的错误信息请参见 错误码 文档。

实际案例

请求1:使用拼接模板 ID

请求

POST /jobs HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR98****-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host:test-123456789.ci.ap-chongqing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Tag>Concat</Tag>
<Input>
<Object>input/demo.mp4</Object>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzh****=

<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c6f</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<Tag>Concat</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<TemplateName>concat_demo</TemplateName>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>

请求2:使用拼接参数

请求

POST /jobs HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR98****-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host:test-123456789.ci.ap-chongqing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Tag>Concat</Tag>
<Input>
<Object>input/demo.mp4</Object>
</Input>
<Operation>
<ConcatTemplate>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/start.mp4</Url>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/end.mp4</Url>
</ConcatFragment>
<Audio>
<Codec>mp3</Codec>
</Audio>
<Video>
<Codec>H.264</Codec>
<Bitrate>1000</Bitrate>
<Width>1280</Width>
<Height>720</Height>
<Fps>30</Fps>
</Video>
<Container>
<Format>mp4</Format>
</Container>
<AudioMix>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMix>
</ConcatTemplate>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzh****=

<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c5d</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<Tag>Concat</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<ConcatTemplate>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/start.mp4</Url>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/end.mp4</Url>
</ConcatFragment>
<Audio>
<Codec>mp3</Codec>
</Audio>
<Video>
<Codec>H.264</Codec>
<Bitrate>1000</Bitrate>
<Width>1280</Width>
<Height>720</Height>
<Fps>30</Fps>
</Video>
<Container>
<Format>mp4</Format>
</Container>
<AudioMix>
<AudioSource>https://test-123456789.cos.ap-chongqing.myqcloud.com/mix.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMix>
<Index>1</Index>
</ConcatTemplate>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>

请求3:多文件拼接

请求

POST /jobs HTTP/1.1
Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR98****-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host:test-123456789.ci.ap-chongqing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Tag>Concat</Tag>
<Operation>
<ConcatTemplate>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/start.mp4</Url>
<FragmentIndex>0</FragmentIndex>
<StartTime>0</StartTime>
<EndTime>6</EndTime>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/middle.mp4</Url>
<FragmentIndex>1</FragmentIndex>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/end.mp4</Url>
<FragmentIndex>2</FragmentIndex>
<StartTime>5</StartTime>
<EndTime>10</EndTime>
</ConcatFragment>
<Container>
<Format>mp4</Format>
</Container>
</ConcatTemplate>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Mon, 28 Jun 2022 15:23:12 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzh****=

<Response>
<JobsDetail>
<Code>Success</Code>
<Message/>
<JobId>j8d121820f5e411ec926ef19d53ba9c5d</JobId>
<State>Submitted</State>
<CreationTime>2022-06-27T15:23:10+0800</CreationTime>
<StartTime>-</StartTime>
<EndTime>-</EndTime>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<Tag>Concat</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<ConcatTemplate>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/start.mp4</Url>
<StartTime>0</StartTime>
<EndTime>6</EndTime>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/middle.mp4</Url>
</ConcatFragment>
<ConcatFragment>
<Url>http://test-123456789.cos.ap-chongqing.myqcloud.com/end.mp4</Url>
<StartTime>5</StartTime>
<EndTime>10</EndTime>
</ConcatFragment>
<Container>
<Format>mp4</Format>
</Container>
</ConcatTemplate>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out.mp4</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
</JobsDetail>
</Response>