最近帮朋友看一个直播网站的源码,发现这份直播源码借助 阿里云 、腾讯云这些大公司提供的SDK 能够很是方便的搭建一个直播网站。下面咱们来给你们讲解下如何借助 腾讯云 咱们搭建一个简易的 直播示例php
主要分三部分html
1:直播端 经过设备 直接经过 直播服务提供方 的推流 地址 进行直播视频,这些直播流视频 会推送到 直播服务提供方 直播服务器云存储前端
2:直播服务提供方 会将 云存储的 视频流 转发到 CDN 节点安全
3:观众 就经过 各类终端 看直播(此时就会根据不一样游客 会 访问不一样的节点 )bash
根据 腾讯云直播官方 https://cloud.tencent.com/product/lvb 介绍,全部用户均可以领取20G 的流量,够咱们测试了。 服务器
1:官方注册帐号 领取20G流量 官方地址: https://cloud.tencent.com/product/lvb架构
2:须要一个备案过的域名(用户播放直播视频域名) 。这就须要本身购买了app
3:支持推流的app。易推流 只支持IOS 、腾讯官方小直播 DEMO:https://cloud.tencent.com/document/product/267/32732#.E5.B0.8F.E7.9B.B4.E6.92.AD-demo dom
/** * 获取推流地址 * 若是不传key和过时时间,将返回不含防盗链的url * @param domain 您的推流域名 * stream_id 您用来区别不一样推流地址的惟一流ID * key 安全密钥 * time 过时时间 sample 2016-11-12 12:00:00 * @return String url */ public static function getPushUrl($domain, $stream_id, $key = null, $time = null){ if($key && $time){ $tx_time = strtoupper( base_convert(strtotime($time),10,16)); $tx_secret = md5($key.$stream_id.$tx_time); $ext_str = "?".http_build_query([ "txSecret"=> $tx_secret, "txTime"=> $tx_time ]); } return "rtmp://".$domain."/live/".$stream_id.( isset($ext_str) ? $ext_str : ""); }
其中domain 和 key 都是经过腾讯控制台获取的 。以下图测试
而其中的stream_id 你能够理解为直播房间id,在具体开发中 不要重复就行了
生成播放流URL很是简单,可是须要 有本身备案过得域名。而后在后台添加播放域名就好了。
添加完成域名以后 就须要将域名 cname 到 下图二中的官方分配地址
/** * 获取播放地址 * @param domain 您的播放域名 * stream_id 您用来区别不一样推流地址的惟一流ID * @return String url */ public static function getPlayUrl($domain, $stream_id){ $data = [ "rtmp://".$domain."/live/".$stream_id, "http://".$domain."/live/".$stream_id.".flv", "http://".$domain."/live/".$stream_id.".m3u8" ]; return $data[1]; }
其中 domain 就是刚在添加的域名。stream_id 就是生成推送流里面的参数。播放流能够生成三种模式,flv 和 m3u8。通常咱们flv格式延迟会低些
推送流Url:rtmp://44159.livepush.myqcloud.com/live/54php?txSecret=安全保密替换掉&txTime=5CC066FD 播放流Url:http://lvb.54php.cn/live/54php.flv
前端演示地址:http://m.54php.cn/demo/lvb ,可能没法看到,由于浪子没有直播了