直播多人连麦技术浅谈
前言
随着直播行业的发展,平台玩法越来越多。其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用。在此衍生出来的如PK,付费问答,语音连麦等玩法成为各大直播平台的标配。
本篇文章将分享直播移动端直播连麦的技术实现架构,仅为抛砖引玉,为各位在技术选型时提供一定的思路。欢迎交流。
技术架构
首先从技术架构的角度来说,直播连麦的实现方案大体可以分为三种。这三种方案都是前辈大佬们实践总结出来的经验。在此感谢。
传统直播形式如图所示,是一个主播推流,广播给直播间所有的观众。而所有的观众进入直播间时,去拉去当前直播间主播的流。这里的特征是,一个直播间对应一个主播,并且仅有一路推拉流。
连麦的直播形式如图所示,是两个主播(另一个主播可能是观众)推流,广播给直播间所有观众。而所有的观众进入直播间,并不一定是拉取一个流,一个直播间也并不一定对应的是一个主播,这些区别会在下文展开。这里的特征是两个或以上主播。
1. 基于RTMP协议优化方案
此方案是在原有直播基础上衍生出来的实现方案。主播A和主播B之间通过原有的推拉流路径去拉取对方的流内容。也就是说,主播A在推流同时,拉取主播B的流,主播B推流的同时拉取主播A的流。对于两个主播来说互为对方的观众。此时对于直播间内的其他观众而言,是分别拉取主播A和主播B的流,并展示出来。
可以看出,主播A和主播B之间并无直接连接,而是通过拉取对方流来实现连麦。此方案优点是技术实现相对简单,服务端和客户端可在原有的直播基础上开发,兼容性好。但是缺点也是明显的:理想情况RTMP下的直播延迟大概需要3秒,主播AB之间的互动可能超过6秒,这在实际连麦体验中是相当差的,另外观众需要同时拉取两路流,对于网络要求,流量消耗,性能消耗,时间对齐都是不小的问题。有人提出优化CDN连接方式,优化主播间的节点,增加BGP,在一定程度上可以降低延迟。
在方案1的基础上,我们可以总结出连麦的技术关键点:连麦的主播之间如何保证较低的延迟,提高实时性;主播之间的画面如何进行对齐,合成再统一广播给观众。 在此之上我们需要准备的是两套系统:多人视频交互系统和标准CDN直播系统。
2. 基于P2P协议方案
此方案的实现方式是,主播A和主播B之间通过P2P协议进行音视频连接,正常情况下能够保证较低的延迟,保证主播A和主播B之间的互动。主播A在自己的流内容基础上加入主播B的流内容,统一推向服务端。此时直播间内仅有一路流,并且其他观众也只需要拉取这一路流内容。
此方案的优点是显而易见的,主播AB之间的延迟降低,交互体验好,观众保持原有逻辑不变,拉取直播间固定流地址。 但是缺点是:主播A在连麦过程中需要承担两路推流一路拉流的压力,即拉取主播B的流内容,将自己的流内容推给主播B,将主播A和主播B的流内容推给服务端;主播A的网速压力和性能压力将会巨大,同时主播AB之间一对一的连接也导致扩展性较差,无法满足2人以上的业务场景需求。
3. 基于多人视频通话系统方案
此方案的实现方式是将主播A和主播B的视频交互交由第三方处理,目前比较成熟的技术有视频会议系统和Google开源的WebRTC系统。在此架构下,主播A与主播B的流合成处理上传都是由这个交互系统完成。此方案对于方案2来说减轻了主播端的压力,并且采用UDP协议传输方式降低延迟。同时也兼容多人连接交互。 此方案缺点是对服务端开发量大,要求高。
总结
目前主流实现方案多是基于方案3实现。同时有人提出SD-RTN的实现方案,在我看来此方案是方案3的优化升级版本,采用此方案确实能够降低开发量,但同时也需要付出运营成本,收费与开源选择哪一个还是要看具体的业务场景具体例子具体分析。
多人连麦技术还有许多需要改善的地方。随着技术的发展,未来会出现更优的实现方式,我们拭目以待。
直播多人连麦技术浅谈相关推荐
- 直播多人连麦技术简介
前言 随着直播行业的发展,平台玩法越来越多.其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用.在此衍生出来的 ...
- 直播回顾 | 子芽CCF TF:云原生场景下软件供应链风险治理技术浅谈
CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel.LinkedIn.M ...
- 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘
导读:本文根据网易云信资深音视频服务端开发工程师陈策在<MCtalk Live#5:网易云信线上万人连麦技术大揭秘>线上直播分享整理. 文|陈策 网易云信资深音视频服务端开发工程师 大家好 ...
- 网络游戏外挂制作技术浅谈
网络游戏外挂制作技术浅谈 2007-01-27 21:05 外挂无非分以下几种(依制作难度): 1.动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标.键盘等,使游戏里的人物进行流动或者攻 ...
- 视频直播中用户连麦技术模型与特点分析
本文章来源与网络(视频直播中用户连麦技术模型与特点分析 - 老头慢慢飞 - 博客园) 随着Web与移动视频直播应用的深度发展,有用户参与互动的视频直播技术被越来越多平台所支持,原来的RTMP流媒体方案 ...
- Windows ECP技术浅谈
文章目录 Windows ECP技术浅谈 1. FltAllocateExtraCreateParameterList 2. FsRtlAllocateExtraCreateParameter 3. ...
- 浅谈计算机科学与现代教育技术,现代教育技术浅谈论文
正确.充分地认识现代教育技术在促进教育变革方面的作用和功能,有利于进一步推动教育技术在教学实践中的应用,有利于推进教育教学改革的深入发展.下面是学习啦小编给大家推荐的现代教育技术浅谈论文,希望大家喜欢 ...
- 移动通信交换技术浅谈
移动通信交换技术浅谈 近年来移动通信业务需求在国内迅猛上升,推动了移动交换技术的发展,其中,蜂窝式数字移动通信(GSM)在我国许多地方已经联网并可实现漫游通信.移动交换中心(MSC)是移动网路中的核心 ...
- 常见网络加速技术浅谈(一)
TCP/IP协议栈简介 当用户需要向网络发送数据的时候,用户实际上是通过应用程序来完成这项工作.应用程序向一个描述了对端连接的文件描述符(File Description)写数据. 之后位于操作系统内 ...
最新文章
- python:f/F,format,%的用法
- 杭电1027Ignatius and the Princess II模拟
- 能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)
- $$\int_0^{nh}x(x-h)\cdots (x-nh)dx=h^{n+2}\int_0^nx(x-1)\cdots (x-n)dx$$
- java的dicon文件_配置文件参考
- asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
- matlab2016 b 安装详细教程正版中文密钥
- 计算机主板外部接口功能,笔记本电脑主板接口功能分享
- 2021-2027全球与中国充电辊市场现状及未来发展趋势
- 良好的代码习惯(一)
- git diff:Linux使用meld做git的diff工具
- 《MATLAB专刊》——利用向量化编程提升MATLAB代码执行效率
- 西门子_Step7软件仿真方法
- 运行Moblin Live映像 - for Mobin v2.1
- 老人自制6门红衣大炮抗强拆 被指涉嫌违法
- Single-Stage 6D Object Pose Estimation——6D姿态估计
- 网络爬虫-cnzz网站统计(umuuid参数加密破解)
- java环境变量设置 java_home
- 电力六氟化硫SF6气体监测仪器无线lora传输
- 【蓝桥】做题笔记及心得总结(基础篇)