目前业界如教育行业,直播行业,低延迟音视频连麦方案基本采用声网,即构,腾讯等第三方方案,采用第三方方案最大的优点就是接入快捷,可以迅速搭建自己的产品,缺点就是完全受制于第三方,另外费用比较高,公司规模小的时候比较合适,公司规模大了后就会有顾虑,通常达到一定规模后可以考虑自研一套方案和第三方方案并行使用,避免完全受制于第三方,和华为采购高通芯片的同时也研发自有芯片一个道理。

正是基于这样的考虑,我们开始研发自研的连麦系统,作为技术方案来说,现今支持浏览器直连基本上已经是刚需,所以webrtc是必须要兼容的,所以技术方案设计上决定是以webrtc协议为基础,支持多人会议,完全从0开始做不可取,经过对现有开源框架的研究比较后,决定在janus方案的基础上研发并逐步改进以符合需要,本系列文章就是对整改系统的研发过程的记录和总结,供大家参考。

基于webrtc和janus方案的多人视频通话会议系统架构

如图所示,janus支持房间和视频分发, turn负责解决连通性问题,比如某些海外用户无法直接连到国内的janus服务时,需要走turn。

连接步骤:

1. 用户向调度服务器申请加入房间

2.调度服务器查询房间所在janus,若房间已经存在直接告诉用户房间所在服务器,若房间不存在,选择一个空闲和最近的服务器创建房间并返回给用户;

3.用户根据janus协议连指定的服务器并加入房间,发布媒体,拉取其他用户的媒体;

4.视频通话连接完成;

优势:

用turn服务解决连通性问题,一个房间用户连到一台janus服务器,janus和turn都很成熟可以直接用,作为第一阶段尽快看到结果比较合适

劣势:

1. 存在容量问题,单个房间用户数受限一台服务器处理能力

2. 若janus在国内,国内有一个用户,国外比如南非本地有3个用户,这三个用户都需要到国内走一圈获取到其他2人的数据,无法智能本地获取;

3. Janus的房间概念让系统设计不太灵活,不太合适按需获取

虽然有些劣势,不过做为第一阶段尽快出成果来说,这个方案是比较合适的,只需要少量的工作即可看到成功:

1. 调度服务器,先实现简单的案容量来调度以及房间服务器的映射查询;

2.Janus服务器改造,上报自身状况,供调度服务器调度决策

3. Janus客服端SDK,当前Janus提供了web接入,android和ios接入demo代码,都能顺利连通,很遗憾的是翻遍整个网络,没有找到windows和Mac下的c++接入demo, 所以这块是先阶段的重点和难点,因为我们的产品windows原生客户端是很重要的一环。

调度服务器和Janus服务器状态上报都很简单在此不多讲,后续几篇文章主要讲如何开发windows和mac下的原生c++的janus客户端SDK.

-----------------------------------------------------------------------------------------------------------------

原创文章,带点个人作品小广告,勿怪勿怪: “证爱网,见证爱

情侣之间,家庭成员之间,欢迎光临本店购买证爱礼物>>>

基于Webrtc和Janus的多人视频会议系统开发1--系统架构相关推荐

  1. 基于腾讯云的多人视频会议的在线语音转写功能的实现

    1.创建腾讯云平台账号,在其中下载使用多人音视频demo,官网上有详细的跑通过程,这里不再赘述 2.在微信公众平台中设置 3.打开微信开发者工具,打开之前腾讯云的多人音视频通话demo,在全局app. ...

  2. H5视频会议、WebRtc视频会议--基于webrtc视频通话及屏幕共享

    目前基于webrtc的视频通话功能已经成为视频会议市场的主要技术手段. 它也是我们会议系统的重要组成部分. 目前真正能够实现这么的案例源码,非常少. 所以我们开放出来供大家学习 . https://e ...

  3. 从入门到进阶|如何基于WebRTC搭建一个视频会议

    文|网易智慧企业流媒体服务器天团 导读:疫情期间,视频会议等远程办公产品备受青睐,众多互联网玩家切入视频会议市场,加剧市场竞争.但是,产品虽多,能够带来稳定可靠体验的产品却凤毛麟角,它的难点在哪里?视 ...

  4. 企业级音视频会议实战之webrtc服务器janus品尝实战

    企业级音视频会议实战之webrtc服务器janus品尝实战 文章目录 企业级音视频会议实战之webrtc服务器janus品尝实战 前言 单纯使用webrtc的缺点 使用webrtc服务器之后(这里以j ...

  5. 基于webrtc多人音视频的研究(一)

    所周知,WebRTC非常适合点对点(即一对一)的音视频会话.然而,当我们的客户要求超越一对一,即一对多.多对一设置多对多的解决方案或者服务,那么问题就来了:"我们应该采用什么样的架构?&qu ...

  6. 如何基于WebRTC搭建一个简单的视频会议

    前言 WebRTC,它是由谷歌推广的实时音视频技术栈,是音视频领域搜索热度最高的技术.它有多重身份,既是W3C的标准,也是一个开源项目,还有一个对应的IETF工作组(RTCWEB).在WebRTC出现 ...

  7. webrtc 安卓端多人视频会议的实现

    webrtc_android 项目地址:ddssingsong/webrtc_android  简介:webrtc 安卓端多人视频会议的实现 更多:作者   提 Bug   官网 标签: 概述 mee ...

  8. WebRtc实现多人视频会议以及视频录制上传

    1.前言 最近公司做的一个项目需求是实现多人视频会议聊天,查阅资料,决定使用HTML5新支持的WebRtc来作为视频通讯.客户端使用支持HTML5浏览器即可,如chrome,服务器段需要提供两个主要的 ...

  9. 关于webrtc的多人视频会议的杂乱记录

    之前公司要做自主研发的多人会议,搞了很久.记录一些东西在这里,因为涉及到的东西有点多,网上教程很多,这里只做一些记录,就不写详细的过程了. 之前自主研发了一套IM,用webrtc做了点对点的视频通话. ...

最新文章

  1. Oracle 数据库启动 startup和startup force的区别
  2. 低功耗蓝牙开发权威指南 pdf_新手入门神器!物联网低功耗蓝牙开发板,免费申请...
  3. 华为p20支持手机云闪付吗_华为官宣7款旗舰支持升级EMUI10.132系统,你的手机有份吗?...
  4. 【渝粤教育】国家开放大学2018年春季 0275-22T内科护理学 参考试题
  5. Java——多线程(铁路售票系统案例)
  6. 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU
  7. python对象的三个属性_Python 对象属性的访问
  8. 基础功能-tensorflow使用gpu
  9. scala初学之函数定义、流程控制、异常处理入门
  10. 手把手教你用python写游戏
  11. 【数据压缩(十)】H264文件分析2
  12. 在visual stdio中使用Git
  13. leetcode174.地下城游戏
  14. RK3288 开发板 运行android6.0.1 如何通过i2c_detect 侦测i2c 设备
  15. PHP税前税后,请问下大家 怎么根据税后工资1万元推算出税前工资是多少
  16. 改进蚁群算法 改进flod算法对路径进行双向平滑度优化,提高路径的平滑度
  17. Word中“更新所有域”的用法
  18. Oracle-07:别名,去重,子查询
  19. 微信中打开外部浏览器下载安装包
  20. win11 安装make (gnu make)

热门文章

  1. LAMP网站架构的介绍和搭建
  2. 什么是套利?什么是套利交易
  3. MapReduce学习之概述和设计构思
  4. php 判断是否在线,判断ICQ是否在线的代码_php
  5. mybatis-plus出错:Invalid bound statement (not found): com.kuang.mapper.UserMapper.selectList
  6. 2- ARM Cortex-M体系结构
  7. 【视点】从一些实例看大数据部门的权与责
  8. 微信小程序外包 很可能遇到很多坑 提供源代码 需要小程序定制的联系 定制开发
  9. 教程:SurfaceRT生存指南-WinRT8.1越狱运行ARM的exe程序;
  10. 【机器学习】深入浅出经典贝叶斯统计