快速搭建一個直播Demo

緣由

最近幫朋友看一個直播網站的源碼,發現這份直播源碼借助 阿里云 、騰訊云這些大公司提供的SDK 可以非常方便的搭建一個直播網站。下面我們來給大家講解下如何借助 騰訊云 我們搭建一個簡易的 直播示例

云直播架構

600


主要分三部分


1:直播端 通過設備 直接通過 直播服務提供方 的推流 地址 進行直播視頻,這些直播流視頻 會推送到  直播服務提供方  直播服務器云存儲


2:直播服務提供方  會將 云存儲的 視頻流 轉發到 CDN 節點


3:觀眾 就通過 各種終端 看直播(此時就會根據不同游客 會 訪問不同的節點 )

生成推送流URL

根據 騰訊云直播官方  https://cloud.tencent.com/product/lvb 介紹,所有用戶都可以領取20G 的流量,夠我們測試了。 

準備工作

1:官方注冊賬號 領取20G流量 官方地址: https://cloud.tencent.com/product/lvb

2:需要一個備案過的域名(用戶播放直播視頻域名) 。這就需要自己購買了

3:支持推流的app。易推流 只支持IOS 、騰訊官方小直播 DEMO:https://cloud.tencent.com/document/product/267/32732#.E5.B0.8F.E7.9B.B4.E6.92.AD-demo 


推流URL代碼

/**
 * 獲取推流地址
 * 如果不傳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

生成播放流URL非常簡單,但是需要 有自己備案過得域名。然后在后臺添加播放域名就行了。


添加完成域名之后 就需要將域名 cname 到 下圖二中的官方分配地址


zhibo_3.jpg


zhibo_4.jpg


播放URL代碼

/**
 * 獲取播放地址
 * @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 和 播放Url

zhibo_5.jpg

推送流Url:rtmp://44159.livepush.myqcloud.com/live/54php?txSecret=安全保密替換掉&txTime=5CC066FD
播放流Url:http://lvb.54php.cn/live/54php.flv

使用騰訊小直播軟件直播


易推流App


前端演示地址:http://m.54php.cn/demo/lvb ,可能無法看到,因為浪子沒有直播了


<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>