Skip to content

Latest commit

 

History

History
218 lines (158 loc) · 12.4 KB

README.md

File metadata and controls

218 lines (158 loc) · 12.4 KB

小直播解决方案服务端

为观众端提供直播间列表和回放列表,以及账号注册、登录、个人信息维护等功能。

开通直播服务

step 1.1 开通视频直播服务

登录腾讯云官网,进入 云直播管理控制台,如果服务还没有开通,单击【申请开通】。

step 1.2 绑定直播域名

按照相关政策要求,您需要添加自有的已备案域名才能使用腾讯云的 CDN 播放功能,请参见 域名管理CNAME 配置 进行配置。

<span id="get_lvb_license">

step 1.3 获取 SDK 的测试 License

“小直播”是基于腾讯云 LiteAVSDK 实现推流和播放功能的,但您需要提前绑定 License 才能使用其提供的推流功能,您可以先按照如下步骤获取“小直播”所需要的测试 License:

  1. 云直播管理控制台 中点击进入 移动直播 License 页面。
  2. 填写【Package Name】为 Android 的包名,【Bundle Id】为 iOS 的 Bundle Id。
  3. 单击【免费创建】,创建成功后,页面会显示生成的 License 信息。请记录 Key 和 LicenseUrl,便于在 SDK 初始化时使用。

<span id="get_im_config">

step 1.4 在应用管理中添加一个新的应用

“小直播”是基于腾讯云 TIMSDK 实现文字聊天室和弹幕消息等互动功能的,但您需要先创建一个 IM 应用才能使用其提供的聊天室功能,您可以先按照如下步骤获取“小直播”所需要的 SDKAppID 和 SecretKey 两个重要信息:

  1. 进入【云直播控制台】>【直播SDK】>【应用管理】,单击【创建应用】,待应用创建完成后,记录其 SDKAppID 信息。
  2. 单击目标应用的 SDKAppID,进入应用详情页面。
  3. 选择【应用管理】页签,单击【编辑】,输入一个管理员名称(例如“admin”),单击【添加】按钮,之后再单击【确定】按钮。
  4. 单击【查看密钥】,复制保存密钥信息 SecretKey。

开通对象存储服务

step 2.1 申请开通对象存储服务

进入 对象存储服务控制台,如果还没有服务,直接单击【创建存储桶】即可。

step 2.2 创建存储桶并获取基本信息

  1. 填写名称,选择所属地域,设置访问权限为【公有读私有写】。单击【确定】创建存储桶。

  2. 单击【基础配置】,记录存储空间名称所属地域,分别对应于后文 修改云服务器配置信息 中的 COSKEY_BUCKETCOSKEY_BUCKET_REGION

step 2.3 获取密钥信息

进入【对象存储控制台】>【密钥管理】>【云API密钥】 获取 APPIDSecretIdSecretKey,分别对应下文 修改云服务器配置信息 中的 COSKEY_APPIDCOSKEY_SECRETIDCOSKEY_SECRETKEY

腾讯云CVM镜像部署

step 3.1 创建虚拟主机

进入 CVM 控制台 ,单击【新建】开始创建云服务器。

选择【自定义配置】选择符合您需求的虚拟主机,在镜像提供栏选择【镜像市场】,并单击【从镜像市场选择】进服务市场选取镜像。选中图中的【小直播镜像】,您可以直接在搜索栏中搜索。

step 3.2 设置云服务器

配置云服务器的访问密码,设置安全组。

!安全组一定要放开80、443服务端口 请妥善保管 root 密码,该密码将用于后续 修改云服务器配置信息 操作。

step 3.3 查看云服务器信息

付款后生成云服务器。请记录外网 IP 地址,将用于后续 配置录制回调终端集成 操作。

<span id="STEP3_4">

step 3.4 准备配置文件

将以下内容粘贴到文本编辑器(如记事本),按照下方脚本中的注释填写各项内容,其中xxxx的部分在本文前半部分均能找到对应的值。

#!/bin/bash

echo "<?php
define('API_KEY', 'xxxxxxxx'); //api key,用于录制回调的鉴权。请替换为配置录制回调中记录的回调密钥

// COS配置用于头像和推流封面的上传存储
define('COSKEY_BUCKET', 'xxxxxxxx'); //请替换为创建存储桶并获取基本信息中记录的存储空间名称
define('COSKEY_BUCKET_REGION', 'xxxxxxxx'); //请请替换为创建存储桶并获取基本信息中记录的所属地域
define('COSKEY_SECRECTID', 'xxxxxxxx'); //请替换为获取密钥信息中记录的SecretId(和SecretKey配对)
define('COSKEY_SECRECTKEY', 'xxxxxxxx'); //请替换为获取密钥信息中记录的SecretKey
define('COSKEY_APPID', 12345678); //请替换为获取密钥信息中记录的APPID
define('COSKEY_EXPIRED_TIME', 30); //COS签名过期时间,单位s

define('IM_SDKAPPID', 12345678); // 即时通信 sdkappid
define('IM_SECRETKEY', 'xxxxxxxx'); // 即时通信 密钥
" > /data/live_demo_service/conf/OutDefine.php;

step 3.5 登录云服务器

  1. 进入 CVM 控制台 ,单击目标主机所在行【登录】。

  2. 选择【标准登录方式】区域的【立即登录】,输入配置主机时设置的密码,单击【确认】。

step 3.6 修改配置

登录成功后会进入一个网页版的控制台界面,您只需要直接将 准备配置文件 中准备好的文本粘贴过来,按 Enter 键确认即可。

至此业务后台部署完成

终端集成及回调设置

终端集成主要是小直播源码集成,主要是以下简单几步:

小直播源码下载

小直播 App 的源码位于 Github/Github 仓库中,可以在Android/XiaoZhiBoiOS/XiaoZhiBo分别获取到 Android 和 iOS 的源码。

ZIP 包 Github Gitee
DOWNLOAD Github Gitee

替换“小直播” 中的 License 配置

我们在 step 1.3 中拿到的 LiteAVSDK 的测试版 License 在这一步可以发挥作用了,参照如下的说明替换源代码中的两行字符串(License URL 和 Key) 即可:

  • iOS 版替换方案: 打开iOS/XiaoZhiBo/XiaoZhiBoApp/Classes/App/目录下的 TCGlobalConfig.h 文件,将文件里的 LICENCE_URLLICENCE_KEY 分别替换为 step 1.3:获取 SDK 的测试 License 中记录的 License URL 和 Key。

  • Android 版替换方案: 打开Android/XiaoZhiBo/app/src/main/java/com/tencent/qcloud/xiaozhibo目录下的 TCGlobalConfig.java 文件,将文件里的 LICENCE_URLLICENCE_KEY 分别替换为 step 1.3:获取 SDK 的测试 License 中记录的 License URL 和 Key。

替换小直播后台服务器地址

小直播后台服务的地址为http://云服务器公网 IP 地址。例如http://134.175.197.138

  • iOS: 打开iOS/XiaoZhiBo/XiaoZhiBoApp/Classes/App/目录下的 TCGlobalConfig.h 文件,将文件里的kHttpServerAddr改为您的小直播后台服务的地址。
  • Android: 打开Android/XiaoZhiBo/app/src/main/java/com/tencent/qcloud/xiaozhibo目录下的 TCGlobalConfig.java 文件,将文件里的APP_SVR_URL改为您的小直播后台服务的地址。

注意:如果服务器没有配置证书,这里的云主机服务器地址需要用http,而不能用https。

在直播控制台配置录制回调地址

小直播 App 中的“精彩回放”功能依托于云直播的录制功能。

step 4.1 配制录制参数

  1. 在云直播菜单栏内选择【功能模板】>【录制配置】,单击 "+" 进行设置。

  2. 设置基本信息,填写【模板名称】,并选择录制文件类型(HLS、MP4 或者 FLV),单击【保存】。

<span id="STEP4_2">

step 4.2 配置录制回调

  1. 在云直播菜单栏内选择【功能模板】>【回调配置】,单击 "+" 创建回调模板。

  2. 填写并记录【回调密钥】,填写【录制回调】为 http://您的云服务器公网 IP 地址/callback/tape_callback.php,单击【保存】。

step 4.3 应用配置到域名

  1. 进入云直播控制台 域名管理,单击推流域名后的【管理】。

  2. 单击【模板配置】,分别将【回调配置】和【录制配置】设置为上述步骤中新建的模板。

后台源码目录结构说明

xiaozhibo_server_php
├── callback
│   └── tape_callback.php        //录制回调的处理
├── common
│   ├── AbstractInterface.php    //所有接口类的抽象父类,输入输出的统一处理
│   ├── Common.php						
│   ├── ConfFactory.php					 //用于读取数据库配置文件
│   ├── ErrorCode.php					   //错误码定义
│   ├── GlobalDefine.php				 //一些全局定义
│   ├── GlobalFunctions.php			 //通用函数,一些无用的函数清理掉
│   ├── Ini.php							     //ini配置文件读取
│   ├── MiniLog.php						   //日志
│   ├── Param.php						     //输入参数检查
│   ├── ParamChecker.php				 //输入参数检查
│   └── TLSSigAPIv2.php				   //UserSig计算
├── conf
│   ├── OutDefine.php					   //腾讯云账号信息配置文件
│   ├── cdn.inc.ini              //总配置文件
│   └── cdn.route.ini            //数据库配置文件
├── dao                          //数据库相关
│   ├── dao_base
│   │   └── dao.class.php				 //数据库对外的类
│   ├── dao_live
│   │   └── dao_live.class.php	 //数据库对外的实现类,各种sql语句在这里
│   └── redis_cache.php          //redis本地缓存
├── fastcgi.conf                 //nginx配置文件
├── index.php
├── interface
│   ├── get_cos_sign.php			   //上传头像、封面图片用
│   ├── get_user_info.php			   //获取用户信息,用于漫游个人信息	
│   ├── get_vod_list.php			   //获取回放列表
│   ├── login.php					       //登录,获取token
│   ├── refresh.php					     //刷新token
│   ├── register.php				     //注册
│   └── upload_user_info.php		 //更新个人信息
├── interface.php					       //接口处理入口
└── liteav_demo.nginx				     //nginx配置文件