简介
本文档提供关于拼接模板接口的 API 概览和 SDK 示例代码。
新增拼接模板
功能说明
用于新增拼接模板。
方法原型
public Guzzle\\Service\\Resource\\Model createMediaConcatTemplate(array $args = array());
请求示例
<?phprequire 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,'schema' => 'https', //协议头部,默认为http'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {// https://cloud.tencent.com/document/product/436/54041 新增拼接模板$result = $cosClient->createMediaConcatTemplate(array('Bucket' => 'examplebucket-125000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket'Tag' => 'Concat','Name' => 'Concat-Template-Name','ConcatTemplate' => array('ConcatFragments' => array(array('Mode' => 'Start','Url' => 'https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video01.mp4',),array('Mode' => 'End','Url' => 'https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video02.mp4',),),'Audio' => array('Codec' => 'aac','Samplerate' => '','Bitrate' => '','Channels' => '',),'Video' => array('Codec' => 'h.264','Width' => '','Height' => '','Fps' => '','Bitrate' => '','Remove' => 'false',),'Container' => array('Format' => 'mp4',),),));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
Request 中的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 |
Tag | Request | 模板类型:Concat | String | 是 |
Name | Request | 模板名称仅支持中文、英文、数字、_、-和* | String | 是 |
ConcatTemplate | Request | 拼接模板 | Container | 是 |
Container 类型 ConcatTemplate 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
ConcatFragment | Request.ConcatTemplate | 拼接节点 | Container | 是 | 无 | 无 |
Audio | Request.ConcatTemplate | 音频参数 | Container | 否 | 媒体原始值 | 目标文件不需要 Audio 信息, 需要设置 Audio.Remove 为 true |
Video | Request.ConcatTemplate | 视频参数 | Container | 否 | 媒体原始值 | 目标文件不需要 Video 信息, 需要设置 Video.Remove 为 true |
Container | Request.ConcatTemplate | 封装格式 | Container | 是 | 无 | 无 |
Container 类型 ConcatFragment 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Url | Request.ConcatTemplate. ConcatFragment | 拼接对象地址 | String | 是 | 无 | 同 bucket 对象文件 |
Mode | Request.ConcatTemplate. ConcatFragment | 节点类型 | String | 是 | 无 | Start:开头 End:结尾 |
Container 类型 Audio 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Codec | Request.ConcatTemplate. Audio | 编解码格式 | String | 是 | 文件原编码 | 取值 aac、mp3 |
Samplerate | Request.ConcatTemplate. Audio | 采样率 | String | 否 | 文件原采样率 | 单位:Hz 可选 11025、22050、32000、44100、48000、96000 不同的封装,mp3 支持不同的采样率,如下表所示 |
Bitrate | Request.ConcatTemplate. Audio | 音频码率 | String | 否 | 文件原音频码率 | 单位:Kbps 值范围:[8,1000] |
Channels | Request.ConcatTemplate. Audio | 声道数 | String | 否 | 文件原声道数 | 当 Codec 设置为 aac,支持1、2、4、5、6、8 当 Codec 设置为 mp3,支持1、2 |
Y表示支持这种采样率,N表示不支持
封装格式/音频采样率 | 11025 | 22050 | 32000 | 44100 | 48000 | 96000 |
mp3 | Y | Y | Y | Y | Y | N |
Container 类型 Container 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 |
Format | Request.ConcatTemplate. Container | 容器格式:mp4,flv,hls,ts, mp3, aac | String | 是 |
Container 类型 Video 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Codec | Request.ConcatTemplate. Video | 编解码格式 | String | 是 | H.264 | H.264 |
Width | Request.ConcatTemplate. Video | 宽 | String | 否 | 视频原始宽度 | 值范围:[128,4096] 单位:px 若只设置 Width 时,按照视频原始比例计算 Height |
Height | Request.ConcatTemplate. Video | 高 | String | 否 | 视频原始高度 | 值范围:[128,4096] 单位:px 若只设置 Height 时,按照视频原始比例计算 Width |
Fps | Request.ConcatTemplate. Video | 帧率 | String | 否 | 视频原始帧率 | 值范围:(0,60] 单位:fps |
Bitrate | Request.ConcatTemplate. Video | 视频输出文件的码率 | String | 否 | 视频原始码率 | 值范围:[10,50000] 单位:Kbps |
Remove | Request.ConcatTemplate. Video | 是否删除视频流 | String | 否 | false | 取值 true、false |
返回结果示例
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] => NjJhODRmNWJfNzgwYzdAJIOSJDOIJSDOxMTg1MGI=[ContentType] => application/xml[ContentLength] => 1434[Bucket] => examplebucket-125000000[Location] => examplebucket-125000000.ci.ap-guangzhou.myqcloud.com/template[Response] => Array([RequestId] => NjJhODRmNWJfNzgwYzdAJIOSJDOIJSDOxMTg1MGI=[Template] => Array([TemplateId] => t1dc71b980da09sd80s9aba4b159[Name] => Concat-Template-Name[State] => Normal[Tag] => Concat[CreateTime] => 2022-06-14T17:05:32+0800[UpdateTime] => 2022-06-14T17:05:32+0800[BucketId] => examplebucket-125000000[Category] => Custom[ConcatTemplate] => Array([ConcatFragment] => Array([0] => Array([Mode] => Start[Url] => https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video01.mp4)[1] => Array([Mode] => End[Url] => https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video02.mp4))[Audio] => Array([Codec] => aac[Samplerate] => 11025[Bitrate] => 88[Channels] => 2[Remove] => false)[Video] => Array([Codec] => H.264[Width] => 400[Height] => 400[Fps] => 30[Bitrate] => 1000[Remove] => false)[Container] => Array([Format] => mp4)[DirectConcat] => false))))
更新拼接模板
功能说明
用于更新拼接模板。
方法原型
public Guzzle\\Service\\Resource\\Model updateMediaConcatTemplate(array $args = array());
请求示例
<?phprequire 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,'schema' => 'https', //协议头部,默认为 http'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {// https://cloud.tencent.com/document/product/436/54044 更新拼接模板$result = $cosClient->updateMediaConcatTemplate(array('Bucket' => 'examplebucket-125000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => '', // TemplateId'Tag' => 'Concat','Name' => 'Concat-Template-Name','ConcatTemplate' => array('ConcatFragments' => array(array('Mode' => 'Start','Url' => 'https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video01.mp4',),array('Mode' => 'End','Url' => 'https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video02.mp4',),),'Audio' => array('Codec' => 'aac','Samplerate' => '','Bitrate' => '','Channels' => '',),'Video' => array('Codec' => 'h.264','Width' => '','Height' => '','Fps' => '','Bitrate' => '','Remove' => 'false',),'Container' => array('Format' => 'mp4',),),));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
Request 中的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 |
Tag | Request | 模板类型:Concat | String | 是 |
Name | Request | 模板名称仅支持中文、英文、数字、_、-和* | String | 是 |
ConcatTemplate | Request | 拼接模板 | Container | 是 |
Container 类型 ConcatTemplate 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
ConcatFragment | Request.ConcatTemplate | 拼接节点 | Container | 是 | 无 | 无 |
Audio | Request.ConcatTemplate | 音频参数 | Container | 否 | 无 | 目标文件不需要 Audio 信息, 需要设置 Audio.Remove 为 true |
Video | Request.ConcatTemplate | 视频参数 | Container | 否 | 无 | 目标文件不需要 Video 信息, 需要设置 Video.Remove 为 true |
Container | Request.ConcatTemplate | 封装格式 | Container | 是 | 无 | 无 |
Container 类型 ConcatFragment 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Url | Request.ConcatTemplate. ConcatFragment | 拼接对象地址 | String | 是 | 无 | 同 bucket 对象文件 |
Mode | Request.ConcatTemplate. ConcatFragment | 节点类型 | String | 是 | 无 | Start:开头 End:结尾 |
Container 类型 Audio 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Codec | Request.ConcatTemplate. Audio | 编解码格式 | String | 否 | 文件原编码 | 取值 aac、mp3 |
Samplerate | Request.ConcatTemplate. Audio | 采样率 | String | 否 | 文件原采样率 | 单位:Hz 可选 11025、22050、32000、44100、48000、96000 不同的封装,mp3 支持不同的采样率,如下表所示 |
Bitrate | Request.ConcatTemplate. Audio | 音频码率 | String | 否 | 文件原音频码率 | 单位:Kbps 值范围:[8,1000] |
Channels | Request.ConcatTemplate. Audio | 声道数 | String | 否 | 文件原声道数 | 当 Codec 设置为 aac,支持1、2、4、5、6、8 当 Codec 设置为 mp3,支持1、2 |
Y表示支持这种采样率,N表示不支持
封装格式/音频采样率 | 11025 | 22050 | 32000 | 44100 | 48000 | 96000 |
mp3 | Y | Y | Y | Y | Y | N |
Container 类型 Container 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 |
Format | Request.ConcatTemplate. Container | 容器格式:mp4,flv,hls,ts, mp3, aac | String | 是 |
Container 类型 Video 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Codec | Request.ConcatTemplate. Video | 编解码格式 | String | 否 | H.264 | H.264 |
Width | Request.ConcatTemplate. Video | 宽 | String | 否 | 视频原始宽度 | 值范围:[128,4096] 单位:px 若只设置 Width 时,按照视频原始比例计算 Height |
Height | Request.ConcatTemplate. Video | 高 | String | 否 | 视频原始高度 | 值范围:[128,4096] 单位:px 若只设置 Height 时,按照视频原始比例计算 Width |
Fps | Request.ConcatTemplate. Video | 帧率 | String | 否 | 视频原始帧率 | 值范围:(0,60] 单位:fps |
Bitrate | Request.ConcatTemplate. Video | 视频输出文件的码率 | String | 否 | 视频原始码率 | 值范围:[10,50000] 单位:Kbps |
Remove | Request.ConcatTemplate. Video | 是否删除视频流 | String | 否 | false | 取值 true、false |
返回结果示例
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] => NjJhODUxMTdfZmNjYTNiMAIOSDJIOSDTY5M2U=[ContentType] => application/xml[ContentLength] => 1436[Key] => t1dc71b2bc221as8d90as8d0959[Bucket] => examplebucket-125000000[Location] => examplebucket-125000000.ci.ap-guangzhou.myqcloud.com/template/t1dc71b2bc221as8d90as8d0959[Response] => Array([RequestId] => NjJhODUxMTdfZmNjYTNiMAIOSDJIOSDTY5M2U=[Template] => Array([TemplateId] => t1dc71b2bc221as8d90as8d0959[Name] => Concat-Template-Name[State] => Normal[Tag] => Concat[CreateTime] => 2022-06-14T17:05:32+0800[UpdateTime] => 2022-06-14T17:12:55+0800[BucketId] => examplebucket-125000000[Category] => Custom[ConcatTemplate] => Array([ConcatFragment] => Array([0] => Array([Mode] => Start[Url] => https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video01.mp4)[1] => Array([Mode] => End[Url] => https://examplebucket-125000000.cos.ap-guangzhou.myqcloud.com/video02.mp4))[Audio] => Array([Codec] => aac[Samplerate] => 11025[Bitrate] => 88[Channels] => 2[Remove] => false)[Video] => Array([Codec] => H.264[Width] => 400[Height] => 400[Fps] => 30[Bitrate] => 1000[Remove] => false)[Container] => Array([Format] => mp4)[DirectConcat] => false))))