阿里云视频直播PHP-SDK接入教程
阿里云视频直播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接入教程相关推荐
- 阿里云视频直播PHP-SDK
阿里云 视频直播 配置 及 PHP-SDK 接入教程 准备工作 域名管理 配置鉴权 地址生成器及DEMO演示-熟悉鉴权 接入SDK 推流回调的配置 阿里云 视频直播 配置 及 PHP-SDK 接入教程 ...
- 深度解读:阿里云视频直播功能升级
2022年注定是体育超级大年,冬奥.亚运会.大运会.世界杯等各类大型体育赛事应接不暇.随之而来便是各类赛事直播,客户对直播服务要求变得越来越高,视频直播技术创新显得格外重要.如何利用直播技术创新降低线 ...
- 阿里云视频直播使用详细步骤
目录 一.阿里云视频直播 1.什么是视频直播 2.视频直播架构 3.官方文档链接 二.使用流程 1.使用条件 2.添加推流域名和播流域名 3.配置CNAME 4.关联推流域名和播流域名 5.生成推流地 ...
- 首批唯一!阿里云视频直播服务获信通院首批唯一认证
简介:阿里云视频直播服务 7 月 28 日,由中国信息通信研究院主办的 2021 可信云大会上,阿里云凭借在视频直播 "云 - 边 - 端" 的产品技术优势,以最高标准通过了可信云 ...
- java SpringBoot 集成 阿里云视频直播 完成直播功能
经历了几天的周折,近期才把项目完成,在这里与大家分享一下踩坑之路,也方便日后有类似项目,可以借阅一番 开发直播前先满足已下条件 1.开通视频直播功能 2.购买好了OSS存储 3.购买两个域名并且备案好 ...
- 阿里云视频直播 web前端[移动端] Aliplayer的简单案例
阿里云视频直播 web前端[移动端] Aliplayer的简单案例 最近做了一个功能就是播放后台提供的各种直播视频,格式在未确定的情况下,刚开始以为简单的一个video标签就能播放视频,后面才发现各种 ...
- 阿里云视频直播推流和播流地址生成
记录学习阿里云视频直播 准备环境: 1.已开通阿里云视频直播服务. 2.2个域名:一个用于推流,一个用于播流. 3.在视频直播服务里面找到域名配置,配置好播流和推流域名之间的关系. 4.下载Vlc和o ...
- 阿里云视频直播,使用obs推流验证是否成功
阿里云视频直播推流地址验证 首先,根据上篇文章得到推流地址以及播流地址,从官方下载obs工具和vlc工具,下面开始验证地址是否正确? 演示 1.打开obs工具,找到右下角的设置按钮,点击推流,将推流地 ...
- 阿里云视频直播 签名机制
其实很少写博客,都是放在个人云笔记里面的.但是这个坑,还是救救有些新手. 阿里云视频直播的API调用方式,其实和其他的阿里云服务签名大同小异! https://help.aliyun.com/docu ...
- 阿里云视频直播产品使用流程
1 阿里云视频直播使用流程 1.1 域名配置,及CNAME映射 开通视频直播,开通服务免费,产生的流量付费: 1.1.1 开通后,进入管理控制台: 使用阿里云视频直播,必须有一个审核通过的域名.没有的 ...
最新文章
- ST17H26之125KHz产生
- android studio小案例代码,AndroidStudio开发小相册实例
- 最强android平板,最强安卓平板!华为MatePad Pro来了:搭载麒麟990
- Win10系统,开机后提示Desktp不可用的故障解决方法。
- c语言 int操作bit,C语言,使用共用体和结构体 查看int型的bit散布
- U8v10.1销售发货单打印模板取客户名称不正确的问题
- 饿了么UI框架表格的动态增减表单项里面有坑!
- 从 Java 到 Kotlin,再从 Kotlin 回归 Java
- 计算机视觉教程(第2版)1-8章期末复习
- 简信CRM:手机CRM软件的应用好处有哪些?
- Involution: Inverting the Inherence of Convolution for Visual Recognition(CVPR2021)
- css 解决因为书名号不满一行就换行情况
- 程序开发团队之团队精神篇(转)
- Spark删除redis千万级别set集合数据
- FI凭证冲销(蓝冲、红冲)和反记账后台配置
- 癌症来临,应该怎么办?
- 开发软件需要学习什么?
- 低压无感BLDC方波控制方案 反电动势和比较器检测位置 带载满载启动
- 关于TVS管符号,看完这篇你就懂了!
- 维基解密最新文件揭露CIA如何攻击Windows PC
热门文章
- Introduction to Computer Networking学习笔记(十八):Switching 交换工作实现
- Java中的Object 类的常见方法
- Docker从理论到实践(八)------Docker网络基础配置
- (10)Redis------必须知道的基础内容
- Ubuntu Server 16.04服务器版配置图解教程14 - 安装PHP7.1.11(源码包安装)
- 仿得微博字符限制效果
- 第五次作业之例行报告
- 基于jQuery的AJAX和JSON的实例
- 找不到所需的 Adobe Flash Player 调试器版本
- 初学ASP.Net时在论坛收藏收集的一些资料备忘