PHP集成腾讯云直播与七牛云直播相关操作

职场小白如何初次认识云直播

PHP集成腾讯云直播与七牛云直播相关操作

腾讯云与七牛云的直播sdk

下载地址一个暖心大佬提供的集成sdk(非作者本人)
composer require goodspb/live-sdk

composer会出现存在一些问题,下面列举一些常常出现的问题*

1.可能存在旧版本删除问题,如果直接composer require 文件名,而这个文件名后面没有加":版本号",会存在找不到地址导致失败,所以建议在composer的时候如果该文件有版本号后面尽量加上
2.扩展包关联问题,在有些扩展包下载的时候,是需要另一个扩展包支持的,例如我们下载的这个扩展包 goodspb/live-sdk是需要先看一下自己的vendor里面有没有guzzlehttp/guzzle这个扩展包的 没有则 composer require guzzlehttp/guzzle
3.扩展包是存在php版本兼容问题的,composer的时候是需要看下自己的版本是否符合

由于tp版本不同引入vendor里面扩展的方法也有不同的方法,方法不对not found class*

简略的说一下常用引用方法,详细去找论坛其他博主,本人较懒

  1. import(‘lib.cwb’,VENDOR_PATH,’.class.php’); 第一个参数是地址/类名,第二个参数定义的全局常量(vendor的地址) 第三个参数是读取后缀为.class或者为.php
    2.vendor() 和上面使用方法相似,注意差别就是二三参数可以省略
    3.手动引入了类文件后,进行实例化需要特别注意了!在 new 类文件()时,在类文件前面加一个 “ \ ”,例如 $obj = new \Cwb();

上代码

        $live =   new \Goodspb\LiveSdk\Live();
        1.配置文件引入
         $config = require __DIR__ . '/live.php';
         2.创建房间
        $live->setConfig($config);
        $agent = $live->getAgent();
        $room = $agent->create($room_id);
        数据会返回推流地址
        3.查看房间状态
        $status = $agent->status($room_id);
        返回bool格式
        4.关闭直播
         $result = $agent->close($roomId);//关闭直播
         返回bool格式

关于配置文件

return [
    'upstream' => [
        /*
         * 比例最终加起来要100
         * 'qiniu' => 50,
         * 'jinshan' => 50,
         */
        'qiniu' => 100,
    ],
    'agents' => [
        'qiniu' => [
            'enable' => true,
            'class' => Goodspb\LiveSdk\Agents\QiniuAgent::class,
            'hub' => '',        //直播空间名
            'base_url' => [     //绑定域名
                'rtmp_push_url' => '',
                'rtmp_play_url' => '',
                'hls_play_url' => '',
                'hdl_play_url' => '',
            ],
            'expire' => '',     //推流地址过期时间
            'ak' => '',
            'sk' => '',
        ],
        'qcloud' => [
            'enable' => true,
            'class' => Goodspb\LiveSdk\Agents\QcloudAgent::class,
            'api_base_url' => 'http://fcgi.video.qcloud.com/common_access',
            'appid' => '',
            'bizid' => '',      //直播码
            'expire' => ,  //推流过期时间
            'push_key' => '',   //推流防盗链Key
            'api_key' => '',    //Api鉴权Key
        ],
    ],
    'http' => [
        'timeout' => 30,
        'connect_timeout' => 0,
    ],
];

转载地址插件官方文档

关于视频回放问题

1.腾讯云
TencentCloud/tencentcloud-sdk-php
腾讯云需要开通云点播功能,然后在控制台中配置录制模板然后即可自动保存回放
查看回放需要下载官方第三方SDK或者使用API,个人觉得使用SDK更合适由于API存在v1,v3版本所以签名很容易配置错误,SDK更加简单有效
配置id和密钥,然后官方有相关查询参数,可以按照create_time进行倒叙查询获取最新的回放视频
$params代表搜索参数以json格式传输

1.回放列表查询(搜索媒资列表)

 try {

        $cred = new Credential("secretid", "secretkey");
        $httpProfile = new HttpProfile();
        $httpProfile->setEndpoint("vod.tencentcloudapi.com");

        $clientProfile = new ClientProfile();
        $clientProfile->setHttpProfile($httpProfile);
        $client = new VodClient($cred, "ap-beijing", $clientProfile);

        $req = new SearchMediaRequest();

        $params = $arr;
        $req->fromJsonString($params);

        $resp = $client->SearchMedia($req);

       return $resp->toJsonString();
    }
    catch(TencentCloudSDKException $e) {
        echo $e;
    }
上一篇:'live-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。(解决)


下一篇:IDEA工具java开发之 代码模板