接触webrtc也有一年多时间了,刚开始由于对webrtc也不熟悉,为了快速开发以及出产品,最终选择了开源webrtc服务器janus,然后做了一些自己的定制开发,下面先对janus做一个简单的介绍。
1、janus的整体架构图如下:

2、janus的p2p穿网ICE策略是基于libnice这个开源库做的;srtp加解密是基于思科开源的libsrtp做的;标准sip协议栈是基于NOKIA开源的sofia sip开源协议栈开发的;http模块是基于libmicrohttpd开发;websocket是基于libwebsockets开发的;DTLS,UDP版的TLS,就是加密的UDP,WebRTC用来传递SRTP的密钥,使用了OpenSSL/BoringSSL;janus目前支持的音频编解码格式有PCMU、PCMA、G722、ISAC_32K及ISAC_16K,视频编解码格式有VP8、VP9及H264。
3、janus做为一个SFU服务器还是非常适合的,如果你想通过SIP等接入,janus也是非常适合的,当然你也可以通过开发插件接入各种私有协议的设备。以前视频预览,好多厂家都是通过嵌入VLC或者其他插件来实现,那么无插件预览,我们可以在janus上开发一个插件,做一些特殊的处理,就可以实现无插件视频预览的功能。
4、janus的音视频弱网层面相比其他服务器不是特别完善,因为它没有实现FEC、rtx等,仅实现了FIR、PLI、NACK、remb带宽估计,这是不够的,在弱网视频丢包的情况下,需要实现webrtc端到端的qos全家桶。
5、在部署时,要根据实际情况,比如:单台服务器的性能(CPU核心数等),来决定是否开启默认配置文件中general中的event_loops,默认配置是不开启每个处理开一个线程来处理相关媒体,这样在并发量高的情况下,可能就会出现问题,下面把该配置对应的英文注释贴在下面:
By default, Janus handles each have their own event loop and related thread for all the media routing and management. If for some reason you’d rather limit the number of loop/threads, and you want handles to share those, you can do that configuring the event_loops property: this will spawn the specified amount of threads at startup, run a separate event loop on each of them, and add new handles to one of them when attaching. Notice that, while cutting the number of threads and possibly reducing context switching, this might have an impact on the media delivery, especially if the available loops can’t take care of all the handles and their media in time. As such, if you want to use this you should provision the correct value according to the available resources (e.g., CPUs available).

webrtc服务器janus的一点看法相关推荐

  1. webrtc服务器janus通信方法学习二

    webrtc服务器janus通信方法学习二 网关部署了一个客户端可以利用的接口.这个janus.js库以透明的方式使用它,其中与之交流的接口都封装好了,也可以自己使用其他方式进行通信,我不使用js接口 ...

  2. webrtc服务器janus echotest学习

    webrtc服务器janus echotest学习一 Echo测试演示的是发送给服务器网关的音频和视频,服务器会回传给你,效果如下图所示:  代码分析 创建线程 在janus = new Janus( ...

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

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

  4. webrtc服务器-janus房间管理

    1.概要 在Janus的众多插件中,有一个房间插件videoRoom,由于它实现视频会议sfu功能,通过改造能适合我们很多业务场景.而且在Janus众多的业务插件中VideoRoom应该也是最复杂的一 ...

  5. 如何搭建webrtc服务器系列之一:Janus WebRTC Server

    webrtc服务器有很多,janus/kurento/licode/mediasoup/jitsi,各有优缺.评价较好是janus. 搭建janus可以参考janus主页: https://janus ...

  6. webrtc服务器压测工具使用

      主要介绍3个开源的webrtc压力测试框架–kite,pion及srs_bench,以janus服务器为例. 1.KITE    KITE整合了Selenium和Aullure.Selenium ...

  7. 基于Webrtc和Janus的多人视频会议系统开发1--系统架构

    目前业界如教育行业,直播行业,低延迟音视频连麦方案基本采用声网,即构,腾讯等第三方方案,采用第三方方案最大的优点就是接入快捷,可以迅速搭建自己的产品,缺点就是完全受制于第三方,另外费用比较高,公司规模 ...

  8. 如何打造自己的WebRTC 服务器

    1.引言 近年来,直播竞答.网络游戏直播等新的实时音视频通讯场景不断推陈出新,并成为引领互联网娱乐风向的弄潮儿.实时音视频应用的爆发,也使得WebRTC(Web Real-Time Communica ...

  9. webrtc学习--了解webrtc服务器

    文章目录 webrtc 服务器架构 0 前言 1 服务器架构 2 Mesh .MCU.SFU的优缺点 2.1 Mesh 2.2 MCU 2.3 SFU 3 开源服务器 4 学习和感受 5 参考博客 w ...

最新文章

  1. 英特尔携手中科院计算所建立中国首个 oneAPI 卓越中心
  2. 初识中文分词(一)MMSEG
  3. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
  4. android 代码加view,Android中将View添加至窗口的源码分析
  5. linux在执行时提示无此文件的一个处理办法
  6. Sql Server查询语句的一些小技巧
  7. 实现带header和footer功能的RecyclerView——完善篇
  8. idea查看方法的返回类型和自动出来变量
  9. ***必学的DOS命令
  10. 数据--第53课 - 扩展学习
  11. 两个矩阵是否相交的算法_个性化推荐召回算法——Personal Rank
  12. 莱斯利Leslie种群模型 python sympy
  13. 软件测试师和网络工程师,【软件测试工程师(科技部)网络工程师面试题目|面试经验】-看准网...
  14. 华为存储更换故障硬盘
  15. 计算机word怎么插入图片,word如何插入图片 Word2003如何插入电脑中图片
  16. php汉字转换拼音,php中怎么将中文转换拼音
  17. 阿里云服务器中目录的简单介绍及简单使用
  18. 倍福--电子凸轮表绘制
  19. 芯动科技2023校招 FPGA岗位笔试
  20. Gartner就超融合创新的角度专门作报告进行阐述-云宏超融合进入Gartner宣传

热门文章

  1. MATLAB的水果分级系统
  2. 语音转换工具推荐tts-vue
  3. IDEA配置及常用设置
  4. 【实战】前端必会 —— 微信小程序引入背景图
  5. C++中的volatile(Primer读书笔记)
  6. Git - git checkout git branch 创建/删除分支用法及区别
  7. Kubernetes inotify watch 耗尽
  8. 教你从零开始搭建阿里云ESC服务器(建站)新手必看!
  9. 零基础wordpress安装详细教程(收藏)
  10. 天锋w2019_天锋W2019竟然仿的这么像,这是要让三星气吐血吗?