腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流

本文涉及的产品
视频直播,500GB 1个月
简介: 腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流

腾讯云直播开发日记(三)

直播的时候,用户还是需要和主播互动的,我们当前的互动就只有刷礼物,那没钱说礼物怎么搞? 不得让他们吹水? 所以我们需要做一个聊天室, 这个话自己也能做, 系统上线迫在眉睫,工作刻不容缓,所以我们一致决定使用最强能力

因为我们是先有的社交后有的直播, 所以直播和社交的并不是同一个厂商, 我们的IM相关是网易的, 但是开发思路都一样, 也给大家说一下.

IM应用场景介绍

因为就是tcp长连接, 所以基本功能大家都能想象出来, 例如常见的: 加好友, 群聊, 点对点聊天等等, 根据这些我们再进行相关扩展

单聊

点对点聊天,支持的消息类型包括文字、图片、语音、视频、地理位置、文件、通知、提示、智能对话机器人、自定义消息。同时提供离线消息、漫游消息、多端同步、云端历史记录、消息推送能力。像这个还是比较有意思的

群聊

建立一个群, 群里有不同角色, 大家一顿瞎聊, 查看群成员然后交友

聊天室

聊天室是一种比群组组织更加松散的形态,用户可以随意进出聊天室,一般来说也没有太固定的组织形态。典型的应用场景例如娱乐直播、教育直播内的多人聊天。 我们的直播 看来就需要这个了

直播接入聊天室

聊天室肯定要是需要标识符的, 我们需要将直播间和聊天室关联, 那么 进入直播间 = 进入聊天室创建直播间 = 创建聊天室关闭直播间 = 关闭聊天室直播间聊天 = 聊天室聊天

我们可以在live_room增加一个im_room_id, 这样的话就可以完成吹水功能, 流程和大家简述一下:

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

再说一个场景: 例如斗鱼直播和虎牙直播, 冲的越多就对应等级越高, 进来还有出场动画, 那这个我们能不能利用我们讲的知识实现了呢? 博主就不细说了, 相信大家都明白了

IM基本就这么些, 看看文档结合业务开发应该是比较轻松的

直播转码

直播转码就是看播端可以调:标清、高清、原画 这种就是转码,就是看播视频的码率问题, 按分钟收费

文档地址:

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

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

连麦\混流

我们经常看直播就会发现, 主播是可以和主播进行视频互动, 这个操作我们就叫做混流.

文档

如何实现连麦:https://cloud.tencent.com/document/product/267/8108

云端混流:https://cloud.tencent.com/document/product/267/8832

连麦混流方案:https://github.com/tencentyun/qcloud-documents/blob/master/product/%E8%A7%86%E9%A2%91%E6%9C%8D%E5%8A%A1/%E7%A7%BB%E5%8A%A8%E7%9B%B4%E6%92%AD/to-del/%E8%BF%9E%E9%BA%A6-%E5%8D%87%E7%BA%A7%E6%96%B9%E6%A1%88(Android).md

选择连麦方案

这个图应该很明确的说明了连麦混流的2个方式,混流其实就是把两个推流的画面混在一起,生成一个叠加的画面,然后用户就可以同时看到两个主播的直播, 需要购买连麦包

  • 客户端混流

支持的样式灵活,可以平滑的处理连麦画面切换, 需要获取两个推流地址, 然后操作, 服务端的话可以给客户端返回需要混流的流地址, 跟服务端没啥大关系

  • 服务端混流

服务端混流,其实就是拿到连麦的两个人的推流流id,然后调用混流的Http接口,腾讯云会把你传过去的参数解析,然后把两个流混成一个流,混好之后的视频流会输出到你指定的流的输出流上面,就实现了服务端混流。

我们选择了客户端混流, 客户端混流灵活, 对连麦异常断开处理比较友好, 博主只是个后端菜狗, 所以就没法描述更多客户端细节了

目录
相关文章
|
3月前
|
存储 监控 开发工具
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
60 0
|
6月前
|
开发工具 CDN 容器
基于Html+腾讯云播SDK开发的m3u8播放器
周末业余时间在家无事,学习了一下腾讯的云播放sdk,并制作了一个小demo(m3u8播放器),该在线工具是基于腾讯的云播sdk开发的,云播sdk非常牛,可以支持多种播放格式。
234 1
|
6月前
|
安全 小程序 网络安全
阿里云腾讯云免费SSL证书托管系统的开发初衷
由于Google等公司推动,互联网安全趋势将SSL证书期限统一缩短至3个月,阿里云和腾讯云相继跟进。对于管理多个站点的小公司而言,手动维护变得繁琐。为自动化此过程,作者探索使用API解决方案。通过研究腾讯云API,成功实现证书的自动创建、审核和下载。为应对无免费到期提醒服务,作者创建计划任务,在证书到期前7天发送提醒,初期采用短信提醒,并增设公众号模板消息作为备选方案,完成到期提醒系统的构建。接下来的文章将讨论SSL证书的申请和下载流程。
147 2
|
API PHP 开发工具
漏刻有时API接口实战开发系列(11):腾讯云短信3.0sms开发SDK环境部署及配置的实战总结
漏刻有时API接口实战开发系列(11):腾讯云短信3.0sms开发SDK环境部署及配置的实战总结
241 0
|
NoSQL 算法 小程序
腾讯云直播开发日记 (二)附近直播-直播礼物-直播回放
腾讯云直播开发日记 (二)附近直播-直播礼物-直播回放
139 0
|
存储 缓存 开发框架
SpringCloud微服务实战——搭建企业级开发框架(二十九):集成对象存储服务MinIO+七牛云+阿里云+腾讯云
微服务应用中图片、文件等存储区别于单体应用,单体应用可以放到本地读写磁盘文件,微服务应用必需用到分布式存储,将图片、文件等存储到服务稳定的分布式存储服务器。目前,很多云服务商提供了存储的云服务,比如阿里云OSS、腾讯云COS、七牛云对象存储Kodo、百度云对象存储BOS等等、还有开源对象存储服务器,比如FastDFS、MinIO等。
898 56
SpringCloud微服务实战——搭建企业级开发框架(二十九):集成对象存储服务MinIO+七牛云+阿里云+腾讯云
|
存储 运维 小程序
基于腾讯云开发小程序(新闻发布及共享平台)中
基于腾讯云开发小程序(新闻发布及共享平台)中
146 0
基于腾讯云开发小程序(新闻发布及共享平台)中
|
存储 运维 小程序
基于腾讯云开发微信小程序(新闻发布及共享平台)下
基于腾讯云开发微信小程序(新闻发布及共享平台)下
103 0
基于腾讯云开发微信小程序(新闻发布及共享平台)下
|
存储 JSON 小程序
基于腾讯云开发微信小程序(新闻发布及共享平台)上
基于腾讯云开发微信小程序(新闻发布及共享平台)上
295 0
基于腾讯云开发微信小程序(新闻发布及共享平台)上
|
小程序 前端开发 定位技术
首届腾讯云公益编程挑战赛收官,云开发助力公益项目高效落地
首届腾讯云公益编程挑战赛收官,云开发助力公益项目高效落地
250 0
首届腾讯云公益编程挑战赛收官,云开发助力公益项目高效落地

热门文章

最新文章