,,详解阿里云视频直播PHP-SDK接入教程
本文主要介绍阿里云直播视频PHP-SDK访问教程,通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考价值有需要的朋友下面跟边肖学习
阿里云视频直播配置及PHP-SDK访问教程
个人认为阿里的文档比微信差很多…
微信最多是把一些重要的东西放在不显眼、不易发现的地方
阿里的文档要么是sdk更新了,但文档没有更新,导致文档和SDK不匹配关键点查我…
要么同一个功能有好几个版本的SDK和文档,但是我不告诉你哪个是最新的…
End ~
准备工作
1.最重要的是,先仔细阅读直播视频文档!
2.购买阿里云的视频直播服务当使用量不大时,建议使用按量计费的方式连接后,先消耗流量,再扣钱;
3.准备域名备案,然后需要解析两个二级域名(推谷名和拉谷名);
4.如果需要存储直播视频文件,需要使用对象存储OSS服务,因为所有直播录制的视频都会在里面这个也可以先用后收费(按体积收费)
域名管理
首先进入视频直播的控制台域名管理添加域名
添加两次,即播盆名和推盆名,
添加后,配置域名解析这两个域名的CDN指向分配的CNAME
然后配置并关联它们的两个域名(一个推送流,一个广播流)
配置鉴权
推送流和广播流之间的链接是按照一定的规则自己拼出来的首先,应该在域名中配置它们
地址生成器及DEMO演示-熟悉鉴权
AppName:随意理解,或者理解为分组;
StreamName:理解为直播的id,一个StreamName同一时间只能推送一个直播可以开始直播-停止直播-开始直播-停止直播…
与身份验证相关的规则如下:身份验证规则
代码如下:
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
$ AppName=' AppName//app名称,随意设置
$ StreamName=' StreamName//直播流名称,随意设置
$ now=time();
//-
//加密密钥,即在直播后台认证中自己设置
$ pull _ key=' oCudfghYGM//流式主密钥
$ push _ key=' 0hgggfjAhT//按下主键
$ time=$ now 60 * 60 * 3;//URL的有效期为180分钟随意设置
//-结束-
$ str push='/{ $ AppName }/{ $ stream name }-{ $ time }-0-0-{ $ push _ key } ';
$ push _ cdn=' push . paxy 365 . com ';
$ pull _ cdn=' pull . paxy 365 . com ';
//推送一个流地址
$ push URL=' rtmp://{ $ push _ cdn }/{ $ AppName }/{ $ stream name }?auth _ key={ $ time }-0-0-' . MD5($ strpush);
//流地址
$ strviewrtmp='/{ $ AppName }/{ $ stream name }-{ $ time }-0-0-{ $ pull _ key } ';
$ strviewflv='/{ $ AppName }/{ $ stream name }flv-{ $ time }-0-0-{ $ pull _ key } ';
$ strviewm 3 u 8='/{ $ AppName }/{ $ stream name } . m3u 8-{ $ time }-0-0-{ $ pull _ key } ';
$ RTM purl=' rtmp://{ $ pull _ cdn }/{ $ AppName }/{ $ stream name }?auth _ key={ $ time }-0-0-' . MD5($ strviewrtmp);//流地址
$ flv URL=' http://{ $ pull _ cdn }/{ $ AppName }/{ $ stream name }flv?auth _ key={ $ time }-0-0-' . MD5($ strviewflv);//流地址
$ m3u 8 URL=' http://{ $ pull _ cdn }/{ $ AppName }/{ $ stream name } . m3u 8?auth _ key={ $ time }-0-0-' . MD5($ strviewm 3 u 8);//流地址
获取推送网址和播放网址,就可以愉快的玩直播了可以把阿里的DEMO(APP)下载到手机上,测试一下这个网址是否有用~
接入SDK
阿里把所有的SDK打包在一起下载,不仅有视频直播的SDK,还有其他业务的SDK……T _ T
PHP SDK下载地址
我的项目是TP框架(还是3.2的T_T)
当初拿到SDK代码的时候,傻到无从下手…
过了一会儿我才知道这两个文件要出台了!
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
使用OSS \ OssClient
使用OSS \ Core \ OssException
include_once库路径供应商/阿里云-open API/阿里云-PHP-SDK-core/config . PHP ';//LIB_PATH指向项目地址/ThinkPHP/Library/
include_once库路径vendor/aliyun-OSS-PHP/autoload . PHP ';
配置AccessKeyID AccessKeySecret
这里没有子账户RAM权限,所以我这样配置的密钥对阿里的所有密钥都有效不建议这么做!
在线流媒体SDK访问,我这里用已知的直播名称来检查是否在线
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
/**
*在线流量判断
*获取正在由直播流推送的流的信息
*/
公共函数StreamsOnlineList($ stream _ name=' '){
$ iclient profile=\ default profile:get profile(' cn-Shenzhen ',' AccessKeyID ',' accesskey secret ');//cn-深圳这个好像没问题,我填cn-杭州也没问题访问密钥ID、访问密钥机密
$ client=new \ DefaultAcsClient($ iclient profile);
$ Request=new \ live \ Request \ v 2016 11 01 \ DescribeLiveStreamsOnlineListRequest();
$request -setAppName('应用程序名称');//应用程序名称
$ request-setStreamName($ stream _ name);//流名称不填的话就查一下AppName下所有在线直播的流
$ request-set domain name(' pull . XXX . com ');//你的加速域名广播盆地名称
$ request-setPageNum(' 1 ');//获取哪个页面,默认为1
//下面的参数我都没用,就注释了
//$ request-setStreamType(' all ');//流类型取值范围:all raw trans查询所有流、原始流和转码流,all默认返回所有流信息
//$ request-set start time(' 2019-03-04t 00:00:00Z ');
//$ request-setEndTime(' 2019-03-04t 23:59:59Z ');
//$ request-set pagesize(' 2000 ');//每页的大小,最多3000值:1~3000之前的任意整数默认值:2000
//$ request-setQueryType(' strict ');//指定是否模糊匹配流名称值:模糊:模糊匹配严格:精确匹配
//$ request-setOrderBy(“”);//文档里没有,sdk有这个参数,不是必须的
//$ request-setOwnerId(“”);//文档里没有,sdk有这个参数,不是必须的
//对阿里云提出请求
$ response=$ client-getAcsResponse($ request);
//对象到数组,总觉得我的方法太土了.网上也有很多自定义函数,可以把对象转换成数组
$ response=JSON _ decode(JSON _ encode($ response,true),true);
dump($ response);退出;
推流回调的配置
打印出回调收到的数据
['action']=
字符串(7)' publish '//publish Push Start publish _ done Push End
['ip']=
字符串(14)“139 . 147 . 54 . 224”
['id']=
string(24)' Y-12005-870-1-2019 03 06 10 '//stream name本身设置的直播流的名称(这里称为id)
['app']=
字符串(16)'推xxxxx
。' com '
['appname']=
字符串(6)“gifoge”//应用程序名称
['时间']=
字符串(10) '1551839491 '
['usrargs']=
string(277)' vhost=pull . paxy 365 . com auth _ key=1551850143-0-0-6f 97891 e 39859d 558 b8e 583860 f 22094 Ali _ publisher _ IP=119 . 137 . 54 . 224 Ali _ edge _ node _ IP=175 . 6 . 241 . 195 Ali _ node _ v ia=cache 2 . cn 541,live11.l2em21
['node']=
字符串(13)“135 . 6 . 541 . 195”
关于阿里云直播视频PHP-SDK的访问教程这篇文章到此为止。更多关于阿里云直播视频PHP-SDK的信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。