简介
本文档提供关于生成播放列表的相关 API 概览以及 SDK 示例代码。
API | 操作描述 |
生成边转边播的播放列表能够分析视频文件产出 m3u8 文件。生成播放列表后即时播放,并根据播放进度实施按需转码,相比离线转码能极大减少了转码等待时间并大幅度降低了转码和存储开销。 |
生成播放列表
功能说明
生成边转边播的播放列表能够分析视频文件产出 m3u8 文件。生成播放列表后即时播放,并根据播放进度实施按需转码,相比离线转码能极大减少了转码等待时间并大幅度降低了转码和存储开销。
示例代码
<?phprequire dirname(__FILE__, 2) . '/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', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {//生成边转边播的播放列表能够分析视频文件产出 m3u8 文件。生成播放列表后即时播放,并根据播放进度实施按需转码,相比离线转码能极大减少了转码等待时间并大幅度降低了转码和存储开销$result = $cosClient->GeneratePlayList(array('Bucket' => 'test-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Headers' => array('Content-Type' => 'application/xml',),'Tag'=> 'GeneratePlayList', // 创建任务的Tag:GeneratePlayList;是否必传:是// 待操作的文件信息;是否必传:是'Input'=> array('Object'=> '', // 文件路径;是否必传:否),// 操作规则;是否必传:是 'Operation'=> array( // 转码模板参数;是否必传:是 'Transcode'=> array( // 同创建转码模板接口中的 Request.Container;是否必传:是 'Container'=> array( 'Format'=> 'hls', // 封装格式,取值范围 hls,默认 hls;是否必传:否 // 分片配置;是否必传:否 'ClipConfig'=> array( 'Duration'=> '5', // 分片时长,单位秒,默认 5s,取值范围 [3, 8];是否必传:否 ), ), // 同创建转码模板接口中的 Request.Video;是否必传:是 'Video'=> array( 'Codec'=> 'H.264', // 编码格式,默认 H.264 ,目前仅支持 H.264;是否必传:否 'Width'=> '1080', // 视频宽,单位 px ,范围 [256, 4096], 如果只设置 Width,Height 按照视频原始比例计算,必须为 8 的倍数,默认原视频宽;是否必传:否 'Height'=> '1920', // 视频高,单位 px ,范围 [256, 4096], 如果只设置 Width 按照视频原始比例计算,必须为 8 的倍数,默认原视频宽;是否必传:否 'Bitrate'=> '25', // 视频输出码率,单位 Kbps,范围 [100, 10000],auto 表示自适应码率,默认原视频码率;是否必传:否 ), // 转码配置;是否必传:否 'TransConfig'=> array( ), ), // 结果输出配置;是否必传:是 'Output'=> array( 'Region'=> 'ap-chongqing', // 存储桶的地域;是否必传:是 'Bucket'=> 'test-123456789', // 存储结果的存储桶;是否必传:是 'Object'=> 'output/out.${ext}', // 输出结果的文件名;是否必传:是 ), 'UserData'=> 'This is my data.', // 透传用户信息, 可打印的 ASCII 码, 长度不超过1024;是否必传:否 'JobLevel'=> '0', // 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0;是否必传:否 ),));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
Tag | 创建任务的Tag:GeneratePlayList | string | 是 |
Input | 待操作的文件信息 | Container | 是 |
Operation | 操作规则 | Container | 是 |
CallBack | 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调 | string | 否 |
CallBackFormat | 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式 | string | 否 |
QueueType | 任务所在的队列类型,限制为 SpeedTranscoding, 表示为开启倍速转码 | string | 否 |
CallBackType | 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型 | string | 否 |
CallBackMqConfig | Container | 否 |
Input 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Object | 文件路径 | string | 否 |
Operation 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Transcode | 转码模板参数 | Container | 是 |
Output | 结果输出配置 | Container | 是 |
UserData | 透传用户信息, 可打印的 ASCII 码, 长度不超过1024 | string | 否 |
JobLevel | 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0 | string | 否 |
Output 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Region | 存储桶的地域 | string | 是 |
Bucket | 存储结果的存储桶 | string | 是 |
Object | 输出结果的文件名 | string | 是 |
Transcode 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Container | Container | 是 | |
Video | Container | 是 | |
TransConfig | 转码配置 | Container | 否 |
Container 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Format | 封装格式,取值范围 hls,默认 hls | string | 否 |
ClipConfig | 分片配置 | Container | 否 |
ClipConfig 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Duration | 分片时长,单位秒,默认 5s,取值范围 [3, 8] | string | 否 |
TransConfig 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
InitialClipNum | 初始转码分片个数,默认 0 | string | 否 |
CosTag | 输出m3u8文件对象的标签集合,最多可设置10个标签(例如,Key1=Value1&Key2=Value2)。 标签集合中的 Key 和 Value 必须先进行 URL 编码。 | string | 否 |
HlsEncrypt | hls 加密配置 | Container | 否 |
HlsEncrypt 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
IsHlsEncrypt | 是否开启 HLS 加密,取值 true/false,默认 false | string | 否 |
Video 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
Codec | 编码格式,默认 H.264 ,目前仅支持 H.264 | string | 否 |
Width | 视频宽,单位 px ,范围 [256, 4096], 如果只设置 Width,Height 按照视频原始比例计算,必须为 8 的倍数,默认原视频宽 | string | 否 |
Height | 视频高,单位 px ,范围 [256, 4096], 如果只设置 Width 按照视频原始比例计算,必须为 8 的倍数,默认原视频宽 | string | 否 |
Bitrate | 视频输出码率,单位 Kbps,范围 [100, 10000],auto 表示自适应码率,默认原视频码率 | string | 否 |
Fps | 帧率,单位 fps ,范围 (0, 30],默认 30 | string | 否 |
Gop | 关键帧间最大帧数,范围 [1, 100000],默认 2 | string | 否 |
Maxrate | 视频码率峰值,单位 Kbps ,范围 [10, 50000] | string | 否 |
CallBackMqConfig 的具体数据描述
参数名称 | 参数描述 | 类型 | 是否必填 |
MqRegion | 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港) | string | 是 |
MqMode | 消息队列使用模式,默认 Queue :主题订阅:Topic队列服务: Queue | string | 是 |
MqName | TDMQ 主题名称 | string | 是 |