API 文档

SDK 文档

诚邀爱技术、爱分享的你,成为文档内容共建者> HOT

功能描述

提交一个音视频分段任务。

推荐使用 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>

说明:

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

请求头

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

请求体

该请求操作的实现需要有如下请求体。

<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>

目录