控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

文档捉虫大赛火热进行中,好礼多多> 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,
        'schema' => '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
                )

        )

)

目录