SDK构成

互动直播SDK由两部分构成,IMSDK和AVSDK

其中IMSDK为云通信SDK,为AVSDK提供账号登录、信令通道、IM弹幕消息、日志模块、日志上报等功能

AVSDK提供摄像头采集、编码、解码、美颜等一系列功能(下图为AVSDK整体框架)

登录交互逻辑

腾讯云互动直播提供两种账号对接方式

  • 托管模式

    由腾讯提供账号的注册、密码存储及校验

  • 独立模式

    由第三方业务自己保存账号体系,使用互动直播时,腾讯对第三方账号体系进行一定程度校验,是目前应用最广泛的一种验证方式。

本文着重讲解独立模式使用方法

详细内容参考账号登录集成说明

1.App登录业务服务器,做用户身份业务方鉴权

2.业务服务器验证成功后,根据用户身份,使用私钥加密用户身份信息后生成UserSig返回给客户端

3.将UserSig传给IMSDK的login接口,完成腾讯云服务器登录

创建房间交互逻辑

互动直播采用房间的概念进行音视频流交换,即观看者与主播必须同一个房间内才能完成通信。但互动直播不进行房间管理操作,相关的房间号分配、房间成员列表、房间的观众主播进出都可由业务来管理(可借助IMSDK实现该功能,详情请见房间状态通知)

创建房间交互流程如下:

1.主播向业务服务器请求创建房间

2.业务服务器分配房间号

3.主播使用分配的房间号调用AVSDK创建房间接口完成创建

4.通知业务服务器创建房间完成

观众进入房间交互逻辑

在主播完成房间创建后,业务直播平台已经有当前正在直播的房间列表。观众在登陆后可以看到该房间列表点击后进入房间,可发IM消息或者业务逻辑通知给其他已经在看的观众和主播。详细流程图如下:

注意:AVSDK不提供观众进入直播间通知,且不维护房间成员数及列表,可使用IMSDK实现或业务自行实现(见示意图虚线部分)

观众主播IM消息交互逻辑

观众正在欣赏主播表演同时,可以和主播进行IM互动,进行聊天、送花和送礼物等其它操作

当观众需要进行送花、送礼物等计费相关操作时,有两种方案可供选择

  • 观众送花,由互动直播云回调业务后台,进行扣费
  • 观众送花,由App上行请求至直播平台,完成扣费操作后,直播平台通过IMSDK REST API接口发送该消息

当直播间内成员较多时,较大消息量可能会引起主播性能问题,业务侧需要优化渲染策略,同时互动直播云(IMSDK)可控制消息频率

观众退出房间交互逻辑

观众退出房间时,也需要通知给主播和其它的观众,相关流程可参考观众进入房间交互逻辑

主播退出房间交互逻辑

当主播退出房间时,需做以下几件事情

  • 通知业务直播平台,直播间销毁
  • 通知其它的观众,主播已退出
  • 显示直播结束页(展示直播时长、直播热度等)

流程图如下:

视频连麦

连麦功能是腾讯云互动直播SDK在直播场景下推出的特色功能,可供主播和某一(多)观众进行视频连线,相互交流,其它的观众可看到主播和被邀请的观众的音视频画面(映客、聚美优品等App均实现了该功能)

可下载随心播进行体验,并可参考随心播封装代码(Android下载、iOS下载)

上麦的实现流程如下:

注意

  • 邀请A上麦需要发点多点的消息(可使用云通信IMSDK的单聊消息,用CustomElem实现
  • 一定要在A完成上麦(开麦克风、摄像头,上传本地画面)完成后,再发送上麦广播通知
  • 上麦广播通知可使用云通信的群消息(CustomElem)实现

下麦的实现流程如下:

注意

  • 主播和观众A下麦都需要考虑(代码中要做好保护)
  • 下麦的广播通知和下麦者关闭本地视频上传可同时进行(但建议先发出下麦通知,再关闭本地画面)

推流RTMP/HLS(H5或网页端观看)

互动直播SDK可直接由后台将私有协议转码为RTMP和HLS,业务可以将RTMP和HLS进行应用间分享,如分享到微信、QQ、朋友圈、QZone和其它应用内

建议使用
推流的TIMAvManager.StreamParam参数可直接设置进行录制,不需要再调用录制API(推流结束录制也结束,生命周期一致)

注意

  • 互动直播推流使用了直播的cdn,需要业务申请直播权限(重要)
  • 直播有频道数限制,请业务提前申请足够的频道数
  • 因各种客户端异常导致没有正常销毁频道,开发者需从腾讯云控制台上手动关闭频道,否则频道会一直存在(占用总频道数)

文档参见旁路直播开发

录制主播视频(回放)

互动直播提供了音视频录制API,可由互动直播后台将主播的音视频录制下来,并且存储到点播服务器上,待转码完成以后,就可以实现回放、分发等其他的功能

注意

  • 需要开通点播服务
  • 录制仅限于主播(第一个进入房间并且有音视频流的人)
  • 录制会以60分钟为间隔生成MP4文件
  • 转码需要时间
  • 需要显式的调用停止录制API

更多文档参见:录制功能开发

鉴黄

待补充

开发注意事项(必读)

  • 观众人数过多时,消息量也会随之增多,需注意主播端性能,常见因渲染代码过多导致CPU飙升卡顿
  • 主播可能因为某种原因(CRASH、断网等)掉线,业务直播平台需增加主播心跳,实现直播列表的实时更新
  • 互动直播不提供房间成员管理等操作,需业务直播平台自行实现,或采用IMSDK方案

腾讯云互动直播SDK集成综述相关推荐

  1. 腾讯云视频直播sdk开发攻略

    视频直播这一两年在移动互联网上可以说是非常的火,各种视频直播软件层出不穷.有的通过自己的推广宣传确实火了起来,比如:映客. 我之前也是在一家专门做视频直播的公司打酱油,当时对这个概念还是很模糊,后来才 ...

  2. android 横屏直播界面,Android安卓腾讯云互动直播随心播横屏的实现方式1.8.2

    研究过腾讯云互动直播的人,估计很心烦,这能横屏吗?官方说:暂时不支持.二线客户说,有人做出来了.但是 这东西到底怎么横屏呢? 鉴于笔者研究了一天时间,终于做出来了,发表一片博客,为在腾讯云中爬坑的人垫 ...

  3. 小程序 + 腾讯云移动直播SDK

    小程序 + 腾讯云移动直播SDK 小程序 腾讯云移动直播SDK 关于腾讯 M L V B 直播 必须项: 主播开播: 观众收看: 连麦: 发送文本消息: 小程序 主要是推流标签和拉流标签:没什么好说的 ...

  4. 腾讯视频互动直播TUIPusherTUIPlayer集成体验

    腾讯云(Tencent Cloud)是腾讯集团倾力打造的云计算品牌,提供全球领先的云计算和人工智能等技术产品与服务,推动产业互联网建设.实时音视频(Tencent RTC)基于腾讯多年来在网络与音视频 ...

  5. 腾讯云互动直播分享屏幕小结

    基于不同的场景提供不同的功能,对于而今最流行的自然是面对面直播,即通过摄像头来形成流视频来进行直播互动. 那么对于在线教育行业,就需要进行屏幕分享了. 一般对于在线教育的场景就是需要显示老师分享的屏幕 ...

  6. iOS 腾讯云移动直播SDK对接(一)

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

  7. 功能升级丨腾讯云Web直播互动组件火热上线!

    没有华丽的直播间,没有忙前忙后递产品的助理,在家找个角落,打开手机就开始直播:有的一边直播一边带娃,有的拿着手机摇摇晃晃还保持不了手机的稳定,一切都与大家熟悉的网红主播不太一样,让网友们直呼太接地气. ...

  8. 腾讯云快直播——超低延迟直播技术方案及应用

    正文字数:4361  阅读时长:7分钟 随着直播业务的发展,在线教育,连麦直播.赛事直播等高实时性直播场景的出现,用户对于直播流畅度.低延迟等性能的要求愈加严苛.腾讯云直播技术高级工程师陈华成 从5G ...

  9. 干货!老司机带你了解网易视频云互动直播,你想看的全都有

    9月20日,在网易云战略发布会上,网易视频云正式对外发布了互动直播功能,并在行业内迅速广泛关注,一大批互动直播需求者闻声而来,纷纷打探各路小道消息.作为一名乐于助人的老司机,最喜欢为大家解决各种疑难杂 ...

最新文章

  1. Docker容器日志集中收集(client-server模式)
  2. LeetCode 187. 重复的DNA序列(哈希/位运算)
  3. 用按钮控制歌单的上一曲和下一曲 0130 winform
  4. vss团队开发工具使用(个人学习心得)
  5. # SDN第五次上机作业
  6. 执行 npm install -g @vue/cli 报错
  7. 开课吧学python靠谱吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?
  8. Java异常:IllegalArgumentException Collections.sort报错
  9. 【路由和交换之H3C自导自演】
  10. 《数学之美》阅读笔记(持续更新……)
  11. 智慧零售怎么做客流统计和客流分析?|图普客流统计系统
  12. 《史上最简单的 SpringCloud 教程》系列 (转载 http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客)
  13. 3D游戏角色模型设计都要学习什么?
  14. 计算机学院毕业设计任务书,计算机专业毕业设计任务书.doc
  15. 微信公众号网页分享设置及问题
  16. linux桌面小程序开发(pyqt+新增csv增删改查功能)附加章节
  17. 安装python之后电脑变卡_【Python】如何让电脑变卡?
  18. 成长的痛苦:流播放服务令音乐人版税受损
  19. input[type='radio'] 自定义样式___通过label标签重置input[radio]样式
  20. 手机号核验复开是什么意思?可能你涉及到这些行为了!

热门文章

  1. 科普:controller,service,serviceImpl,mapper,xml等几个文件的作用
  2. SES2000 Standard 水深处理过程记录
  3. 2023年计算机考研数学一考试大纲
  4. 谷粒学院——Day06【整合阿里云OSS、EasyExcel技术实现Excel导入分类】
  5. 教你轻松用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践
  6. 大数据学习路线图,大数据需要学什么
  7. 只有程序员才深有体会-------让人直想呵呵哒的BUG!!!
  8. 使用IDEA搭建一个简单的SpringBoot项目——详细过程
  9. Python 中有 3 个不可思议的返回功能
  10. 基于知识图谱的智能问答