直播软件开发中连麦功能解析

在视频直播过程中,用户看到的主播直播画面其实是单向直播,视频直播软件开发的服务器接收到主播传输上的画面后,分发到各请求端,属于单向内容输出。当出现用户请求与主播连麦时,性质就发生改变,信息流传输由单向传输变为双向传输,如果有用户正在观看直播,那他接受到的信息流包括主播和连麦用户两股信息流。

为保证观看用户能及时接收到语音信息,直播平台都会使用CDN分发直播内容。也就是说用户接收的信息流线路不一定是它在请求获取信息时的那条线路,而是由CDN节点根据服务器的负载情况,重新选择最优线路进行分发。对于互动直播面向众多用户群体的公共服务,必须能让处在不同地区的用户在同一时间收到相同的直播内容,保证画面流畅且视频传输延迟低。
如今的视频直播软件中,RTMP协议的使用较为广泛,绝大多数视频直播也是基于RTMP协议和CDN技术前提下实现连麦的,在主播和用户进行连麦时,会基于RTMP协议,分别将主播端和连麦用户端的流推到CDN,通过CDN将两路视频推送到播放端,播放端将两路视频流混合形成一个画面进行播放。

拓幻科技需要提醒大家,使用RTMP协议和CDN节点连麦时的问题
RTMP协议可以保证直播延迟控制在5s内,这对于观看的用户来说不影响观看体验,但对于连麦的用户来说,会感到明显的延迟,影响互动体验。
主播和用户进行连麦时,会听到明显的回声,目前这一问题比较常见且未得到解决。

如果实现连麦的话,耗费的流量会大大增加,本身视频直播软件在宽带、流量支出和CDN节点使用方面会使用很多流量,为实现连麦,两条信息流传输耗费的流量会更高。
如果已有庞大的用户基数,必须要适应高并发,那么采用RTMP与CDN技术下的解决方案,想必是最佳的,这样可以保证大多数用户端用户的观看体验;如果对高并发要求没那么高,反而对直播连麦要求较高或对直播延迟要求较低,则可采用私有UDP协议解决方案,这种方案适用于一对一连麦或语音聊天室。

原文地址:https://blog.51cto.com/14528075/2461966

时间: 2024-11-05 22:35:06

直播软件开发中连麦功能解析的相关文章

一对一直播软件开发中,如何进行推流?

推流环节对直播链路的影响非常大,如果推流网络不稳定,就算前期在音视频处理.编码和封装上做何种优化,用户体验都会很糟糕.因此接下来,小编就以一对一直播软件开发为例,为大家讲述下推流过程中涉及的协议.实现方案等. 更多Android高级面试合集放在github上面了(更多面试文档,项目下载,源码)https://github.com/xiangjiana/androids需要更多项目下载,源码的小伙伴可以点击关于我 联系我获取 一.推流的定义 推流实际上就是在把封装好的视频和音频传输到服务器的过程.

多人语音直播系统开发中聊天室功能实现方案?

"直播+"不仅是视频.直播平台的尝试方向,也成为众多音乐平台的创新业务,而语音直播正是其中一种尝试.语音直播的用户更偏向年轻化,多为追求新鲜感的90后群体,他们有自己的行为处事方式,喜欢把孤独和无聊的时间用声音的方式宣泄.对于喜爱声音的这类群体来说,语音直播系统开发既保护了他们的隐私又让他们倍感亲切.那么从技术层面讲,多人语音直播系统开发中聊天室的功能实现需要特别注意哪些呢?一.语音直播系统开发的优势是什么?想必有人会问语音直播和传统的电台有什么不同呢?语音直播也有着自己的优势主要有以

稳定在线流畅直播软件开发

小程序视频直播系统软件,小程序视频直播软件开发,小程序视频直播平台开发,小程序视频直播程序开发,小程序视频直播商城开发,小程序视频直播技术开发. 开发咨询:185-2945-7803陈生(微电同号) 小程序系统 小程序视频直播系统是一个以直播和小视频内容引爆销售的全渠道营销工具,集小视频.直播电商.全渠道裂变分销.SCRM粉丝管理.深度数据分析为一体 帮助商家一分钟开设直播或小视频内容商店,一键跨平台并发将店铺同时开到微信.微博.QQ等社交媒体,全渠道裂变分销,精准运营粉丝社群,轻松激活消费者复

IM即时通讯社交软件app开发,区块链社交直播软件开发

IM即时通讯设有数字资产钱包可进行实时发红包.转账.直播.聊天.发图.朋友圈.录像.建群.点对点聊天.加好友.相册.扫二维码等等一些有趣的功能实时上线.社交直播软件开发 Tel:前面 138中间2315后面3201 开发即时通讯APP能够带来什么 1.随时联系客户:在电子商务的发展中,客服咨询是重要的服务环节,电子商务IM即时通讯APP软件开发帮助为客服人员提供在线与消费者进行沟通互动,并且在为客服人员显示消费者在线的状态. 2.巧发商机:买家在发布产品信息的时候,能够通过系统一次性批量发布.重

对软件开发中uml建模的理解和图形整理(一)

由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程.它包括OOA 分析阶段和OOD设计阶段.其中分析阶段主要解决"What to do?"的问题,而设计阶段主要解决"How to do?"的问题.具体来说就是:在OOA分析阶段咱要做的主要工作就是建立对业务问题域的视图(建立模型).

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来

软件开发中,什么是模块化开发?

软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些模块之间的相互作用就形成了系统的所有功能. 所谓模块是指可组成系统的.具有某种确定独立功能的半自律性的子系统,可以通过标准的界面和其他同样的子系统按照一定的规则相互联系而构成的更加复杂的系统.每个模块的研发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个"黑箱",但是有一个或数个通用的标准界面与系统或其他模块相互连接. 在软件的模块化开发

软件开发中的自测及C代码示例

在软件开发中,程序自测是一个永远都绕不开的话题.很多开发人员以写出有难度的代码为荣,但却不重视对自己编写的代码进行测试,这导致了最终到达客户手中的产品质量不高,bug频发,损害了公司的形象.对于一个开发人员来说,我们应该将开发和自测置于同等重要的地位,我们花在自测上的时间要不比开发少.能否对自己编写的代码进行充分的自测也是检验一个开发人员水平高低的标准之一. 自测方法 根据所编写的程序的特点,自测方法大致有如下几种: 第一种,利用模拟工具进行自测.这种方法适用于需要其他模块(尚不具备)发过来的消

基于git的软件开发中并行工程管理以及版本控制系统概要

并行工程师什么,这里就不再解释(不懂请百度),实际上,在软件开发过程中,涉及到多人合作的以项目小组形式完成开发的软件(这里指广义上)或多或少都使用了并行工程的概念,在正式的项目开发中,项目小组成员总是分工合作每人完成一部分,然后再合并起来,而且,在实际应用中,尽管使用的是瀑布模型完成开发,但总是所有项目小组成员同时开始完成自己的部分,这,其实已经是并行工程了,我们可以自豪的宣布:我们在开发过程中使用了并行 工程这种高大上的玩意来提高开发速度,所以,老板你得给我们涨工资! 很简单吧,看起来好简单的