golang 腾讯云直播开发日记(一)

1 篇文章 0 订阅

golang 腾讯云直播开发日记(一)

前言

最近要开发一个直播类的app,由于技术和资金的问题,我们选择云端服务,首先尝试的是腾讯云的直播服务。本文将介绍使用腾讯云直播时遇到的问题和解决思路及代码。

1.直播云服务

首先要做的就是单人直播,采用腾讯云的直播云服务开发。
腾讯云提供了golang的sdk ,请自行下载,要注意的是SDK 3.0 仅支持GO 1.9以上的版本 相关链接:https://github.com/TencentCloud/tencentcloud-sdk-go
在线测试API地址
https://console.cloud.tencent.com/api/explorer?Product=live&Version=2018-08-01

1.1推流

推流,指的是把采集阶段封包好的内容传输到服务器的过程,如想了解,可点击查看直播推流的介绍
如何生成推流地址?
1.腾讯自带的地址生成器
https://console.cloud.tencent.com/live/addrgenerator/addrgenerator
2.计算生成
作为后端开发当然用第二种方式,但是golang的sdk并没有提供推流拉流地址生成的接口,可能是大佬们觉得太简单了,只能自己写了。

腾讯云的推流地址格式为:
在这里插入图片描述
domain:你的推流域名
AppName:看需求,一般为 live
StreamName:流名字,直播房间ID
txSercet:鉴权key,MD5加密
txTime:推流地址过期日期
hex(time):指的是秒级的timestamp(时间戳)

说一下txSercet的key,key可以在域名管理找到
域名管理->点击你的推流地址->推流配置->鉴权配置(主key)
在这里插入图片描述
golang代码如下

//MD5
func ToMd5(str string) string {
	data := []byte(str)
	hash := md5.New()
	hash.Write(data)
	md := hash.Sum(nil)
	mdStr := hex.EncodeToString(md)
	return mdStr
}


//生成hex(time),86400为一天的秒数,即一天的有效期
func BuildTxTime() string {
	timestamp := time.Now().Unix()
	timestamp = timestamp + 86400
	baseTime := strconv.FormatInt(timestamp, 16)
	return baseTime
}

//TxSecret
func BuildTxSecret(roomId string) string {
	KEY := key  //鉴权配置的key
	streamName :=  roomId //流名字可以为房间ID
	txTime := BuildTxTime()
	return ToMd5(KEY + streamName + txTime)
}

//生成推流地址
func BuildStream(roomUUID string) string {
	txTime := BuildTxTime()
	txSecret := BuildTxSecret(roomID)
	streamName :=  roomID
	stream := "rtmp://" + PushDomain + ".livepush.myqcloud.com/live/" + streamName + "?txSecret=" + txSecret + "&txTime=" + txTime
	return stream
}

1.2拉流

拉流相对简单,也没有加密
拉流地址生成代码

func BuildPullStream(streamName string) string {
	stream := "rtmp://你的拉流地址/live/"+streamName
	return stream
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值