阿里云视频直播PHP-SDK接入教程

  • 阿里云 视频直播 配置 及 PHP-SDK 接入教程
    • 准备工作
    • 域名管理
    • 配置鉴权
    • 地址生成器及DEMO演示-熟悉鉴权
    • 接入SDK
    • 推流回调的配置

阿里云 视频直播 配置 及 PHP-SDK 接入教程

个人感觉,阿里的文档比微信的要坑很多…
微信最多是有些比较重要的东西放到比较不起眼、比较难发现的地方.
阿里的文档就是要么就是sdk已经更新了,但是文档还没更新,导致文档与SDK不匹配.在关键点卡我一下…
要么是同样的功能有好几个版本的SDK以及文档,却不告诉你哪个是最新的…
吐槽结束~

准备工作

1.最重要的,先仔细看下视频直播文档!
2. 购买阿里云的视频直播服务 ,用量不大的时候建议使用按量收费的方式结算,接通之后消耗了流量才扣钱;
3. 准备好备案的域名,到时候需要解析两个二级域名(推流域名与拉流域名);
4. 如果需要存储直播视频文件的话,需要使用对象存储OSS服务,因为直播录制的视频都会到这里面.这也是可以先使用后收费的(按量收费).

域名管理

首先进入视频直播的控制台>>域名管理>>添加域名
添加两次,分别是播流域名推流域名,

添加完成之后进行域名解析配置这两个域名的CDN加速指向分配的CNAME.

然后配置将它们两个域名(一个推流,一个播流)关联起来.

配置鉴权

推流与播流的链接都是以一定的规则自己拼起来的,首先要在域名配置

地址生成器及DEMO演示-熟悉鉴权

AppName:随意理解,或者理解为分组吧;
StreamName:理解为直播的id,一个StreamName同时只能推一个直播流.可以开始直播-终止直播-开始直播-终止直播…

有关鉴权的规则是这样的:鉴权规则
代码如下:

<?php$AppName     = 'AppName';       //app名称 ,随意设定$StreamName  = "StreamName";    //直播流名称 ,随意设定$now = time();//------------------- 阿里云视频直播控制台 地址生成器 鉴权设置 -----------//加密key,即直播后台鉴权里面自行设置$pull_key = 'oCudfghYGM';       //播流 主key$push_key = '0hgggfjAhT';        //推流 主key$time     = $now + 60*60*3;      //URL的有效期 180分钟 随意设定//------------------------ end ---------------------------------------------$strpush = "/{$AppName}/{$StreamName}-{$time}-0-0-{$push_key}";$push_cdn = 'push.paxy365.com';$pull_cdn = 'pull.paxy365.com';//推流地址  一个$pushurl        = "rtmp://{$push_cdn}/{$AppName}/{$StreamName}?auth_key={$time}-0-0-".md5($strpush);//播流地址$strviewrtmp    = "/{$AppName}/{$StreamName}-{$time}-0-0-{$pull_key}";$strviewflv     = "/{$AppName}/{$StreamName}.flv-{$time}-0-0-{$pull_key}";$strviewm3u8    = "/{$AppName}/{$StreamName}.m3u8-{$time}-0-0-{$pull_key}";$rtmpurl        = "rtmp://{$pull_cdn}/{$AppName}/{$StreamName}?auth_key={$time}-0-0-".md5($strviewrtmp);             //播流地址$flvurl         = "http://{$pull_cdn}/{$AppName}/{$StreamName}.flv?auth_key={$time}-0-0-".md5($strviewflv);                   //播流地址$m3u8url        = "http://{$pull_cdn}/{$AppName}/{$StreamName}.m3u8?auth_key={$time}-0-0-".md5($strviewm3u8); //播流地址

获取到推流URL和播流URL就可以愉快地玩直播啦,可以下载阿里的DEMO(APP)到手机上,测试这URL是否有用~

接入SDK

阿里是将所有的SDK打包一起下载,里面不仅有视频直播的SDK,还有别的业务的SDK…T_T
PHP SDK 下载地址

我的项目是TP框架(还是3.2的T_T)

在一开始拿到SDK代码的时候很懵逼,无从下手…
度娘了下才知道要引入的是这两个文件 ! ! !

<?phpuse OSS\OssClient;use OSS\Core\OssException;include_once LIB_PATH . 'Vendor/aliyun-openapi/aliyun-php-sdk-core/Config.php';    // LIB_PATH 指向的是   项目地址/ThinkPHP/Library/include_once LIB_PATH . 'Vendor/aliyun-oss-php/autoload.php';

配置AccessKeyID AccessKeySecret
这里并没有用子账号RAM权限,因此我这种方法配置的密钥对阿里的所有密钥有效,不建议这么做!


直播在线流SDK接入,我这里是用已知的直播流名称去检测它是否在线

<?php/*** 在线流判断* 获取某直播流正在推的流的信息*/public function StreamsOnlineList($stream_name=''){$iClientProfile = \DefaultProfile::getProfile("cn-shenzhen", 'AccessKeyID', 'AccessKeySecret';  //cn-shenzhen 这个貌似都可以,我填cn-hangzhou也没问题 Access Key ID,Access Key Secret$client = new \DefaultAcsClient($iClientProfile);$request = new \live\Request\V20161101\DescribeLiveStreamsOnlineListRequest();$request ->setAppName('应用名称');                        //应用名称。$request ->setStreamName($stream_name);   //流名称。不填的话就是查AppName下所有的在线直播流$request ->setDomainName('pull.xxx.com');           //您的加速域名。播流域名$request ->setPageNum('1');                             //取得第几页,默认1。//以下参数我都没有用到,因此注释了//$request ->setStreamType('all');                      //流类型。取值范围:all raw trans 对应查询所有流、原始流、转码流,默认all返回所有流信息//$request ->setStartTime('2019-03-04T00:00:00Z');//$request ->setEndTime('2019-03-04T23:59:59Z');//$request ->setPageSize('2000');                       //每页大小,最大3000。 取值:1~3000之前的任意整数。 默认值:2000//$request ->setQueryType('strict');                    //指定是否模糊匹配流名称。 取值: fuzzy:模糊匹配 strict:精准匹配//$request ->setOrderBy('');                            //文档中没有,sdk有该参数,非必填//$request ->setOwnerId('');                            //文档中没有,sdk有该参数,非必填//针对阿里云进行请求$response = $client->getAcsResponse($request);//对象转数组,总感觉我这种方法太土了...网上也有很多自定义的函数可以对象转数组$response = json_decode(json_encode($response,true),true);dump($response);exit;

推流回调的配置



将回调接收到的数据打印出来

["action"]=>string(7) "publish"      //publish 推流开始   publish_done推流结束["ip"]=>string(14) "139.147.54.224"["id"]=>string(24) "y-12005-870-1-2019030610"       //StreamName 自己设定的直播流名称(这里叫id)["app"]=>string(16) "push.xxxxx.com"["appname"]=>string(6) "gifoge"       //App名称["time"]=>string(10) "1551839491"["usrargs"]=>string(277) "vhost=pull.paxy365.com&auth_key=1551850143-0-0-6f97891e39859d558b8e583860f22094&ali_publisher_ip=119.137.54.224&ali_edge_node_ip=175.6.241.195&ali_node_via=cache2.cn541%2clive11.l2em21-3&alilive_streamidv2=2.cn541_6638_355280423_1551839490901&alilive_clienthost=live11.l2em21-3"["node"]=>string(13) "135.6.541.195"

阿里云视频直播PHP-SDK接入教程相关推荐

  1. 阿里云视频直播PHP-SDK

    阿里云 视频直播 配置 及 PHP-SDK 接入教程 准备工作 域名管理 配置鉴权 地址生成器及DEMO演示-熟悉鉴权 接入SDK 推流回调的配置 阿里云 视频直播 配置 及 PHP-SDK 接入教程 ...

  2. 深度解读:阿里云视频直播功能升级

    2022年注定是体育超级大年,冬奥.亚运会.大运会.世界杯等各类大型体育赛事应接不暇.随之而来便是各类赛事直播,客户对直播服务要求变得越来越高,视频直播技术创新显得格外重要.如何利用直播技术创新降低线 ...

  3. 阿里云视频直播使用详细步骤

    目录 一.阿里云视频直播 1.什么是视频直播 2.视频直播架构 3.官方文档链接 二.使用流程 1.使用条件 2.添加推流域名和播流域名 3.配置CNAME 4.关联推流域名和播流域名 5.生成推流地 ...

  4. 首批唯一!阿里云视频直播服务获信通院首批唯一认证

    简介:阿里云视频直播服务 7 月 28 日,由中国信息通信研究院主办的 2021 可信云大会上,阿里云凭借在视频直播 "云 - 边 - 端" 的产品技术优势,以最高标准通过了可信云 ...

  5. java SpringBoot 集成 阿里云视频直播 完成直播功能

    经历了几天的周折,近期才把项目完成,在这里与大家分享一下踩坑之路,也方便日后有类似项目,可以借阅一番 开发直播前先满足已下条件 1.开通视频直播功能 2.购买好了OSS存储 3.购买两个域名并且备案好 ...

  6. 阿里云视频直播 web前端[移动端] Aliplayer的简单案例

    阿里云视频直播 web前端[移动端] Aliplayer的简单案例 最近做了一个功能就是播放后台提供的各种直播视频,格式在未确定的情况下,刚开始以为简单的一个video标签就能播放视频,后面才发现各种 ...

  7. 阿里云视频直播推流和播流地址生成

    记录学习阿里云视频直播 准备环境: 1.已开通阿里云视频直播服务. 2.2个域名:一个用于推流,一个用于播流. 3.在视频直播服务里面找到域名配置,配置好播流和推流域名之间的关系. 4.下载Vlc和o ...

  8. 阿里云视频直播,使用obs推流验证是否成功

    阿里云视频直播推流地址验证 首先,根据上篇文章得到推流地址以及播流地址,从官方下载obs工具和vlc工具,下面开始验证地址是否正确? 演示 1.打开obs工具,找到右下角的设置按钮,点击推流,将推流地 ...

  9. 阿里云视频直播 签名机制

    其实很少写博客,都是放在个人云笔记里面的.但是这个坑,还是救救有些新手. 阿里云视频直播的API调用方式,其实和其他的阿里云服务签名大同小异! https://help.aliyun.com/docu ...

  10. 阿里云视频直播产品使用流程

    1 阿里云视频直播使用流程 1.1 域名配置,及CNAME映射 开通视频直播,开通服务免费,产生的流量付费: 1.1.1 开通后,进入管理控制台: 使用阿里云视频直播,必须有一个审核通过的域名.没有的 ...

最新文章

  1. ST17H26之125KHz产生
  2. android studio小案例代码,AndroidStudio开发小相册实例
  3. 最强android平板,最强安卓平板!华为MatePad Pro来了:搭载麒麟990
  4. Win10系统,开机后提示Desktp不可用的故障解决方法。
  5. c语言 int操作bit,C语言,使用共用体和结构体 查看int型的bit散布
  6. U8v10.1销售发货单打印模板取客户名称不正确的问题
  7. 饿了么UI框架表格的动态增减表单项里面有坑!
  8. 从 Java 到 Kotlin,再从 Kotlin 回归 Java
  9. 计算机视觉教程(第2版)1-8章期末复习
  10. 简信CRM:手机CRM软件的应用好处有哪些?
  11. Involution: Inverting the Inherence of Convolution for Visual Recognition(CVPR2021)
  12. css 解决因为书名号不满一行就换行情况
  13. 程序开发团队之团队精神篇(转)
  14. Spark删除redis千万级别set集合数据
  15. FI凭证冲销(蓝冲、红冲)和反记账后台配置
  16. 癌症来临,应该怎么办?
  17. 开发软件需要学习什么?
  18. 低压无感BLDC方波控制方案 反电动势和比较器检测位置 带载满载启动
  19. 关于TVS管符号,看完这篇你就懂了!
  20. 维基解密最新文件揭露CIA如何攻击Windows PC

热门文章

  1. Introduction to Computer Networking学习笔记(十八):Switching 交换工作实现
  2. Java中的Object 类的常见方法
  3. Docker从理论到实践(八)------Docker网络基础配置
  4. (10)Redis------必须知道的基础内容
  5. Ubuntu Server 16.04服务器版配置图解教程14 - 安装PHP7.1.11(源码包安装)
  6. 仿得微博字符限制效果
  7. 第五次作业之例行报告
  8. 基于jQuery的AJAX和JSON的实例
  9. 找不到所需的 Adobe Flash Player 调试器版本
  10. 初学ASP.Net时在论坛收藏收集的一些资料备忘