首页 > 作文

详解阿里云视频直播PHP

更新时间:2023-04-08 22:14:44 阅读: 评论:0

阿里云 视频直播 配置 及 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://bring的过去式{$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代码的时候很懵逼,无从下手…
度娘了下才知道要引入的是这两个文件 ! ! !

<?phpu oss\ossclient;  u oss\core\osxception;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 accesskeycret

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

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

<?php/**   * 在线流判断   * 获取某直播流正在推的流的信息   */  public function streamsonlinelist($stream_name=''){    $iclientprofile = \defaultprofile::getprofile("cn-shenzhen", 'accesskeyid', 'accesskeycret'; //cn-shenzhen 这个貌似都可以,我填cn-hangzhou也没问题 access key id,access key cret    $client = new \defaultacsclient($iclientprofile);    $request = new \live\request\v20161101\describelivestreamsonlinelistrequest();    $request ->tappname('应用名称');        学化妆要多少钱    //应用名称。    $request ->tstreamname($stream_name);  //流名称。不填的话就是查appname下所有的在线直播流    $request ->tdomainname('pull.xxx.com');      //您的加速域名。播流域名    $request ->tpagenum('1');               //取得第几页,默认1。//以下参数我都没有用到,因此注释了    //$request ->tstreamtype('all');           //流类型。取值范围:all raw trans 对应查询所有流、原始流、转码流,默认all返回所有流信息    //$request ->tstarttime('2019-03-04t00:00:00z');    //$request ->tendtime('2019-03-04t23:59:59z');    //$request ->tpagesize('2000');            //每页大小,最大3000。 取值:1~3000之前的任意整数。 默认值:2000    //$request ->tquerytype('strict');          //指定是否模糊匹配流名称。 取值: fuzzy:模糊匹配 strict:精准匹配    //$request ->torderby('');              //文档中没有,sdk有该参数,非必填    //$request ->townerid('');              //文档中没有,sdk有该参数,非必填    //针对阿里云实践进行请求    $respon = $client->getacsrespon($request);    //对象转数组,总感觉我这种方法太土了...网上也有很多自定义的函数可以对象转数组    $respon = json_decode(json_encode($respon,true),true);dump($respon);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 内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-08 22:14:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/757d0598f69f841e9f59b878f84853ec.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:详解阿里云视频直播PHP.doc

本文 PDF 下载地址:详解阿里云视频直播PHP.pdf

标签:阿里   名称   地址   域名
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图