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

简介

本文档提供关于提交拼接任务的 API 概览和 SDK 示例代码。
API
操作描述
提交一个拼接任务
查询指定的任务

提交拼接任务

功能说明

用于提交一个拼接任务。

方法原型

public Guzzle\\Service\\Resource\\Model createMediaConcatJobs(array $args = array());

请求示例

示例一: 使用模板

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
$result = $cosClient->createMediaConcatJobs(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'Concat',
// 'QueueId' => 'asdadadfafsdkjhfjghdfjg',
'CallBack' => 'https://example.com/callback',
'Input' => array(
'Object' => 'video01.mp4'
),
'Operation' => array(
'TemplateId' => 'asdfafiahfiushdfisdhfuis',
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Object' => 'concat-video02.mp4',
),
// 'UserData' => 'xxx', // 透传用户信息
// 'JobLevel' => '0', // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0
),
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

示例二: 自定义参数

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
$result = $cosClient->createMediaConcatJobs(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'Concat',
// 'QueueId' => 'asdadadfafsdkjhfjghdfjg',
'CallBack' => 'https://example.com/callback',
'Input' => array(
'Object' => 'video01.mp4'
),
'Operation' => array(
// 'UserData' => 'xxx', // 透传用户信息
// 'JobLevel' => '0', // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Object' => 'concat-video03.mp4',
),
'ConcatTemplate' => array(
'ConcatFragments' => array(
array(
'Url' => 'https://example.com/video01.mp4',
'Mode' => 'Start',
// 'StartTime' => '0',
// 'EndTime' => '7',
),
array(
'Url' => 'https://example.com/video02.mp4',
'Mode' => 'Start',
// 'StartTime' => '0',
// 'EndTime' => '10',
),
// ... repeated
),
'Index' => 1,
'Container' => array(
'Format' => 'mp4'
),
'Audio' => array(
'Codec' => 'mp3',
'Samplerate' => '',
'Bitrate' => '',
'Channels' => '',
),
'Video' => array(
'Codec' => 'H.264',
'Bitrate' => '1000',
'Width' => '1280',
'Height' => '',
'Fps' => '30',
),
),
),
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

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
音频参数,同 创建拼接模板 接口中的 Request.ConcatTemplate.Audio
Container
Video
Request.Operation. ConcatTemplate
视频参数,同 创建拼接模板 接口中的 Request.ConcatTemplate.Video
Container
Container
Request.Operation. ConcatTemplate
封装格式,同 创建拼接模板 接口中的 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

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[Body] => GuzzleHttp\\Psr7\\Stream Object
(
[stream:GuzzleHttp\\Psr7\\Stream:private] => Resource id #88
[size:GuzzleHttp\\Psr7\\Stream:private] =>
[seekable:GuzzleHttp\\Psr7\\Stream:private] => 1
[readable:GuzzleHttp\\Psr7\\Stream:private] => 1
[writable:GuzzleHttp\\Psr7\\Stream:private] => 1
[uri:GuzzleHttp\\Psr7\\Stream:private] => php://temp
[customMetadata:GuzzleHttp\\Psr7\\Stream:private] => Array
(
)

)

[RequestId] => NjI2MjFhOTHASIUDHAUISDHl8yMjMxNmE=
[ContentType] => application/xml
[ContentLength] => 792
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-beijing.myqcloud.com/jobs
[Response] => Array
(
[JobsDetail] => Array
(
[Code] => Success
[CreationTime] => 2022-04-22T11:01:42+0800
[EndTime] => -
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Object] => video01.mp4
[Region] => ap-beijing
)

[JobId] => j898f573asd780a8sd90a8sd09e30cf31f
[Message] =>
[Operation] => Array
(
[Output] => Array
(
[Bucket] => examplebucket-1250000000
[Object] => concat-video01.mp4
[Region] => ap-beijing
)

[TemplateId] => t17b9c2e7a0s8d0a8d0a9d43552f648e
[TemplateName] => concat-1
[UserData] => xxx
[TemplateName] => 0
)

[QueueId] => p81e648af2aeas78d0a8d09a8d09757be086
[StartTime] => -
[State] => Submitted
[Tag] => Concat
)

)

)

查询任务结果

功能说明

查询指定的任务。

方法原型

public Guzzle\\Service\\Resource\\Model describeMediaJob(array $args = array());

请求示例

<?php

require dirname(__FILE__) . '/../vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// 查询指定的任务
$result = $cosClient->describeMediaJob(array(
'Bucket' => 'examplebucket-125000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => '', // jobId
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
参数名称
类型
描述
是否必填
Bucket
String
存储桶名称,格式:BucketName-APPID
Key
String
需要查询的任务 ID

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjRkMNjRjMjIxODBfMzUxNGSIOJOIDAJOIDg=
[ContentType] => application/xml
[ContentLength] => 1836
[Key] => j7380pc7a00f19asf798sd7f89s7f2e646
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/jobs/j7380pc7a00f19asf798sd7f89s7f2e646
[Response] => Array
(
[JobsDetail] => Array
(
[Code] => Success
[CreationTime] => 2023-08-07T16:07:28+0800
[EndTime] => 2023-08-07T16:07:29+0800
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Object] => object
[Region] => ap-guangzhou
)

[JobId] => j7380pc7a00f19asf798sd7f89s7f2e646
[Message] =>
[Operation] => Array
(
[JobLevel] => 0
[Output] => Array
(
[Bucket] => examplebucket-1250000000
[Object] => tmp/out_object
[Region] => ap-guangzhou
)

[TemplateId] => t0pc7a00f19asf798sd7f89s7f2e646
[TemplateName] => TemplateName
)

[QueueId] => pc6f4d28f798sd7f89s7f2e646bffb5a
[QueueType] => QueueType
[StartTime] => 2023-08-07T16:07:28+0800
[State] => Success
[Tag] => Tag
)
)
)