早睡早起,方能养生
Sleep early rise early, way to keep healthy

PHP对接腾讯云直播

super
2023-07-26 16:10
views 1151

跑通腾讯云直播

 

1)登录腾讯云

 

一般新用户会赠送20G流量测试

 

2)打开云直播 - 域名管理

 

https://console.cloud.tencent.com/live/domainmanage

 

3)填写一个推流域名,一个拉流域名。并正确解析CNAME 并等待生效 一般在15分钟内

 

 

4)找到推流域名,点击后面的“管理”按钮

 

5)找到推流配置 - 鉴权配置 - 主KEY

 

 

6)获取推流地址API

 

<?php

// 跨域处理
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE');
header('Access-Control-Allow-Headers:x-requested-with,content-type');

/**
  * 获取推流地址
  * 如果不传key和过期时间,将返回不含防盗链的url
  * @param domain 您用来推流的域名
  *        streamName 您用来区别不同推流地址的唯一流名称(这个你需要通过自己的业务逻辑,看传什么参数,房间号,用户标识ID什么的 都可以)
  *        key 安全密钥(就是上面说得那个主KEY)
  *        time 过期时间 sample 2016-11-12 12:00:00
  * @return String url
  */
function getPushUrl($domain, $streamName, $key = null, $time = null) {
    if($key && $time){
        $txTime = strtoupper(base_convert(strtotime($time),10,16));
        //txSecret = MD5( KEY + streamName + txTime )
        $txSecret = md5($key.$streamName.$txTime);
        $ext_str = "?".http_build_query(array(
              "txSecret"=> $txSecret,
              "txTime"=> $txTime
        ));
    }

    return [
//            'url' => "webrtc://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : ""),
			'url' => "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : ""),
            'app_name' => 'live',
            'stream_name' => $streamName,
            'expire_time' => $time
        ];
}

$domain = 'live-push.rongsp.com';
$streamName = 'test';
$key = '79c80422baa77ecab5e0859b0fbae924';
$time = '2023-07-26 17:56:12';

$data = getPushUrl($domain, $streamName, $key, $time);

echo json_encode(['code' => 200, 'msg' => 'success!', 'data' => $data]);

?>

 

如需测试推流,可打开“腾讯视频云”微信小程序,通信 - RTMP推流

 

 

填写API中生成的rtmp开头的地址,然后点击“开始”即可开始直播推流

 

7)H5观看直播

 

文档:https://cloud.tencent.com/document/product/454/7503

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>直播测试</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">

    <link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/tcplayer.min.css" rel="stylesheet"/>

    <!--如果需要在 Chrome 和 Firefox 等现代浏览器中通过 H5 播放 FLV 格式的视频,需要在 tcplayer.vx.x.x.min.js 之前引入 flv.min.x.x.x.js。-->
    <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/libs/flv.min.1.6.3.js"></script>

    <!--播放器脚本文件-->
    <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/tcplayer.v4.6.0.min.js"></script>
</head>

<body>
    <video id="player-container-id" width="1000" height="600" preload="auto" playsinline webkit-playsinline></video>

    <script type="text/javascript" charset="utf-8">

        var player = TCPlayer('player-container-id', {}); // player-container-id 为播放器容器 ID,必须与 html 中一致
        player.src('http://live-pull.rongsp.com/live/test.flv'); // url 播放地址(播放域名/{app_name}/{stream_name}.flv)

    </script>
</body>
</html>

 

至此,已经跑通了这个朴实无华的直播demo



分享
0 条讨论
top