阿里云 视频直播 配置 及 PHP-SDK 接入教程
个人感觉,阿里的文档比微信的要坑很多…
微信最多是有些比较重要的东西放到比较不起眼、比较难发现的地方.
阿里的文档就是要么就是sdk已经更新了,但是文档还没更新,导致文档与SDK不匹配.在关键点卡我一下…
要么是同样的功能有好几个版本的SDK以及文档,却不告诉你哪个是最新的…
吐槽结束~
准备工作
1.最重要的,先仔细看下视频直播文档!
2. 购买阿里云的视频直播服务 ,用量不大的时候建议使用按量收费的方式结算,接通之后消耗了流量才扣钱;
3. 准备好备案的域名,到时候需要解析两个二级域名(推流域名与拉流域名);
4. 如果需要存储直播视频文件的话,需要使用对象存储OSS服务,因为直播录制的视频都会到这里面.这也是可以先使用后收费的(按量收费).
域名管理
首先进入视频直播的控制台域名管理添加域名
添加两次,分别是播流域名和推流域名,
添加完成之后进行域名解析配置这两个域名的CDN加速指向分配的CNAME.
然后配置将它们两个域名(一个推流,一个播流)关联起来.
配置鉴权
推流与播流的链接都是以一定的规则自己拼起来的,首先要在域名配置
地址生成器及DEMO演示-熟悉鉴权
AppName:随意理解,或者理解为分组吧;
StreamName:理解为直播的id,一个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}".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}".md5($strviewrtmp); //播流地址 $flvurl = "http://{$pull_cdn}/{$AppName}/{$StreamName}.flv".md5($strviewflv); //播流地址 $m3u8url = "http://{$pull_cdn}/{$AppName}/{$StreamName}.m3u8".md5($strviewm3u8); //播流地址
获取到推流URL和播流URL就可以愉快地玩直播啦,可以下载阿里的DEMO(APP)到手机上,测试这URL是否有用~
接入SDK
阿里是将所有的SDK打包一起下载,里面不仅有视频直播的SDK,还有别的业务的SDK…T_T
PHP SDK 下载地址
我的项目是TP框架(还是3.2的T_T)
在一开始拿到SDK代码的时候很懵逼,无从下手…
度娘了下才知道要引入的是这两个文件 ! ! !
<"color: #ff0000">配置AccessKeyID AccessKeySecret
这里并没有用子账号RAM权限,因此我这种方法配置的密钥对阿里的所有密钥有效,不建议这么做!
直播在线流SDK接入,我这里是用已知的直播流名称去检测它是否在线
<"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"
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】
- 谭咏麟.2022-倾·听【环球】【WAV+CUE】
- 4complete《丛生》[320K/MP3][85.26MB]
- 4complete《丛生》[FLAC/分轨][218.01MB]
- 羽泉《给未来的你&天黑天亮》[WAV+CUE][968M]
- 庄心妍《我也许在等候》[低速原抓WAV+CUE]
- 王雅洁《小调歌后2》[原抓WAV+CUE]
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】