简介
本文档提供关于拼接模板接口的 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 | 模板名称仅支持中文、英文、数字、_、-和*,长度不超过64 | String | 是 |
ConcatTemplate | Request | 拼接模板 | Container | 是 |
Container 类型
ConcatTemplate
的具体数据描述如下:节点名称(关键字) | 父节点 | 描述 | 类型 | 默认值 | 是否必选 |
ConcatFragment | Request.ConcatTemplate | 拼接节点,可拼接100个数量以内的文件。 | Container 数组 | 无 | 否 |
Audio | Request.ConcatTemplate | 音频参数 | Container | 媒体原始值 | 否 |
Video | Request.ConcatTemplate | 视频参数 | Container | 媒体原始值 | 否 |
Container | Request.ConcatTemplate | 封装格式 | Container | 无 | 是 |
AudioMix | Request.ConcatTemplate | Container | 无 | 否 | |
AudioMixArray | Request.ConcatTemplate | 混音参数,最多同时传2个 | Container 数组 | 无 | 否 |
DirectConcat | Request.ConcatTemplate | 只拼接不转码,取值 true/ false | String | false | 否 |
SceneChangeInfo | Request.ConcatTemplate | 转场参数 | Container | 无 | 否 |
说明:
AudioMix 和 AudioMixArray 在 Audio.Remove 为 false 时生效。
AudioMixArray 是一个数组,每一个子项内容同 AudioMix 。AudioMix 优先级更高,设置 AudioMix 时,AudioMixArray 无效。
Container 数组 类型
ConcatFragment
的具体数据描述如下:节点名称(关键字) | 父节点 | 描述 | 类型 | 默认值 | 是否必选 |
Url | Request.ConcatTemplate.ConcatFragment | 拼接对象地址 | String | 无 | 是 |
Mode | Request.ConcatTemplate.ConcatFragment | 节点类型 Start:开头 End:结尾 | String | 无 | 是 |
StartTime | Request.ConcatTemplate.ConcatFragment | 开始时间,单位为秒, 支持 float 格式,执行精度精确到毫秒,当 Request.ConcatTemplate.DirectConcat 为 true 时不生效 | String | 无 | 否 |
EndTime | Request.ConcatTemplate.ConcatFragment | 结束时间,单位为秒, 支持 float 格式,执行精度精确到毫秒,当 Request.ConcatTemplate.DirectConcat 为 true 时不生效 | String | 无 | 否 |
Duration | Request.ConcatTemplate.ConcatFragment | 持续时间, 当 Url 为图片地址时生效。单位为秒,精确度毫秒 ,范围(0,20] | String | 2 | 否 |
Container 类型
Audio
的具体数据描述如下:节点名称(关键字) | 父节点 | 描述 | 类型 | 默认值 | 是否必选 |
Codec | Request.ConcatTemplate.Audio | 编解码格式,取值 aac、mp3 | String | 无 | 是 |
Samplerate | Request.ConcatTemplate.Audio | 采样率 单位:Hz 可选 11025、22050、32000、44100、48000、96000 不同的封装,mp3 支持不同的采样率,如下表所示 | String | 文件原采样率 | 否 |
Bitrate | Request.ConcatTemplate.Audio | 音频码率 单位:Kbps 值范围:[8,1000] | String | 文件原音频码率 | 否 |
Channels | Request.ConcatTemplate.Audio | 声道数 当 Codec 设置为 aac,支持1、2、4、5、6、8 当 Codec 设置为 mp3,支持1、2 | String | 文件原声道数 | 否 |
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 | 编解码格式,取值 H.264,H.265 | String | H.264 | 是 |
Width | Request.ConcatTemplate.Video | 宽 值范围:[128,4096] 单位:px 若只设置 Width 时,按照视频原始比例计算 Height 必须为偶数 | String | 视频原始宽度 | 否 |
Height | Request.ConcatTemplate.Video | 高 值范围:[128,4096] 单位:px 若只设置 Height 时,按照视频原始比例计算 Width 必须为偶数 | String | 视频原始高度 | 否 |
Fps | Request.ConcatTemplate.Video | 帧率 值范围:(0,60] 单位:fps | String | 视频原始帧率 | 否 |
Bitrate | Request.ConcatTemplate.Video | 视频输出文件的码率 值范围:[10,50000] 单位:Kbps | String | 视频原始码率 | 否 |
Crf | Request.ConcatTemplate.Video | 码率-质量控制因子 值范围:(0, 51] 如果设置了 Crf,则 Bitrate 的设置失效 当 Bitrate 为空时,默认为25 | String | 视频原始码率 | 否 |
Remove | Request.ConcatTemplate.Video | 是否删除视频流,取值 true、false | String | false | 否 |
Rotate | Request.ConcatTemplate.Video | 旋转角度 值范围:[0, 360) 单位:度 | String | 无 | 否 |
Container 类型
SceneChangeInfo
的具体数据描述如下:节点名称(关键字) | 父节点 | 描述 | 类型 | 必选 | 默认值 | 限制 |
Mode | Request.ConcatTemplate.SceneChangeInfo | 转场模式 | String | 是 | 无 | Default:不添加转场特效 FADE:淡入淡出 GRADIENT:渐变 XFADE:Xfade 转场效果 |
Time | Request.ConcatTemplate.SceneChangeInfo | 转场时长 | String | 否 | 3 | 单位:秒(s) 取值范围:(0, 5], 支持小数 |
TransitionType | Request.ConcatTemplate.SceneChangeInfo | String | 否 | 无 | custom fade wipeleft wiperight wipeup wipedown slideleft slideright slideup slidedown circlecrop rectcrop distance fadeblack fadewhite radial smoothleft smoothright smoothup smoothdown circleopen circleclose vertopen vertclose horzopen horzclose dissolve pixelize diagtl diagtr diagbl diagbr hlslice hrslice vuslice vdslice hblur fadegrays wipetl wipetr wipebl wipebr squeezeh squeezev zoomin fadefast fadeslow hlwind hrwind vuwind vdwind coverleft coverright coverup coverdown revealleft revealright revealup revealdown |
返回结果示例
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 中的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Key | 无 | 模版 ID | String | 是 |
Request | 无 | Container | 是 |
返回结果示例
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))))