功能描述
提交一个音视频分段任务。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
请求
请求示例
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>
说明:
请求头
此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。
请求体
该请求操作的实现需要有如下请求体。
<Request>
<Tag>Segment</Tag>
<Input>
<Object>input/demo.mp4</Object>
</Input>
<Operation>
<Segment>
<Format>hls</Format>
<Duration>5</Duration>
<HlsEncrypt>
<IsHlsEncrypt>true</IsHlsEncrypt>
<UriKey>test-key</UriKey>
</HlsEncrypt>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out-${Number}</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:Segment | 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 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
Segment | Request.Operation | 指定转封装参数 | Container | 是 |
Output | Request.Operation | 结果输出地址 | Container | 是 |
JobLevel | Request.Operation | 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0 | String | 否 |
Container 类型 Segment 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 | 限制 |
---|---|---|---|---|---|
Format | Request.Operation.Segment | 封装格式 | String | 是 | aac、mp3、flac、mp4、ts、mkv、avi、hls、m3u8 |
Duration | Request.Operation.Segment | 转封装时长,单位:秒 | String | 否 | 不小于5的整数 |
TranscodeIndex | Request.Operation.Segment | 指定处理的流编号,对应媒体信息中的 Response.MediaInfo.Stream.Video.Index 和 Response.MediaInfo.Stream.Audio.Index,详见 获取媒体信息接口 |
String | 否 | 无 |
HlsEncrypt | Request.Operation.Segment | hls 加密配置 | Container | 否 | 无, 只有当封装格式为 hls 时生效 |
Container 类型 HlsEncrypt 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
---|---|---|---|---|---|---|
IsHlsEncrypt | Request.Operation.Segment.HlsEncrypt | 是否开启 HLS 加密 | String | 否 | false | 1. true/false 2. Segment.Format 为 HLS 时支持加密 |
UriKey | Request.Operation.Segment.HlsEncrypt | HLS 加密的 key | String | 否 | 无 | 当 IsHlsEncrypt 为 true 时,该参数才有意义 |
Container 类型 Output 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
---|---|---|---|---|
Region | Request.Operation.Output | 存储桶的地域 | String | 是 |
Bucket | Request.Operation.Output | 存储结果的存储桶 | String | 是 |
Object | Request.Operation.Output | 输出结果的文件名,如果设置了Duration, 且 Format 不为 HLS 或 m3u8 时, 文件名必须包含${Number}参数作为自定义转封装后每一小段音/视频流的输出序号 | 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>Segment</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<Segment>
<Format>hls</Format>
<Duration>5</Duration>
<HlsEncrypt>
<IsHlsEncrypt>true</IsHlsEncrypt>
<UriKey>test-key</UriKey>
</HlsEncrypt>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out-${Number}</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</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:Segment | 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 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
Segment | Response.JobsDetail.Operation | 同请求中的 Request.Operation.Segment | 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:mp4转封装
POST /jobs HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Tag>Segment</Tag>
<Input>
<Object>input/demo.mkv</Object>
</Input>
<Operation>
<Segment>
<Format>mp4</Format>
<Duration>15</Duration>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out-${Number}</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>
响应1
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: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<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>Segment</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mkv</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<Segment>
<Format>mp4</Format>
<Duration>15</Duration>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out-${Number}</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</JobsDetail>
</Response>
请求2:hls转封装并加密
POST /jobs HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml
<Request>
<Tag>Segment</Tag>
<Input>
<Object>input/demo.mp4</Object>
</Input>
<Operation>
<Segment>
<Format>hls</Format>
<Duration>5</Duration>
<HlsEncrypt>
<IsHlsEncrypt>true</IsHlsEncrypt>
<UriKey>test-key</UriKey>
</HlsEncrypt>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out-${Number}</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>
响应2
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: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<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>Segment</Tag>
<Input>
<BucketId>test-123456789</BucketId>
<Object>input/demo.mp4</Object>
<Region>ap-chongqing</Region>
</Input>
<Operation>
<Segment>
<Format>hls</Format>
<Duration>5</Duration>
<HlsEncrypt>
<IsHlsEncrypt>true</IsHlsEncrypt>
<UriKey>test-key</UriKey>
</HlsEncrypt>
</Segment>
<Output>
<Region>ap-chongqing</Region>
<Bucket>test-123456789</Bucket>
<Object>output/out</Object>
</Output>
<UserData>This is my data.</UserData>
<JobLevel>0</JobLevel>
</Operation>
<QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
<CallBack>http://callback.demo.com</CallBack>
<CallBackFormat>JSON<CallBackFormat>
</JobsDetail>
</Response>