SDK for PHP 使用指南

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

查看PDF
版本 时间 更新内容
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();

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈