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

正是基于这样的考虑,我们开始研发自研的连麦系统,作为技术方案来说,现今支持浏览器直连基本上已经是刚需,所以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. JAVA好书之《深入理解Java虚拟机》
  2. pandas使用fillna函数并设置fffill参数使用列中的前序值填充缺失值(replace missing values with preceding values in column in d
  3. MF0 AI+IoT K210 人脸识别模块 应用笔记-(1)
  4. c语言用户输入编程,C语言入门教程-Printf:读取用户输入
  5. TreeView控件二(递归算法)
  6. Quartz.NET作业调度框架详解
  7. c语言log_C语言最大难点揭秘~!
  8. 思科、华为、华三交换机的线缆检测功能
  9. 桌面cpu与服务器cpu天梯,秒懂台式电脑CPU性能 桌面CPU天梯图2017年9月最新版
  10. php上位机,OV7670摄像头上位机软件源码
  11. ESP8266连接网络,获取网络天气api
  12. 网络面试一百问<待整理>
  13. 相对定位、绝对定位、固定定位
  14. ConvE,知识图谱嵌入(KGE) autodl 服务器运行
  15. 定时任务-动态定时任务(springboot+org.quartz)
  16. 【操作系统基础】文件管理系统(二)
  17. 三维重建之多频外差解包裹学习笔记
  18. ebs 选择excel输出 后缀 html,EBS报表输出文件格式控制
  19. ZT210打印标签方法及常见问题20230110
  20. 黑马程序员_基础测试

热门文章

  1. NIST cybersecurity framework的五个核心功能
  2. mysql 1分钟前_mysql 数据库取前后几秒 几分钟 几小时 几天的语句
  3. ckplayer支持html5播放吗,移动端(H5)环境中播放视频需要了解的内容-ckplayer使用方法...
  4. python | 短句自动生成SEO文章
  5. 背景颜色渐变 css3 ---- 转自:至尊宝的BLOG http://blog.sina.com.cn/zzbnie
  6. Python - faker
  7. python抓取京东联盟优惠券_python 爬虫爬取京东ps4售卖情况
  8. kestrel web服务器性能对比,netcore高性能Web服务器Kestrel分析(示例代码)
  9. 半导体行业十万级净化车间尘埃粒子监测
  10. python怎么生成日志_python 生成模拟日志