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

0 随着Web与移动视频直播应用的深度发展,有用户参与互动的视频直播技术被越来越多平台所支持,原来的RTMP流媒体方案由于延时较多,无法满足即时互动需求,本文提出几种互动视频直播模型(只是想法不代表实际应用中是这样做的)分享给大家,供进一步讨论。

1 P2P

1.1 模型图

1.2 说明

  连麦用户向信令服务器发送连麦请求,信令服务器通知连麦主用户,若接受,双方向TURN请求各自本端IP或TURN端分配好的公网IP,通过信令服务器交换又方的网络信息,双方优先以P2P方式尝试联接对方的公网IP地扯,若超时失败,尝试联接对方在TURN服务器分配的IP与端口号,这时通过TURN服务器中转双方媒体流,保证无论如何P2P都是可成功的,然后连麦主用户混音、混屏后将多媒体流以RTMP方式发送给弱实时流媒体服务器集群,同时发送本端非混音、混屏码流给连麦用户A,连麦用户A切断从弱实时流媒体系统获取音视频流,开始接受连麦主用户的媒体流解码渲染并且同时将本端采集到的媒体流编码后发送给连麦主用户,供连麦主用户端播放输出与混音、混屏。

1.3 特点

  • 适合单个主播同时与少数(2个左右)用户同时连麦
  • 增加主播端终端性能压力
  • 主要实现集中于客户端,可参考WEBRTC实现
  • 连麦码流采用高实性协议传输
  • 少了服务器中转环节,更低的时延
  • 弱侵入性,对现有弱实时流系统无需大规模改造
  • 不增加服务器带宽流量

2

2.1 模型图

2.2 说明

  连麦用户A通过信令控制服务器向连麦主用户请求连麦,连麦主同意后,连麦用户A向高实时流媒体服务器发送媒体流,同时信令控制服务器向所有观众广播准备好获取连麦用户的媒体流,连麦主播与所有观众端接受到连麦用户A的媒体流后分别解码,转出时若为连麦主用户直接语音直接输出到音频设备并且视频要混屏渲染,若为观众要混音、混屏后输出给音频设备与渲染到屏幕;连麦用户A不需要断开接受连麦主用户的媒体流,跟据需要只混屏或不混屏显示视频即可。

2.3 特点

  • 适合多个主播与多用户互动场景
  • 高实时流媒体系统复杂度与耦合性较低,便于扩展
  • 服务器端由于不需要混音、混屏CPU压力低
  • 主要实现集中于服务器端,便于服务升级
  • 带宽过大
  • 对于观众端来说,连麦主用户与连麦用户A的媒体流间时序差
  • 高侵入性,要对现在弱实时流媒体系统进行大规模改造

3

3.1 模型图

3.2 说明

  连麦用户A通过信令控制服务器发连麦主用户发起连麦请求,连麦主用户同意后,连麦用户A断开弱媒体流,同时向高实时流媒体服务器获取连麦主用户媒体并且发布自身媒体流,连麦主用户通过也通过高实时流媒体服务器获取连麦用户的媒体后,在高实时流媒体服务器收到连麦用户的媒体流后,开始解码、混音、混屏、重编码按原来的通道发送媒体流至弱实时流媒体服务器,观众端即可感知到混合后的媒体。

3.3 特点

  • 适合多个主播与多用户互动场景
  • 流量较低,连麦用户上下麦,观众端几呼无感知
  • 由于服务器端混音、混屏,加大服务器端压力
  • 侵入性适中,弱实时流媒体系统可维持不变
  • 实时性较P2P模式稍差
  • 与前两个模型比较,实现复杂度最高
时间: 2024-11-02 11:30:46

视频直播中用户连麦技术模型与特点分析的相关文章

视频直播的用户体验体系与质量监控方案

转自:https://www.upyun.com/opentalk/396.html 首页 > Open Talk NO.42 | 2018 音视频技术沙龙·上海站 > 视频直播的用户体验体系与质量监控方案 讲师简介 战旗直播高级流媒体研发工程师,2012年进入直播行业,先后在奥点云.战旗直播从事流媒体开发工作:2013年独立完成<RTMP协议规范1.0>的中文翻译:对于Windows.Android.iOS平台的直播和播放框架都有一定的研究. 6月24日,又拍云Open Talk

关于视频直播交友软件如果不懂技术该如何选择好的系统源码进行搭建呢?看过来就对了!!

说到直播程序源码的搭建,真的是技术性专业性很强的程序员们才能完全明白的了,门外人知道的皮毛只会越理越乱.但是在直播程序源码搭建的过程中,除了编码上的技术性问题,还是有一些问题需要了解和注意的.在直播程软件开发公司工作,想做直播平台客户会咨询很多的问题,其中有一些属于技术边缘的,例如如何选择服务器?苹果上架需要什么准备等等的问题,整理了一部分客户问的比较多的关于直播系统源码搭建部署过程中需要注意的部分,希望可以给需要的朋友们带来一些帮助. 1.服务器的系统w:建议使用Linux?服务系统,?Cen

Django中CBV(Class Base Views)模型源码分析

在view文件中编写一个类,并配置好路由 class Test(View): def get(self, request, *args, **kwargs): return HttpResponse('cbv_get') def post(self, request, *args, **kwargs): return HttpResponse('cbv_post') url(r'test/',views.Test.as_view()), 通过as_view()进入查看源码 实际上views.Te

「视频直播技术详解」系列之七:直播云 SDK 性能测试模型

?关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: (一)采集 (二)处理 (三)编码和封装 (四)推流和传输 (五)延迟优化 (六)现代播放器原理 (七)SDK 性能测试模型 本篇是<视频直播技术详解>系列的最后一篇直播云 SDK 性能测试模型,SDK 的性能对最终 App 的影响非常大.SDK 版本迭代快速,每次发布前都要进行系统的测试,测试要

互动直播中连麦技术实现步骤

接触过直播的,想必对"互动直播"都不会陌生,但对它内在的实现原理就会存疑. 其实很简单,"互动直播"的核心其实就在于连麦技术,比文字会更有魅力的交流形式,在视频直播互动软件开发实现过程中,和连麦技术有着不可分开的密切关系.小编今天就给大家普及下有关"互动直播"下的连麦技术. 互动直播中连麦的实现流程 众所周知,主播开启直播间,用户端看到的是主播直播画面,此时我们可以定义为"单向直播",意思是主播单方面向观众输出内容.但如果有用

Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端,本地在进行拉流播放的流程.所以这个过程中,我们需要首先来把服务端这个中间环节的工作搞定,后续再弄推流和拉流功能.现在推流大部分都是使用RTMP/HLS协议的,关于这两个协议的区别: 所以我们服务端搭建就需要用这两个协议,不过本文放心了,不会去手动的编写一套协议代码的,谁叫这个世界属于开源呢? 需要的

「视频直播技术详解」系列之四:推流和传输

关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 在上一期中,我们介绍了讲解编码和封装. 本篇是<解密视频直播技术>系列之四:推流和传输.推流是直播的第一公里,直播的推流对这个直播链路影响非常大,如果推流的网络不稳定,无论我们如何做优化,观众的体验都会很糟糕.所以也是我们排查问题的第一步,如何系统地解决这类问题需要我们对相关理论有基础的认识. 本系列文章大纲如下: (一

视频直播秒开背后的技术与优化经验

在视频直播中,首屏打开速度直接关系到用户体验,而这背后蕴含着许多技术点与实践经验,其中Group of Picture(GoP)设置.缓存参数优化格外关键.本文根据迅达云SpeedyCloud工程副总裁李雨来在见云沙龙的分享整理而成. 使用常见的视频直播服务器,比如Nginx-RTMP做一个简单的Demo环境.我们用OBS往Nginx-RTMP上推流,随便找一个播放器播放.一般情况下,我们会看到一个黑屏,然后过一会之后,它才会出现图像.我们对比一下,如果我们看手机直播,像陌陌直播,映客,我们点一

HTML5视频直播技术

分享内容简介:目前视频直播,尤其是移动端的视频直播已经火到不行了,基本上各大互联网公司都有了自己的直播产品,所以对于直播的一些基本知识和主要技术点也要有所了解,本次分享就向大家介绍一下其中的奥秘. 内容大体框架: 怎样利用 HTML5 来播放直播视频 怎样录制直播视频 怎样实时上传直播视频 直播中的用户交互 下面是本期分享内容整理 Hello, 大家好,我是吕鸣,目前是在腾讯 SNG 的即通应用部负责手Q的兴趣部落 Web 前端开发工作. 针对目前比较火的视频直播,我做了一些研究和探索,同时我们