最近幫朋友看一個直播網站的源碼,發現這份直播源碼藉助 阿里雲 、騰訊雲這些大公司提供的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 ,可能沒法看到,由於浪子沒有直播了