搜索本产品文档关键词
安装LssClient
所有文档
menu

音视频直播 LSS

安装LssClient

配置LssClient

LssClient是LSS服务的PHP客户端,为开发者与LSS服务进行交互提供了一系列的方法。

在新建LssClient前,您需要先创建配置文件对LssClient进行配置,以下将此配置文件命名为YourConf.php,具体配置信息如下:

Plain Text
1// 报告所有 PHP 错误
2error_reporting(-1);
3
4define('__LSS_CLIENT_ROOT', dirname(__DIR__));
5
6// 设置LssClient的Access Key ID、Secret Access Key和ENDPOINT
7$LSS_TEST_CONFIG =
8    array(
9        'credentials' => array(
10            'ak' => '<AK>',
11            'sk' => '<SK>',
12        ),
13        'endpoint' => 'http://lss.bj.baidubce.com', 
14    );
15
16// 设置log的格式和级别
17$__handler = new \Monolog\Handler\StreamHandler(STDERR, \Monolog\Logger::DEBUG);
18$__handler->setFormatter(
19    new \Monolog\Formatter\LineFormatter(null, null, false, true)
20);
21\BaiduBce\Log\LogFactory::setInstance(
22    new \BaiduBce\Log\MonoLogFactory(array($__handler))
23);
24\BaiduBce\Log\LogFactory::setLogLevel(\Psr\Log\LogLevel::DEBUG);

新建LssClient

在完成上述配置之后,参考如下代码新建一个LssClient:

Plain Text
1//使用PHP SDK,并且使用自定义配置文件
2include 'BaiduBce.phar';
3require 'YourConf.php';
4
5use BaiduBce\Services\Lss\LssClient;
6
7//调用配置文件中的参数
8global $LSS_TEST_CONFIG;
9//新建LssClient
10$client = new LssClient($LSS_TEST_CONFIG);

参数说明

PHP SDK在\BaiduBce\Bce.php中默认设置了一些基本参数,如需修改参数值,可参考此文件自定义参数配置函数,并在构造LssClient的时候传入,传入代码参考如下:

Plain Text
1public function CustomizedConfig() {
2    $customizedConfig = array(
3        BceClientConfigOptions::PROTOCOL => 'http',
4        BceClientConfigOptions::CONNECTION_TIMEOUT_IN_MILLIS => 120 * 1000,
5        BceClientConfigOptions::SOCKET_TIMEOUT_IN_MILLIS => 300 * 1000, 
6        BceClientConfigOptions::SEND_BUF_SIZE => 5 * 1024 * 1024,
7        BceClientConfigOptions::RECV_BUF_SIZE => 5 * 1024 * 1024,
8        BceClientConfigOptions::CREDENTIALS => array(
9            'ak' => '<AK>',
10            'sk' => '<SK>',
11        ),
12        'endpoint' => 'http://lss.bj.baidubce.com', 
13    );
14    
15    //利用自定义配置创建LssClient
16    $customizedClient = new LssClient($customizedConfig);
17
18    //通过自定义配置调用方法
19    $options = array('config'=>$customizedConfig);
20    $this->client->listSessions($options);
21}

参数说明如下:

参数
说明
默认值
PROTOCOL 协议 http
CONNECTION_TIMEOUT_IN_MILLIS 请求超时时间(单位:毫秒) 50 * 1000
SOCKET_TIMEOUT_IN_MILLIS 通过打开的连接传输数据的超时时间(单位:毫秒) 0(表示无限等待,
若设置非0数值需要对文件大小和网速进行评估,否则上传大文件时会产生超时)
SEND_BUF_SIZE 发送缓冲区大小 1024 * 1024
RECV_BUF_SIZE 接收缓冲区大小 10 ** 1024 1024

相关说明

LssClient将可选的参数封装到$options中,每一个方法具有的可选参数详见具体的接口使用方法介绍,以createSession方法为例,请参考如下代码设置可选参数:

Plain Text
1//创建Session无任何必选参数,通过$options传入可选参数
2$options = array(
3    'description' => 'This is a test session',
4    'preset' => '<Preset_Name>',
5    'notification' => '<Notification_Name>',
6);
7$client->createSession($options);

注意:请不要将null传入$options中,否则调用时会抛出异常。

录制模板Recording

录制模板是对直播过程中音视频进行录制的参数配置集合,包括录制文件存储模式、录制文件格式、录制文件切割时长等。

目前API仅支持查询指定录制模板和查询模板列表接口,用户如需新建录制模板,请在控制台创建。

查询录制模板

下述代码示例用于查询指定的Recording:

PHP
1$name = '<Recording_Name>';
2$response = $client->getRecording($name);
3print json_encode($response);

录制模板列表

下述代码示例用于查询所有的Recording:

PHP
1$response = $client->listRecordings();
2foreach ($response->recordings as $recording) {
3    print json_encode($recording);
4}

安全策略SecurityPolicy

安全策略是直播过程中安全配置参数的集合,包括推流认证、播放认证、内容加密、防盗链(Referer/IP 黑白名单)三类安全配置。

目前LSS为每个用户创建了一个默认安全策略,尚不支持创建自定义安全策略。

查询安全策略

下述代码示例用于查询指定的SecurityPolicy:

PHP
1$name = 'default';
2$response = $client->getSecurityPolicy($name);
3print json_encode($response);

安全策略列表

下述代码示例用于查询所有的SecurityPolicy:

PHP
1$response = $client->listSecurityPolicies();
2foreach ($response->securityPolicies as $securityPolicy) {
3    print json_encode($securityPolicy);
4}

通知Notification

您可以通过提供通知接口名称和接口地址来创建Notification,然后在创建直播会话时配置直播通知。LSS会在直播会话状态改变,直播过程中HLS直播m3u8文件等生成时主动向您推送消息。

创建通知

下述代码示例用于创建一个Notification:

PHP
1//指定notification name & endpoint
2$name = '<Notification_Name>';
3$endpoint = 'http://notification.domain.com';
4$client->createNotification($name, $endpoint);

通知列表

下述代码示例用于查询所有的Notification:

PHP
1$response = $client->listNotifications();
2foreach ($response->notifications as $notification) {
3    print json_encode($notification);
4}

查询通知

下述代码示例用于查询指定的Notification:

PHP
1//指定notification name
2$name = '<Notification_Name>';
3$response = $client->getNotification($name);
4print json_encode($response);

删除通知

下述代码示例用于删除Notification:

PHP
1//指定notification name
2$name = '<Notification_Name>';
3$client->deleteNotification($name);

注意:不能删除使用中的Notification。

水印Watermark

LSS支持为直播会话添加水印,包括图片水印和时间戳水印两种类型。

图片水印

为直播会话添加图片水印需要您先创建图片水印,然后在创建直播会话时配置图片水印。

创建图片水印

通过定义水印的详细参数集合(大小、位置等)来创建图片水印。代码示例如下:

PHP
1$path = '<Image_Path>';
2$fp = fopen($path, 'rb');
3$content = fread($fp, filesize($path));
4fclose($fp);
5$content = base64_encode($content);
6$options = array(
7    'maxWidthInPixel' => <Image_Width_Limit>,
8    'maxHeightInPixel' => <Image_Height_Limit>,
9    'sizingPolicy' => '<Sizing_Policy>',
10);
11$name = '<Image_Watermark_Name>';
12$client->createImageWatermark($name, $content, $options);

查询指定图片水印

通过指定水印名称查询特定图片水印的详细信息,包括图片URL、大小、位置、创建时间等。代码示例如下:

PHP
1//指定ImageWatermark name
2$name = '<Image_Watermark_Name>';
3$response = $client->getImageWatermark($name);;
4print json_encode($response);

查询图片水印列表

查询用户的所有图片水印的详细信息。代码示例如下:

PHP
1$resp = $client->listImageWatermarks();
2foreach ($response->imageWatermarks as $imageWatermark) {
3    print json_encode($imageWatermark);
4}

删除图片水印

通过指定水印名称删除特定图片水印。代码示例如下:

PHP
1//指定ImageWatermark name
2$name = '<Image_Watermark_Name>';
3$client->deleteImageWatermark($name);

注意:不能删除使用中的图片水印。

时间戳水印

为直播会话添加时间戳水印需要您先创建时间戳水印,然后在创建直播会话时配置时间戳水印。

创建时间戳水印

通过定义水印的详细参数集合(时区、文字、背景、位置等)来创建时间戳水印。代码示例如下:

PHP
1$options = array(
2    'timezone' => '<Timezone>',
3    'alpha' => <Alpha>,
4    'fontFamily' => '<Font_Family>',
5    'fontSizeInPoint' => <Font_Size>,
6    'fontColor' => '<Font_Color>',
7    'backgroundColor' => '<Background_Color>',
8);
9$name = '<Timestamp_Watermark_Name>';
10$client->createTimestampWatermark($name, $options);

查询指定时间戳水印

通过指定水印名称查询特定时间戳水印的详细信息,包括时间戳的时区、文字、位置、创建时间等。代码示例如下:

PHP
1//指定TimestampWatermark name
2$name = '<Timestamp_Watermark_Name>';
3$response = $client->getTimestampWatermark($name);
4print json_encode($response);

时间戳水印列表

查询用户的所有时间戳水印的详细信息。代码示例如下:

PHP
1$resp = $client->listTimestampWatermarks();
2foreach ($response->timestampWatermarks as $timestampWatermark) {
3    print json_encode($timestampWatermark);
4}

删除时间戳水印

通过指定水印名称删除特定时间戳水印。代码示例如下:

PHP
1//指定TimestampWatermark name
2$name = '<Timestamp_Watermark_Name>';
3$client->deleteTimestampWatermark($name);

注意:不能删除使用中的时间戳水印。

上一篇
安装LSS-PHP-SDK
下一篇
LSS开发指南