前言

随着直播行业的发展,平台玩法越来越多。其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用。在此衍生出来的如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的优化升级版本,采用此方案确实能够降低开发量,但同时也需要付出运营成本,收费与开源选择哪一个还是要看具体的业务场景具体例子具体分析。

多人连麦技术还有许多需要改善的地方。随着技术的发展,未来会出现更优的实现方式,我们拭目以待。

直播多人连麦技术浅谈相关推荐

  1. 直播多人连麦技术简介

    前言 随着直播行业的发展,平台玩法越来越多.其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用.在此衍生出来的 ...

  2. 直播回顾 | 子芽CCF TF:云原生场景下软件供应链风险治理技术浅谈

    CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel.LinkedIn.M ...

  3. 技术系列课回顾 | 网易云信线上万人连麦技术大揭秘

    导读:本文根据网易云信资深音视频服务端开发工程师陈策在<MCtalk Live#5:网易云信线上万人连麦技术大揭秘>线上直播分享整理. 文|陈策 网易云信资深音视频服务端开发工程师 大家好 ...

  4. 网络游戏外挂制作技术浅谈

    网络游戏外挂制作技术浅谈 2007-01-27 21:05 外挂无非分以下几种(依制作难度): 1.动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标.键盘等,使游戏里的人物进行流动或者攻 ...

  5. 视频直播中用户连麦技术模型与特点分析

    本文章来源与网络(视频直播中用户连麦技术模型与特点分析 - 老头慢慢飞 - 博客园) 随着Web与移动视频直播应用的深度发展,有用户参与互动的视频直播技术被越来越多平台所支持,原来的RTMP流媒体方案 ...

  6. Windows ECP技术浅谈

    文章目录 Windows ECP技术浅谈 1. FltAllocateExtraCreateParameterList 2. FsRtlAllocateExtraCreateParameter 3. ...

  7. 浅谈计算机科学与现代教育技术,现代教育技术浅谈论文

    正确.充分地认识现代教育技术在促进教育变革方面的作用和功能,有利于进一步推动教育技术在教学实践中的应用,有利于推进教育教学改革的深入发展.下面是学习啦小编给大家推荐的现代教育技术浅谈论文,希望大家喜欢 ...

  8. 移动通信交换技术浅谈

    移动通信交换技术浅谈 近年来移动通信业务需求在国内迅猛上升,推动了移动交换技术的发展,其中,蜂窝式数字移动通信(GSM)在我国许多地方已经联网并可实现漫游通信.移动交换中心(MSC)是移动网路中的核心 ...

  9. 常见网络加速技术浅谈(一)

    TCP/IP协议栈简介 当用户需要向网络发送数据的时候,用户实际上是通过应用程序来完成这项工作.应用程序向一个描述了对端连接的文件描述符(File Description)写数据. 之后位于操作系统内 ...

最新文章

  1. python:f/F,format,%的用法
  2. 杭电1027Ignatius and the Princess II模拟
  3. 能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)
  4. $$\int_0^{nh}x(x-h)\cdots (x-nh)dx=h^{n+2}\int_0^nx(x-1)\cdots (x-n)dx$$
  5. java的dicon文件_配置文件参考
  6. asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
  7. matlab2016 b 安装详细教程正版中文密钥
  8. 计算机主板外部接口功能,笔记本电脑主板接口功能分享
  9. 2021-2027全球与中国充电辊市场现状及未来发展趋势
  10. 良好的代码习惯(一)
  11. git diff:Linux使用meld做git的diff工具
  12. 《MATLAB专刊》——利用向量化编程提升MATLAB代码执行效率
  13. 西门子_Step7软件仿真方法
  14. 运行Moblin Live映像 - for Mobin v2.1
  15. 老人自制6门红衣大炮抗强拆 被指涉嫌违法
  16. Single-Stage 6D Object Pose Estimation——6D姿态估计
  17. 网络爬虫-cnzz网站统计(umuuid参数加密破解)
  18. java环境变量设置 java_home
  19. 电力六氟化硫SF6气体监测仪器无线lora传输
  20. 【蓝桥】做题笔记及心得总结(基础篇)

热门文章

  1. 苹果11怎么录屏_苹果11充电没反应怎么办?北京哪里可以维修
  2. iperf —— 网络性能测试工具,编译、安装、使用笔记
  3. mysql objectid_MongoDB ObjectId详解及使用
  4. vue2 进行gzip压缩
  5. 微信小程序获取用户基本信息
  6. 网页打包成app创建IOS免签app教程
  7. 需要外语翻译怎么办?用好语音翻译器就够了
  8. Vue中的(computed)计算属性和(watched)侦听属性以及(methods)方法
  9. 小程序的目录结构—pages文件夹的内容和作用
  10. HashMap的扩容方式