有想做直播的朋友可以了解一下,我使用的是腾讯云的直播接口,
如果你是腾讯云的新用户的话你有一段时间的免费测试时间
首先,要开通云直播+云通信
2.云服务开通
开通直播服务
申请开通视频直播服务
进入 直播管理控制台,如果服务还没有开通,则会有如下提示: 点击申请开通,之后会进入腾讯云人工审核阶段,审核通过后即可开通。
配置直播码
直播服务开通后,进入【直播控制台】>【直播码接入】>【接入配置】 完成相关配置,即可开启直播码服务: 点击【确定接入】按钮即可。
获取直播服务配置信息
从直播控制台获取APP_ID
、APP_BIZID
、API_KEY
,后面配置服务器会用到:
开通云通信服务
申请开通云通讯服务
进入云通讯管理控制台,如果还没有服务,直接点击直接开通云通讯按钮即可。新认证的腾讯云账号,云通讯的应用列表是空的,如下图:
点击创建应用接入按钮创建一个新的应用接入,即您要接入腾讯云IM通讯服务的App的名字,我们的测试应用名称叫做“RTMPRoom”,如下图所示:
点击确定按钮,之后就可以在应用列表中看到刚刚添加的项目了,如下图所示:
配置独立模式
上图的列表中,右侧有一个应用配置按钮,点击这里进入下一步的配置工作,如下图所示。
获取云通讯服务配置信息
从云通信控制台获取IM_SDKAPPID
、IM_ACCOUNTTYPE
、ADMINISTRATOR
、PRIVATEKEY
、PUBLICKEY
,后面配置服务器会用到:
从验证方式中下载公私钥,解压出来将private_key用文本编辑器打开,如:
-----BEGIN PRIVATE KEY----- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -----END PRIVATE KEY-----
将其转换成字符串形式如下所示,后面在server配置文件中使用,请注意每行后面要加入\r\n:
"-----BEGIN PRIVATE KEY-----\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "-----END PRIVATE KEY-----\r\n"
PUBLICKEY也采用同样的方式编辑,供后续使用。
3.修改配置信息
后台使用 spring 框架搭建,开发环境是 IntelliJ IDEA,java 需要使用 1.8 或以上。用 IntelliJ IDEA 导入工程源码,把\src\main\java\com\tencent\qcloud\roomservice\common
目录下的 Config.java 中APP_ID、APP_BIZID、PUSH_SECRET_KEY、APIKEY、IM_SDKAPPID、IM_ACCOUNTTYPE、ADMINISTRATOR、PRIVATEKEY、PUBLICKEY
等配置项替换成您的腾讯云账号信息。
public class Config { /** * 需要开通云直播服务 * 参考指引 @https://cloud.tencent.com/document/product/454/15187#.E4.BA.91.E6.9C.8D.E5.8A.A1.E5.BC.80.E9.80.9A * 有介绍APP_BIZID 和 PUSH_SECRET_KEY的获取方法。 */ public class Live { /** * 云直播 APP_ID = 和 APIKEY 主要用于腾讯云直播common cgi请求。appid 用于表示您是哪个客户,APIKey参与了请求签名sign的生成。 * 后台用他们来校验common cgi调用的合法性 */ public final static int APP_ID = 0; /** * 云直播 APP_BIZID = 和pushSecretKey 主要用于推流地址的生成,填写错误,会导致推流地址不合法,推流请求被腾讯云直播服务器拒绝 */ public final static int APP_BIZID = 0; /** * 云直播 推流防盗链key = 和 APP_BIZID 主要用于推流地址的生成,填写错误,会导致推流地址不合法,推流请求被腾讯云直播服务器拒绝 */ public final static String PUSH_SECRET_KEY = ""; /** * 云直播 API鉴权key = 和appID 主要用于common cgi请求。appid 用于表示您是哪个客户,APIKey参与了请求签名sign的生成。 * 后台用他们来校验common cgi调用的合法性。 */ public final static String APIKEY = ""; // 云直播 推流有效期单位秒 默认7天 public final static int validTime = 3600 * 24 * 7; } /** * 需要开通云通信服务 * 参考指引 @https://cloud.tencent.com/document/product/454/7953#3.-.E4.BA.91.E9.80.9A.E8.AE.AF.E6.9C.8D.E5.8A.A1.EF.BC.88im.EF.BC.89 * 有介绍appid 和 accType的获取方法。以及私钥文件的下载方法。 */ public class IM { /** * 云通信 IM_SDKAPPID = IM_ACCOUNTTYPE 和 PRIVATEKEY 是云通信独立模式下,为您的独立账号 identifer, * 派发访问云通信服务的userSig票据的重要信息,填写错误会导致IM登录失败,IM功能不可用 */ public final static long IM_SDKAPPID = 0; /** * 云通信 账号集成类型 IM_ACCOUNTTYPE = IM_SDKAPPID 和 PRIVATEKEY 是云通信独立模式下,为您的独立账户identifer, * 派发访问云通信服务的userSig票据的重要信息,填写错误会导致IM登录失败,IM功能不可用 */ public final static String IM_ACCOUNTTYPE = ""; // 云通信 管理员账号 public final static String ADMINISTRATOR = "admin"; /** * 云通信 派发usersig 采用非对称加密算法RSA,用私钥生成签名。PRIVATEKEY就是用于生成签名的私钥,私钥文件可以在互动直播控制台获取 * 配置privateKey * 将private_key文件的内容按下面的方式填写到 PRIVATEKEY。 */ public final static String PRIVATEKEY = "-----BEGIN PRIVATE KEY-----\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "-----END PRIVATE KEY-----\r\n"; /** * 云通信 验证usersig 所用的公钥 */ public final static String PUBLICKEY = "-----BEGIN PUBLIC KEY-----\n" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"+ "-----END PUBLIC KEY-----\n"; } /** * 多人音视频房间相关参数 */ public class MultiRoom { // 房间容量上限 public final static int maxMembers = 4; // 心跳超时 单位秒 public final static int heartBeatTimeout = 20; // 空闲房间超时 房间创建后一直没有人进入,超过给定时间将会被后台回收,单位秒 public final static int maxIdleDuration = 30; } /** * 双人音视频房间相关参数 */ public class DoubleRoom { // 心跳超时 单位秒 public final static int heartBeatTimeout = 20; // 空闲房间超时 房间创建后一直没有人进入,超过给定时间将会被后台回收,单位秒 public final static int maxIdleDuration = 30; } /** * 直播连麦房间相关参数 */ public class LiveRoom { // 房间容量上限 public final static int maxMembers = 4; // 心跳超时 单位秒 public final static int heartBeatTimeout = 20; // 空闲房间超时 房间创建后一直没有人进入,超过给定时间将会被后台回收,单位秒 public final static int maxIdleDuration = 30; // 最大观众列表长度 public final static int maxAudiencesLen = 30; } /** * 创建者退出的时候是否需要删除房间 * 默认false。表示房间所有成员是对等的,第一个进房的人退出并不会销毁房间,只有房间没人的时候才会销毁房间。 * 此配置项只针对双人和多人实时音视频 */ public final static boolean isCreatorDestroyRoom = false; }
下载直播小程序代码 :https://github.com/TencentVideoCloudMLVBDev/MiniProgram
网站里有相关对小程序配置操作
我现在就开始就讲重点了
如果你的视频直播不了,是因为你用腾讯云提供的默认的推拉流域名,
你要把你的推拉域名修改成自己自定义的
首先进入推流域名的管理 你自定义域名的
然后是播放域名的设置
替换掉就是地址了
防盗链的配置,参考控制台的代码就可以,只是把换成streamName就行
换成streamName就行了
也就是只要把在后台把这些相应的默认的地址换成我自己的就可以了
LiveUtil.java //流管理逻辑实现
这些都要替换成自己的域名
比如这样只
/** * 生成混流地址 */ public String genMixedPlayUrl(String subID, String suffix) { String liveCode = Config.Live.APP_BIZID + "_" + subID; return "https://" + Config.Live.APP_BIZID + ".liveplay.myqcloud.com/live/" + liveCode + "." + suffix; }
你要把https修改成http,不然你的不然你的直播会会成为这样的
然后黑屏
好了你可以直播了,去试试吧