使用腾讯云直播开发直播功能

前言:

  • 最近公司开发app直播功能,我是后端,使用java开发,经过考虑选择使用腾讯的云直播功能,主要是考虑到腾讯在这方面可以说是很有实力的了。然后就是选择产品的问题,腾讯提供了几种直播的解决方案,最完整的是互动直播,这是一套比较完善的直播解决方案,但是费用比较贵,所以。。。我们选择了云直播和云通信(IM)组合,主要是因为本来app中就集成云通信,也就是云直播用来做视频交互,云通信用来做弹幕和直播间内的业务交互。不要问我为啥不自己搭建直播服务,没技术、更没实力,光带宽就能搞死人,好了废话不多说,开始记录。

正文:

  1. 在考虑自己的需求是不是合适腾讯直播的时候,可以先注册一个腾讯云账号,在腾讯云产品中选择云直播,开通服务并进入云直播产品控制台,新用户免费赠送20G的测试流量,可以让你测试是否适合使用,好不好用。

  2. 创建拉流(播放视频流)和推流(主播直播视频流)域名,这些在腾讯云直播的文档里面都有,我就不做搬运工了,文档链接:https://cloud.tencent.com/document/product/267/32732
    2019/09/05补:如果直播需要海外直播的话,其实很简单,腾讯云直播有海外加速节点,如果是主播在海外直播,用户在国内看,那么只需要你推流地址CNAME对应的域名是国内已经备案过的域名,那么默认就可以在国外直播,如果你没有已经备案过的域名,那么在你创建账号的时候,腾讯云会给你自动生成一个推流域名,你可以直接使用那个域名推流,那个默认开着海外节点的,如果是国内开播,国外看播,那不存在啥问题的,因为国外本来就可以自由访问国内网络,文档贴一下:https://cloud.tencent.com/document/product/267/14621

  3. 创建好两个地址之后,可以先去云直播控制台的辅助工具中找地址生成器,根据你创建的推流拉流地址测试着创建两个地址,熟悉一下这个地址的规则,AppName其实就是区分你这个地址属于你的哪个app,或者根据你的具体需求,可以是不同的app,也可以是不同的业务区分,StreamName就是相当于你的直播间号(直播间id),两个都生成一下之后就会发现推流和拉流地址其实是对应的,具体大家自己试试哈在这里插入图片描述
    补一个腾讯云文档中的生成鉴权串的代码:
    https://cloud.tencent.com/document/product/267/32833

  4. 因为我们的业务是手机直播,手机看播,所以推流自然就是手机推流,这里需要前端同学(ios?安卓?)配合,在手机端使用腾讯云直播文档中提供的SDK,把生成的拉流和推流地址进行测试,具体我就不懂了哈,我是个彩笔后端,前提说一下:如果是手机端直播,推流只能是用:rtmp格式;拉流的话我们选择:FLV格式,每种格式的优缺点腾讯云文档中说的很清楚了,大家自己去看哈,我们选择FLV是因为FLV综合来说延迟较低、适用性高。调试推流和拉流的时候,有一个小程序可以用来调试:腾讯云视频

  5. 这些都准备好之后,就是直播的问题了,这里要看你们的直播需求是怎么样的,我这里举个大众化的例子,就是每个用户都可以有自己的直播间,当你有推流和拉流域名之后,你可以定一个AppName,这个AppName就是一个标识,然后你需要建一张数据库表:LiveRoom(名字随意),这个表的主键就可以用来当作房间号(你也可以使用其他字段),这个房间号,其实就是拼接到推流和拉流地址里面的StreamName,这个StreamName不需要手动去腾讯云注册,直接拼接在地址中使用就好,注意不同直播间的StreamName不能相同哈,如果你的推流地址中的StreamName相同,那么只有第一个开始推流的是有效的,也就是说同样的推流地址,谁先推谁的有效,拉流只能拉到第一个推流的那个。

  6. 如果以上都成功了,那么恭喜你视频交互是可以使用了,其他的就是完善细节问题了,那么直播肯定要有弹幕啊,所以就需要云直播和云通信配合使用了,云通信具体不是我搞的,我就不在这里多说了,反正类似qq聊天群,一个直播间可以对应一个聊天室群,把聊天室和直播间绑定,主播开播之后,视频推流开始,同时IM接入,主播就是这个聊天室群的群主(或者管理员),可以禁言所有用户,也可以全体禁言,同时直播间中的所有交互,都可以使用IM来做交互,比如直播间水友聊天、用户进入直播间、用户在直播间购买了某些商品等等,都可以通过前后端配合定义各种消息类型(json格式的等等),如果是普通的直播间聊天,那么直接前端给IM服务发消息,不用经过我们自己的app,减少交互带来的服务器压力,客户端收到消息直接显示为弹幕。但是比如某用户进入直播间这种,就可以通过服务端给IM服务发一条消息,这个消息的内容就是和前端定好的消息类型,比如消息是json格式,其中有个type表示这个消息是干嘛用的,比如某用户进入直播间、某用户在直播间购买了某个商品、某用户关注了直播间等等。这样基本上直播就正常使用了,视频活动和聊天功能都得到解决。

  7. 以上基本完成了一个直播功能,但是一般我们肯定有直播列表,直播记录等等,需要我们去分析直播数据,直播记录和直播数据分析腾讯云直播控制台都可以查询,如果要做也可以调用api使用,由于这个比较复杂,就不说了,需要我们自己根据云直播提供的api去使用。下面就说一个基本上大家都有的功能把:直播间列表(仅显示在直播的直播间)

  8. 直播间列表这个功能。。。说实话我开始走了很多弯路,因为直播间是我们自己本地库的,状态肯定也是维护在我们自己库里面的,但是主播端呢。。。贼麻烦,各种网络不好啊、app奔溃啊、app卡死啊、手机没电啊、手机爆炸。。。可能就这些把,主要是主播端的各种异常情况,导致用户看播的时候经常出问题。一开始的时候我是想接腾讯云的直播推流拉流回调,然后根据这个回调去调整我们自己库里面的直播间状态,然后我就奔溃了。。。这什么玩意嘛,这个回调一点规律没有,对于主播端异常断网、app奔溃等,很不好用,尤其是那个主播端如果网络不好,经常就会出现我们数据库里直播间状态和实际情况不符,所以我果断放弃使用这个玩意变更直播间状态,这个只用来记录直播的一些日志,比如谁在什么时候推流,什么时候出现了断流,是主播主动断流还是异常情况等等(说个题外话,在做这个的时候,有考虑过心跳方式做这个,但是其实直播的客户端SDK其实和腾讯云是有心跳机制的,所以没必要自己在做,费事)。

  9. 上面说了一堆废话(我踩过的坑),接下来说一下怎么让直播间列表比较准确的显示出确实是在直播的直播间,我们可以看腾讯云直播的api文档中有一个接口:https://cloud.tencent.com/document/product/267/20472 这个接口可以查询所有正在直播的流,哎?这个接口不就是我们所有正在直播的直播间嘛。。。所以方案就来了,写个定时任务,一分钟请求一波这个接口,获取正在直播中的流,把这个接口里面获取到的正在直播中的流,然后根据腾讯云中提供的正在直播中流,和我们库里面的正在直播状态的直播间做对比,把腾讯中正在直播的而我们库里没有在播的找出来改为正在直播状态,把我们库里在播的而腾讯云接口返回中没有的找出来改为结束直播状态。通过我的实践发现这个接口的数据比较实时,而且这个接口调用频率限制是一秒500次,完全够我们定时任务来处理这个。这样,可以说是很完美的解决了直播列表中直播间状态的问题,而且这个接口有分页功能,也不用担心一次请求数据过大的问题。

以上基本描述完了一个粗糙的直播需求,再说几个需要注意的点:
1.推流和拉流域名仅仅是个域名,不存在对应关系,只要是你这个腾讯云账号的推流和拉流域名,如果你的房间号(StreamName)一样,就算你一个是测试环境的推流地址和测试的appName,你照样有可能在正式环境的那个StreamName下拉到测试环境的推流视频,我就遇到过这个坑,我们测试环境有个直播间号是:100005,正式环境也有一个同样的,结果我们测试环境开播测试,正式环境用户也在开播,结果拉流的时候看到了我们测试环境的直播画面,还好我们都是老实人。。。。
2.断流回调不可靠,最好只用这个记录直播间的直播记录,好用这个记录来查问题,这个回调配置在云直播控制台的:功能模板->回调配置,这个配置新增的时候,记着一个点,不要只配一个回调接口,比如你想配断流回调,那你得推流和断流回调都配,这两个回调用同一个接口就好,回调的参数可以区分是断流还是推流,推流回调比较及时,断流回调比较坑,不要照这个规律
3.腾讯云直播控制台功能还算可以,前端很多数据都可以在控制台查看,比如某个直播间推流拉流相关数据,如帧数、流量、并发连接等等。


2019/09/05补:最后再补腾讯云提供的一个主播端查看推流网络情况的检测地址:https://ping.huatuo.qq.com 这个的使用方法是:打开网址,填写你们的推流域名,然后点击提交检测结果,这个地址如果给主播用,你可以直接把你自己先检测一遍,然后他的链接就会变成你们推流地址的链接,然后直接把新的链接给你们的主播去检测网络,我们直播上线后,很多都是主播端网络贼差,然后整天说这个不好那个不好。。。无语


2019/11/18补:前几天写了一篇连麦的文章,整理的还算详细,有需要的同学可以看:超详细的《使用腾讯云移动直播开发连麦》


2020/05/09补:今天突然想到可以把直播转码的相关操作补一下:
直播转码就是看播端可以调:标清、高清、原画 这种就是转码,就是看播视频的码率问题吧
先贴出来文档:
https://cloud.tencent.com/document/product/267/20385
https://cloud.tencent.com/document/product/267/32834
如果要配置转码,首先进入腾讯云直播控制台,在左边菜单栏进入:功能模版->转码配置 进去之后根据自己需要配置转码模版,模板名称 配置成简写的英文,方便在拉流地址后面拼接,配置好模版之后,点击云直播控制台的:域名管理 选择你们的拉流域名,点进去之后,在上面有个:模版配置,点击去在右上角点击编辑,在弹出的窗口中选择你配置的转码模版并进行配置,注意这里配置之后会在你的域名里面延时生效

这里配置完成之后,相当于你的腾讯云直播服务里面已经有了你配置的转码模版,然后在你生成拉流地址的时候,把上面配置的 模板名称 拼接到拉流地址后面,拼接方式为:播放地址_转码模板名称
比如你配置了一个高清模板,模版名称为:hd
原来的播放链接是:http://playxxx.com/live/123456.flv
转码后的播放链接是:http://playxxx.com/live/123456_hd.flv

这样基本就完成了看播转码


记录一下如果要保证直播效果和流畅度,首先对于直播的流畅度体验,他是依托于一个好的网络(好的上行速率),主播网络上传环境不好,啥都没用,其次就是在我们开发过程中,可以在app端开播是,通过后端接口返回主播开播时设置的各种参数,比如:

参数(手机直播)推荐范围(范围值,均可上下波动)
图像组gop2
fps30
最大码率2000(太高手机性或网络速率能会有影响)
最小码率500(太低流畅度无法接受)
实际码率1200
分辨率根据手机自适应,也可以根据播放效果使用云端转码

以上参数仅供参考,主要还是靠调试,需要后端动态返回各项参数值,app主播开播时根据效果调配,同时开发人员和主播触达问题也需要靠客户端上报主播的异常,手机异常信息进行分析(可以找腾讯云工单),这个事情需要尝试摸索出最适合的方案


2020-11-23补
补一个方便调直播视频画质的链接:https://imgcache.qq.com/open/qcloud/video/player/demo/player.html
这个可以打开后把你的直播拉流链接填进去,可以显示出来你当前直播视频的各种参数,有时候可以方便调试


就说这点吧,以后又想说的再补,写了这么多,感觉跟写作文一样。也不知道有没有人能看懂。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13315.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

破案了,c知道就是套壳chatgpt

不过也是好事儿,国内不用魔法也可以用gpt了,比一些公司硬要自己开发二流产品强多了

【报告】Chatgpt合集报告(8篇):引领AI新浪潮,开启AI新纪元(24H限时下载)

ChatGPT 注册用户突破1亿,成为史上成长最快的消费者应用。2022年11月底,由OpenAI 开发的人工智能对话聊天机器人ChatGPT推出,并迅速在社交媒体上走红,5 天注册用户数就超过100万,两个月后,注册用户突破1亿。…

卧槽,ChatGPT 太强了吧!

机器之心报道 机器之心编辑部 关于 AI 的问题,可以直接问 AI。 OpenAI 新上线的 ChatGPT 可谓是火爆出圈,这个对话模型可以回答后续问题,承认错误,挑战不正确的前提,还能帮你修改代码中的 bug…… 只要和它聊上几句&am…

visual chatgpt:talking,drawing and editing with visual foundation models

微软-多模态ChatGPT来了:Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models - 知乎摘要ChatGPT吸引了各个领域的兴趣,因其提供了一个跨领域的具有卓越会话能力和推理能力的语言界面。然而,由于ChatGPT是一个语言模…

美的智家、海尔智家,吹响新一轮AI竞赛号角

ChatGPT大行其道,各行各业迫不及待披上了AI大模型的“盔甲”,有的企业自研AI大模型,有的企业牵手头部科技企业,寻求智能产品价值的最大化,智能家电行业也不例外。 在国内,百度AI大模型文心一言一经推出就吸…

京东“百亿补贴”提前20小时上线,电商价格战开打; iPhone 15 Pro玻璃面板泄露;凹语言 0.5.0发布|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁

毋庸置疑,ChatGPT、GPT-4 引领了 AI 新时代的到来,但这种让很多环节都可以实现自动化流程的工具也让人颇为恐慌。 据路透社报道,包括图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名…

Firefox 强制弹出全屏广告惹众怒

出品 | OSC开源社区(ID:oschina2013) 近几日,有用户发现 Firefox 浏览器出现了弹出式的全屏 VPN 广告,弹出的广告会禁用浏览器的功能、拒绝用户访问界面并使后台的所有内容变灰,直到被关闭。 一些用户在 Reddit 上吐槽…

马斯克让位特斯拉中国一把手朱晓彤?内部回应:您觉得是真的吗?

整理 | 何苗 出品 | CSDN(ID:CSDNnews) 12月7日,据品玩报道称马斯克决定任命朱晓彤为特斯拉全球 CEO,消息一出,迅速引发热议。 其实马斯克要任命特斯拉新 CEO 的消息早已放出,外界也一直…

百度云首次实现季度盈利;OpenAI 或将发布新的开源语言模型;苹果已注册 xrOS 系统商标|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

世界上最早的表情符号 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 3 月 30 日,在 1951 年的今天,UNIVAC 通过验收测试。UNIVAC(UNIVersal Automatic Computer,通用自动计算机&…

已在 40 多个国家和地区上线,OpenAI 将在更多市场推出官方版 ChatGPT(多国详细列表)

OpenAI 宣布已经在 40 多个国家和地区,推出了适用于 iPhone 和 iPad 的官方 ChatGPT 应用程序。官方版 ChatGPT 于上周率先在美国市场推出,OpenAI 承诺未来几周内会继续扩展到更多国家和地区。 根据官方新闻稿,在此附上目前已经上线的国家和地…

chatgpt赋能python:Python分离三位数:一个简单但有用的SEO技巧

Python分离三位数:一个简单但有用的SEO技巧 作为一名有10年Python编程经验的工程师,我可以告诉你,Python在SEO领域有着多种应用。其中之一是分离三位数,这是一种简单但非常有用的技巧,可以帮助你提高网站的排名和流量…

Science:ChatGPT缩小了打工人的差距

克雷西 发自 凹非寺量子位 | 公众号 QbitAI Science正刊发表对ChatGPT的调查报告,《生成式人工智能对生产力影响的实验证据》 对于一些文书任务,ChatGPT不仅能在节省40%时间的同时提高18%的绩效,还降低了不同人之间的绩效差异。 MIT官方也对这…

ChatGPT简要解读(二) - ChatGPT能否产生颠覆性效应?

💂 个人主页: 同学来啦🤟 版权: 本文由【同学来啦】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助,欢迎关注、点赞、收藏和订阅专栏哦 文章目录 🐣 一、ChatGPT风险性和局限性🔴 1、风险性…

复旦发布国内首个类ChatGPT模型MOSS,和《流浪地球》有关?

昨晚,复旦大学自然语言处理实验室邱锡鹏教授团队发布国内首个类ChatGPT模型MOSS,现已发布至公开平台https://moss.fastnlp.top/ ,邀公众参与内测。 MOSS和ChatGPT一样,开发的过程也包括自然语言模型的基座训练、理解人类意图的对…

热烈欢迎CSDN副总裁邹欣老师入驻知识星球

重磅消息 CSDN 副总裁 邹欣 老师成功入驻知识星球 —— 英雄算法联盟,成为合伙人之一。 这将是未来几年内,IT界最震撼的一次合作!我相信就算现在不是,将来必定是! 当然,这对我来说也是一种极大的鼓舞&#…

这是长新冠,还是我老了?浙江出国抢订单又抢CTO;脉脉发布人才迁徙报告;元宇宙产业生态图谱;GitHub今日热榜 | ShowMeAI资讯日报

👀日报合辑 | 🎡AI应用与工具大全 | 🔔公众号资料下载 | 🍩韩信子 🎡 这是长新冠,还是我老了? 感染后身体出现了疲劳、关节疼痛、咳嗽等新症状?你并不孤单!约翰霍普金斯…

复旦MOSS大模型开源了「中国版ChatGPT」,Github和Hugging Face同时上线

最近,ChatGPT非常火,从ChatGPT3到ChatGPT4,都非常火。无论是否为互联网行业的,多少都听到过关于ChatGPT的消息。虽然百度、阿里等互联网巨头都已经宣布将会推出相关的类ChatGPT产品。但目前还未有成型的产品上线。 而昨日&#x…

入职银行科技部半年,我已经丧失跳槽的能力了!

上一篇:偷偷爆料下国内软件外包公司(2023 最新版!) 学弟分享 我是一个杭州双非的本科生,2022届毕业之后进了某银行的科技部工作,年包 20w。 当时想着在银行也算是一份安稳的工作,因此选择了给钱…