有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

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

提交转封装任务

功能说明

提交转封装任务。

方法原型

public Guzzle\\Service\\Resource\\Model createMediaSegmentJobs(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 {
// 提交转封装任务 https://cloud.tencent.com/document/product/436/67186
$result = $cosClient->createMediaSegmentJobs(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'Segment',
// 'QueueId' => 'p81e648af2aee496885707ca0xxxxxxxxx',
'Input' => array(
'Object' => 'video01.mp4'
),
'Operation' => array(
'Segment' => array(
'Format' => 'mkv',
'Duration' => '5',
'HlsEncrypt' => array(
'IsHlsEncrypt' => 'false',
'UriKey' => '',
),
),
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-1250000000',
'Object' => 'Segment-trans${Number}.mkv',
),
// 'UserData' => 'xxx', // 透传用户信息
// 'JobLevel' => '0', // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0
),
'CallBack' => '',
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Tag
Request
创建任务的 Tag:Segment
String
Input
Request
待操作的媒体信息
Container
Operation
Request
操作规则
Container
QueueId
Request
任务所在的 队列 ID
String
CallBack
Request
回调地址
String
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Object
Request.Input
媒体文件名
String
Container 类型 Operation 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Segment
Request.Operation
指定转封装参数
Container
Output
Request.Operation
结果输出地址
Container
Container 类型 Segment 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
限制
Format
Request.Operation.Segment
封装格式
String
aac、mp3、flac、mp4、ts、mkv、avi、hls、m3u8
Duration
Request.Operation.Segment
转封装时长,单位:秒
String
不小于5的整数
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

返回结果示例

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] => NjI2YTA2MzZfZAODIJAIODJAIODZF8xNjc2YTA=
[ContentType] => application/xml
[ContentLength] => 866
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/jobs
[Response] => Array
(
[JobsDetail] => Array
(
[Code] => Success
[CreationTime] => 2022-04-28T11:12:54+0800
[EndTime] => -
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Object] => video01.mp4
[Region] => ap-guangzhou
)

[JobId] => j184996a2c6a111ec954767a8248f19aa
[Message] =>
[Operation] => Array
(
[Output] => Array
(
[Bucket] => examplebucket-1250000000
[Object] => Segment-trans${Number}.mkv
[Region] => ap-guangzhou
)

[Segment] => Array
(
[Duration] => 10
[Format] => mkv
[HlsEncrypt] => Array
(
[IsHlsEncrypt] => false
[UriKey] =>
)

)
[UserData] => xxx
[JobLevel] => 0
)

[QueueId] => p81e648af2az8x7ca0898s0dasbe086
[StartTime] => -
[State] => Submitted
[Tag] => Segment
)

)

)

查询任务结果

功能说明

查询指定的任务。

方法原型

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