SDK for PHP 使用指南

最近更新时间:2018-06-26 15:57:54

版本 时间 更新内容
V1.0 2016/12/14 新建
V1.1 2017/2/7 修改参数名及返回值为大驼峰
V1.2 2017/3/30 新增更新模版接口
V1.3 2017/4/27 新增轮播相关接口

1.概述

此 SDK 适用于PHP 5.5 及以上版本。基于直播转码 API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式调用金山云的直播转码服务。

2.初始化

2.1 ak/sk配置

在金山云控制台获取到ak/sk后创建以下文件:

mkdir ~/.ksyun && vi ~/.ksyun/config

config文件内容

{

    "ak":"********************",

    "sk":"****************************************"

}

2.2 composer安装

mkdir test && cd test

composer require kscsdk/ksyun_sdk

如果需要使用最新版本,安装完之后,修改composer.json为

{

    "require": {

        "kscsdk/ksyun_sdk": "dev-master"

    }

}

然后再执行更新操作

composer update

2.3 调试demo

cp vendor/kscsdk/ksyun_sdk/examples/demo_Ket.php .

php demo_Ket.php GetPresetList

2.4 调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$response = Ket::getInstance()->request('GetPresetList');

echo $response->getBody();

注:接口的传递的参数及返回值请参考《视频云直播转码接入说明》API接口说明

3.添加模板

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$preset = 'preset_demo'; // 模板名

$preset_data = [

    'Preset' => $preset,

    'App' => $app,

    'Description' => 'desc: preset demo',

    'Output' => [

        [

            'format' => [

                'output_format' => 256,

                'abr' => 60000,

                'vbr' => 800000,

                'fr' => 25,

                'logo_switch' => 1

            ]

        ],

        [

            'format' => [

                'output_format' => 257,

                'abr' => 70000,

                'vbr' => 700000,

                'fr' => 23,

                'logo_switch' => 0

            ]

        ]

    ],

    'Video' => [

        'logo' => [

            [

                'pic' => 'wangshuai9/ksyun.png',

                'short_side' => 480,

                'disable_scale' => 0,

                'offsetX' => 10,

                'offsetY' => -20

            ]

        ]

    ]

];

$response = Ket::getInstance()->request('Preset', ['query' => ['Uniqname' => $uniqname], 'json' => $preset_data]);

echo $response->getBody();

4.修改模板

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$preset = 'preset_demo'; // 模板名

$preset_data = [

    'Preset' => $preset,

    'App' => $app,

    'Description' => 'desc: preset demo',

    'Output' => [

        [

            'format' => [

                'output_format' => 256,

                'abr' => 60000,

                'vbr' => 800000,

                'fr' => 25,

                'logo_switch' => 1

            ]

        ],

        [

            'format' => [

                'output_format' => 257,

                'abr' => 70000,

                'vbr' => 700000,

                'fr' => 23,

                'logo_switch' => 0

            ]

        ]

    ],

    'Video' => [

        'logo' => [

            [

                'pic' => 'wangshuai9/ksyun.png',

                'short_side' => 480,

                'disable_scale' => 0,

                'offsetX' => 10,

                'offsetY' => -20

            ]

        ]

    ]

];

$response = Ket::getInstance()->request('UpdatePreset', ['query' => ['Uniqname' => $uniqname], 'json' => $preset_data]);

echo $response->getBody();

5.删除模板

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$preset = 'preset_demo'; // 模板名

$response = Ket::getInstance()->request('DelPreset', ['query' => ['Uniqname' => $uniqname, 'App' => $app, 'Preset' => $preset]]);

echo $response->getBody();

6.查询模板列表

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$response = Ket::getInstance()->request('GetPresetList', ['query' => ['Uniqname' => $uniqname, 'App' => $app]]);

echo $response->getBody();

7.查询模板详情

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$preset = 'preset_demo'; // 模板名

$response = Ket::getInstance()->request('GetPresetDetail', ['query' => ['Uniqname' => $uniqname, 'App' => $app, 'Preset' => $preset]]);

echo $response->getBody();

8.获取任务列表

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$response = Ket::getInstance()->request('GetStreamTranList', ['query' => ['Uniqname' => $uniqname, 'App' => $app]]);

echo $response->getBody();

9.发起外网拉流

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$streamid = 'stream20170101'; // 流名

$outpull_data = [

    'App' => $app,

    'StreamID' => $streamid,

    'SrcUrl' => 'rtmp://test.rtmplive.ks-cdn.com/live/streamdemo',

    'Params' => ''

];

$response = Ket::getInstance()->request('StartStreamPull', ['query' => ['Uniqname' => $uniqname], 'json' => $outpull_data ]);

echo $response->getBody();

10.停止外网拉流

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$streamid = 'stream20170101'; // 流名

$response = Ket::getInstance()->request('StopStreamPull', ['query' => ['Uniqname' => $uniqname], 'json' => ['App' => $app, 'StreamID' => $streamid]]);

echo $response->getBody();  

11.发起轮播

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$preset = 'preset_demo'; // 模板名

$uniqname = 'test'; // 用户名

$streamid = 'stream20170101'; // 流名

$loop_data = [

    'App' => $app,

    'Preset' => $preset,

    'StreamID' => $streamid,

    'PubDomain' => 'test.uplive.ksyun.com',

    'DurationHour' => 168,

    'SrcInfo' => array(

        array(

            'Path' => 'http://wangshuai9.ks3-cn-beijing.ksyun.com/ksyun.flv',

            'Index' => 0,

        )

    )

];

$response = Ket::getInstance()->request('StartLoop', ['query' => ['UniqName' => $uniqname], 'json' => $loop_data]);

echo $response->getBody();

12.停止轮播

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$streamid = 'stream20170101'; // 流名

$response = Ket::getInstance()->request('StopLoop', ['query' => ['UniqName' => $uniqname], 'json' => ['App' => $app, 'StreamID' => $streamid]]);

echo $response->getBody();

13.更新轮播时长

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$streamid = 'stream20170101'; // 流名

$response = Ket::getInstance()->request('UpdateLoop', ['query' => ['UniqName' => $uniqname], 'json' => ['App' => $app, 'StreamID' => $streamid, 'DurationHour' => 168]]);

echo $response->getBody();

14.获取轮播列表

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$app = 'live'; // 频道名

$uniqname = 'test'; // 用户名

$response = Ket::getInstance()->request('GetLoopList', ['query' => ['UniqName' => $uniqname, 'App' => $app]]);

echo $response->getBody();

15.获取配额使用数据

调用示例

<?php

require('vendor/autoload.php');

use Ksyun\Service\Ket;

$uniqname = 'test'; // 用户名

$response = Ket::getInstance()->request('GetQuotaUsed', ['query' => ['Uniqname' => $uniqname]]);

echo $response->getBody();

金山云,开启您的云计算之旅

免费注册