PHP对接腾讯云直播
super
2023-07-26 16:10
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 条讨论