大米CMS官网论坛,大米站长联盟,大米站长之家,大米开发者社区

 找回密码
 注册大米会员

QQ登录

只需一步,快速开始

查看: 6177|回复: 0
打印 上一主题 下一主题

【原创】个人理解:使用腾讯云实现直播的步骤

[复制链接]

498

主题

775

帖子

7639

积分

超级版主

Rank: 8Rank: 8

积分
7639

授权用户

跳转到指定楼层
楼主
发表于 2021-3-26 14:52:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 追影 于 2021-3-26 14:57 编辑

直播主要分为三个端:直播数据采集端(采集数据并编码推给服务端)
服务端 (负责解码并推流到客户端),腾讯云已经帮你完全做好你不用管
客户端拉流播放

腾讯云直播使用流程

首先登录注册https://console.cloud.tencent.com/live/common/apply?code=0
配置域名 将配置的域名到自己域名管理里cname解析

php生成多房间 推流服务器url与播放url实例:下面要用到这两个url
  1. <?php
  2. function getPushUrl($domain, $streamName, $key = null, $time = null){
  3.     if($key && $time){
  4.           $txTime = strtoupper(base_convert(strtotime($time),10,16));
  5.           //txSecret = MD5( KEY + streamName + txTime )
  6.           $txSecret = md5($key.$streamName.$txTime);
  7.           $ext_str = "?".http_build_query(array(
  8.                 "txSecret"=> $txSecret,
  9.                 "txTime"=> $txTime
  10.           ));
  11.     }
  12.         
  13.     return "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : "");
  14. }

  15. echo getPushUrl("push.abcd.com","shadowgirl","d68de0084956ad55d2996ee7c83152db",date('Y-m-d H:i:s',strtotime("+2 day")));
  16. echo '<br>';

  17. function getPlayUrl($domain,$streamName, $key,$time,$playFormat = 'hls')
  18. {
  19.         $txTime = strtoupper(base_convert(strtotime($time),10,16));
  20.     $txSecret = md5($key.$streamName.$txTime);
  21.     $extStr = '?'.http_build_query([
  22.             'txSecret' => $txSecret,
  23.             'txTime' => $txTime
  24.         ]);

  25.     switch ($playFormat)
  26.     {
  27.         case 'flv':
  28.             $playUrl = "http://".$domain."/live/".$streamName .'.flv'. (isset($extStr) ? $extStr : "");
  29.             break;

  30.         case 'hls':
  31.             $playUrl = "http://".$domain."/live/".$streamName .'.m3u8'. (isset($extStr) ? $extStr : "");
  32.             break;

  33.         case 'rtmp':
  34.         default:
  35.             $playUrl = "rtmp://".$domain."/live/".$streamName . (isset($extStr) ? $extStr : "");
  36.             break;
  37.     }

  38.     return $playUrl;

  39. }
  40. echo getPlayUrl("play.abcd.com","shadowgirl","d68de0084956ad55d2996ee7c83152db",date('Y-m-d H:i:s',strtotime("+2 day")));
复制代码


1:直播数据采集端 可以简单理解主播端  可以用任何高级语言编写采集流媒体数据编码向服务端发送数据
这里简单用
ffmpeg 官网 下载链接为:http://ffmpeg.org/您也可以用这个https://obsproject.com/
命令: rtmp推流
  1. ffmpeg.exe -re -i "test.mp4" -acodec aac -ar 32000 -vcodec copy -f flv "rtmp://腾讯云的rmtp服务端地址"
复制代码
2:由于服务端腾讯云已经做好我们不管,客户端html5播放即可
  1. <script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.3.js" charset="utf-8"></script>;
  2. <div id="id_test_video" style="width:100%; height:auto;"></div>
  3. <script>

  4. var player = new TcPlayer('id_test_video', {
  5. "m3u8": "http://播放域名/live/shadowgirl.m3u8?txSecret=2396273493870044dc552af2a00cc34e&txTime=60601ED8", //请替换成实际可用的播放地址
  6. "autoplay" : true,      //iOS 下 safari 浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
  7. "poster" : "http://www.test.com/myimage.jpg",
  8. "width" :  '480',//视频的显示宽度,请尽量使用视频分辨率宽度
  9. "height" : '320'//视频的显示高度,请尽量使用视频分辨率高度
  10. });
  11. </script>
复制代码

效果图:

多房间(多人)在线直播
实现思路就这么简单!!




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册大米会员

本版积分规则

QQ|小黑屋|大米CMS社区 ( 蜀ICP备11002200号-2广告联系:广告联系 

Powered by 大米CMS

© 2010-2020 大米CMS Inc.

快速回复 返回顶部 返回列表