三个基于WebRTC开源MCU框架的横向对比

2023-11-13

1. licode
官网地址:
http://lynckia.com/licode/index.html

官方demo地址:
https://chotis2.dit.upm.es/

Github地址:
https://github.com/lynckia/licode

Github推荐指数:
1483(star)

功能(官方原文):
Licode is based on WebRTC technologies. It is 100% compatible(兼容) with latest stable versions of Google Chrome. Your users will be able to talk from their web browsers with no need to installing anything.
You don't need to care about complicated real-time infrastructures(复杂的实时传输内部结构). It provides a fast development of videoconference features based on HTML5. And we make it 100% scalable(可扩展).
Licode allows you to include videoconference rooms on your web. But you can also implement streaming, recording and any other real-time multimedia features you dreamt of


主要模块及实现语言:
1.Erizo:MCU模块,实现语言C++
2.erizoAPI:Node.js addon wrapper for Erizo,实现语言C++
3.erizo_controller:跟Rooms管理相关的服务,实现语言JS
4.nuve:跟Rooms管理相关的API,实现语言JS

接口(SDK)语言:
Client API: Javascript
Sercer API: node.js

优点:
接口简洁,服务轻量级,支持h264

缺点:
API文档比较简单且其他文档较少;客户端接口只有js的,没有android和IOS原生API;不是很稳定,经常中断

2 kurento
官网地址:
http://www.kurento.org/

官方demo地址:


Github地址:
https://github.com/Kurento

Github推荐指数:
735(star)

功能(官方原文):
Networked streaming protocols, including HTTP, RTP and WebRTC.
Group communications (MCUs( Multipoint Conferencing Unit) and SFUs(Selective Forwarding Unit.) functionality) supporting both media mixing and media routing/dispatching.
Generic support for computational vision(计算机视觉) and augmented reality(现实增强) filters.
Media storage supporting writing operations for WebM and MP4and playing in all formats supported by GStreamer.
Automatic media transcodification between any of the codecs supported by GStreamer including VP8, H.264, H.263, AMR, OPUS, Speex, G.711, etc.
 
主要模块及实现语言:
Kurento media server:KMS流媒体服务器,实现语言C++

接口(SDK)语言:
服务端SDK:java,node.js
客户端SDK:java,js
支持Json-Rpc

优点:
文档齐全,功能、封装API都比较齐全,对Android和IOS也有原生API支持,支持h264

缺点:
bug较多,不是很稳定,接口太多,所以使用起来相对复杂,Android和IOS缺少官方demo,因其中增加了视觉增强等图像处理功能,所以会有视频延迟风险

3 jitsi
官网地址:
https://jitsi.org/

官网demo地址:
https://meet.jit.si/

Github地址:
https://github.com/jitsi

Github推荐指数:
1678(star)

功能(官方原文翻译):
不像其他的视频会议技术,Jitsi Videobridge是jitsi的核心,将所有人的音视频传送给所有的参与者,而不是将他们混起来
能达到更低的延迟,更高的质量,并且如果你运行你自己的服务,这将是一个非常便于扩展和廉价的解决方案
Jitsi完全兼容webRTC这个开放的web通信标准
Jitsi支持高级的视频路由功能,比如同步广播、带宽检测、可扩展的视频编码等
Jitsi是用java和一些原生代码编写

主要模块及实现语言:
1. Jitsi Video-Bridge (Software video-bridge 实现语言java)
2. Jitsi Jicofo (Component mandatory for jitsi conference 实现语言java)
3. Prosody ( XMPP Server 实现语言lua)
4. Nginx (Web Server)
5. Jitsi Meet (Web application – to which the end user will interact. 实现语言js)

接口(SDK)语言:
Libjitsi:java接口SDK,用于服务端开发
lib-jitsi-meet:javascript接口SDK,用于web客户端的开发

优点:
比较稳定,家族产品较多,即时通讯,电子白板,文件共享都有。2017年8月发布android和IOS原生API接口。

缺点:
协议用的是SIP和XMPP,编译部署过程过于复杂,依赖库较多,且文档比较少。缺少android和IOS的demo和文档。多人对讲时采用的是单路分发机制,对服务器网络等要求较高。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三个基于WebRTC开源MCU框架的横向对比 的相关文章

  • 将 WebRTC (AudioTrackSinkInterface) 原始音频写入光盘

    我正在尝试录制 WebRTC 传输的音频PeerConnection MediaStream 我在音轨中添加了一个接收器 它实现了AudioTrackSinkInterface 它实现了OnData method void TestAudi
  • org.webrtc.RTCPeerConnection 无法将视频发布到服务器

    我使用 webrtc 在会议中发送和获取视频 子主视频正常显示 但问题是视频没有发布到服务器 我检查方法 setlocalDescription 没有返回错误 这是我的sdp 有人可以帮忙吗 我搜索了很多解决方案 但我仍然不知道我的问题 我
  • 将 PCM 波形数据转换为 numpy 数组,反之亦然

    情况 我正在使用 WebRTC 中的 VAD 语音活动检测 WebRTC VAD https github com wiseman py webrtcvad Python 适配器 这示例实现 https github com wiseman
  • 通过 websocket 的 SIP 到真正的 SIP

    我正在尝试实现一个 sip 服务器用于从HTMLsip客户端 使用sipml5制作 在我研究这样做的过程中 我遇到了 sip over web sockets 这可能对我有用 但是 我不确定用户代理是否通过 sip over 连接web s
  • iceConnectionState 已断开连接(通过互联网使用时)

    这个问题以前曾被问过 但我还没有找到答案 我基本上遇到了与描述相同的问题here https stackoverflow com questions 34405816 peerjs webrtc iceconnectionstate fai
  • WebRTC:对多个对等连接使用相同的 SDP?

    是否可以在多个对等连接中使用相同的 SDP 我正在使用 WebRTC 构建视频会议 这个想法是 呼叫者使用某种信令机制 使用其 SDP 每个用户相同的 SDP 向所有其他用户发送广播消息 然后用户将使用其 SDP 进行响应 当用户收到某人的
  • 如何与本机桌面 (win) 应用程序建立对等连接

    我需要与本机桌面 win 应用程序和网络浏览器建立对等连接 只是为了传输原始数据 从理论上讲 WebRTC 似乎是实现这一目标的唯一方法 如果您想使用 WebRTC 在浏览器和桌面之间交换数据 您可以使用此库将桌面部分编码为 C 语言 ht
  • webrtc如何选择输入视频设备?

    我正在研究webRTC应用程序 我参考的是这个软件 apprtc https code google com p webrtc source browse trunk samples js apprtc https code google
  • iOS Webrtc - 捕获本地视频流时崩溃

    我正在尝试使用 Google 存储库中的 webrtc 库 我按照这些步骤创建了一个单独的项目 其中包含类似于 APPRTC 的说明和代码 并且我能够让它工作 我能够在两台设备之间进行会议 但是当我尝试与旧项目集成时 Webrtc 崩溃了
  • 在 Heroku 上部署 PeerJS 服务器

    我的 PeerJS 服务器有问题 我从这里使用了 部署到 Heroku 按钮 https github com peers peerjs server https github com peers peerjs server 我不知道如何连
  • 如何使用 MediaRecorder 作为 MediaSource

    作为学习 WebRTC 的练习 我试图并排显示本地网络摄像头和网络摄像头的延迟播放 为了实现这一目标 我尝试将记录的 blob 传递到 BufferSource 并使用相应的 MediaSource 作为视频元素的源 the ondataa
  • Node教程一对多无加载远程服务器Stream Spinner动不停

    我对在项目中使用所需的 Kurrento 很陌生 但是当我克隆 git hub 上为 Kurento 提供的教程并遵循 one2Many 调用的说明时 首先 adapter js 的软件包损坏了 因为我成功解决了它们 但之后出现了一个问题
  • 具有 3 个用户连接的 WebRTC

    我现在正在实施源代码WebRTC 示例 https github com webrtc samples tree gh pages src content peerconnection audio通过使用网状拓扑成为 3 个用户连接 但是
  • Flutter 使用 jitsi_meet flutter 包在 IOS 上生成错误

    我正在尝试创建一个 flutter 应用程序并集成 jitsi meet flutter 包 我按照文档中指示的说明进行操作 我的 flutter 版本和 IOS 通过 flutter doctor Flutter version 2 8
  • 使用 Docker 的 mediasoup v3

    我正在尝试运行一个2docker 中的 WebRTC 示例 使用 mediasoup 当我在一组实例上进行视频通话时 我想运行两台服务器 我的错误 你有没有看到这个错误 createProducerTransport null 错误 由于地
  • 在 Objective C 中使用 static init 有什么好处?

    最近我发现来自 Github 的 webrtc ios 示例 https github com gandg webrtc ios 当我浏览该项目时 我注意到 VideoView 类使用静态方法 但我不确定这是否必要 VideoView 是
  • 如何将音频从浏览器流式传输到 WebRTC 本机 C++ 应用程序

    到目前为止 我已成功运行以下示例 WebRTC 原生 C 到浏览器视频流示例 http sourcey com webrtc native to browser video streaming example 该示例展示了如何将视频从本机
  • 我可以简化同一专用网络上计算机的 WebRTC 信号传输吗?

    WebRTC 信号让我发疯 我的用例非常简单 信息亭和控制室网络应用程序之间的双向音频对讲 两台计算机都在同一网络上 两者都无法访问互联网 所有机器都有已知的静态 IP 我读到的所有内容都希望我使用 STUN TURN ICE 服务器 这个
  • 我需要 TURN 服务器吗?

    在什么情况下我应该使用 TURN 服务器 现在我有一个运行完美的 WebRTC 应用程序 该应用程序即将发布 我是否需要设置自己的 TURN 服务器 或者可能仅适用于主要应用程序 WebRTC 可以通过多种方式进行连接 并且当它在第一个选择
  • 通过 Websockets 进行 WebRTC 视频聊天

    我正在尝试使用 webRTC 和 WebSockets 进行信号发送来开发视频聊天应用程序 我的问题是 我不知道创建 RTCPeerConnection 并通过 webSocket 连接两个对等点 2 个浏览器 的过程是什么 至少在本地 我

随机推荐

  • Servlet3.0特性详解-笔记

    Servlet3 0特性详解 笔记 Apache官方对各版本的解释 Servlet Spec JSP Spec EL Spec WebSocket Spec Apache Tomcat version Actual release revi
  • amd音频驱动不可用_教程:怎么安装更新NVIDIAAMD显卡驱动?

    PART 1 装驱动这么简单的事情真的需要写教程吗 我自己都理解不了我为什么要写这样一个教程 但是如你所见 他确实被我写出来了 而且对大部分人都挺有用 首先 使用鲁大师以及驱动精灵这类软件的同学自己喜欢就好 导致的任何问题也请你们自己解决
  • 计组cpi与mips的计算方法

    cpi CPI Clock cycle Per Instruction 表示每条计算机指令执行所需的时钟周期 有时简称为指令的平均周期数 可以用来表示CPU的性能 补充一下时钟周期的概念 1个时钟脉冲所需要的时间 在计算机组成原理中又叫T周
  • 数据结构实验--排序算法应用及对比

    一 课程设计题目与要求 排序算法应用及对比 基本要求 1 生成三组1000万个数 分别为随机数 基本正序 所有元素在正序的基础上整体左移2位 逆序 用什么数据结构 如果数据量达到1亿 10亿怎么办 2 实现快速排序 改进版 归并排序和堆排序
  • c语言鸡兔同笼的程序,C语言:鸡兔同笼问题

    鸡兔同笼 已知鸡兔总头数为h 设为30 总脚数为f 设为90 求鸡兔各几只 代码一 include main int h f x y printf 请输入总头数和总脚数 scanf d d h f x 2 h f 2 y f 2 h pri
  • 2020-2023年 近期出去面试Java的总结(持续更新)

    近期出去面试Java的总结 一 Java基础 1 Java的类加载顺序 对于有继承关系的加载顺序 2 Java的创建对象的几种方式 1 使用new关键字 2 使用反射机制 1 使用Class类的newInstance方法 2 使用Const
  • KVM初始化过程

    之前打算整理一下在Guest VM KVM QEMU中IO处理的整个流程 通过查阅资料和阅读源码 已经大致知道IO在Guest KVM中的处理流程 当想要整理IO在KVM和QEMU中的处理时 发现很难理清楚QEMU和KVM之间的跳转和交互的
  • 我一个专科生,在上海打拼10年才拿到20k的月薪,普通人逆袭有多难?

    自我介绍 我是专科毕业 在原来的领域深耕近十年又考虑转行 有家庭有娃 有房贷 所以我认为这可能代表了一类人 代表哪一类人群呢 你看 学历一般 能力有限 在大城市打拼多年又难以留下来 处在职业生涯的瓶颈期 又处在人生道路的迷茫期 就是这类人
  • codeforces 1169 D. Good Triple

    题意 有长为n的串 其中有几个 ll rr 符合条件 首先 长度超过9的串一定符合条件 枚举左端点ll 右端点控制在ll 8就行 剩下的直接加 include
  • UNIX环境高级编程 学习笔记 第十五章 进程间通信

    进程间通信可通过传送打开的文件 也可以经由fork和exec函数来传送 还可以通过文件系统传送 IPC InterProcess Communication 进程间通信 是进程通信方式的统称 不同UNIX系统支持的IPC形式不同 虽然SUS
  • net::ERR_CONNECTION_REFUSED,Network Error

    net ERR CONNECTION REFUSED 项目部署服务器后报如图所示错误 但在本地调用后台RESRful接口数据没问题 最后发现是tomcat服务器没有开 开了后没有再次执行命令使后台运行 其实这个问题从两点能够发现 一是执行n
  • 解决Anaconda导入第三方包的各种问题

    1 win R win R 输入 HOMEPATH 然后找到 condarc 把里面的内容改为 ssl verify true show channel urls true channels http mirrors tuna tsingh
  • 点云数据做简单的平面的分割 三维场景中有平面,杯子,和其他物体 实现欧式聚类提取 对三维点云组成的场景进行分割

    点云分割是根据空间 几何和纹理等特征对点云进行划分 使得同一划分内的点云拥有相似的特征 点云的有效分割往往是许多应用的前提 例如逆向工作 CAD领域对零件的不同扫描表面进行分割 然后才能更好的进行空洞修复曲面重建 特征描述和提取 进而进行基
  • Qt 事件过滤器 - EventFilter

    事件过滤器 见名之意 就是将事件过滤一遍 将不需要的事件都清除掉 剩下需要的事件进行操作 可能讲得不是很透彻 那就看下图 就很明白了 原本事件应该直接发送给 组件对象 但是现在却先将事件发送给 过滤器对象 经过过滤的事件再发给 组件对象 如
  • xss level11

    Level11 1 2 毫无头绪 查看PHP源代码发现 是从头文件的referer获取的输入 3 用Burp抓包 修改头文件如下 4 再点击Proxy界面的forward 回到浏览器页面如下 5 点击即可 转载于 https www cnb
  • 走进强化学习

    一 什么是强化学习 强化学习是机器学习里面的一个分支 是一个智能体通过不断的与环境产生互动而不断改进它的行为 从而积累最大奖励的一个决策过程 智能体在完成某项任务时 首先通过动作A与周围环境进行交互 在动作A和环境的作用下 智能体会产生新的
  • CUDA 计算线程索引的一般公式

    第一种方法 CUDA thread index int blockId blockIdx z gridDim x gridDim y blockIdx y gridDim x blockIdx x int threadId blockId
  • Couldn‘t resolve host

    Centos6安装完并配置静态ip地址后 发现yum命令下载出现Couldn t resolve host ping www baidu com 出现域名解析错误 百度大部分答案是在 etc sysconfig network script
  • 用java求出1-1/2+1/3-1/4…..1/100的和

    public class sumPractice3 public static void main String args 需求 求出1 1 2 1 3 1 4 1 100的和 分子始终为1 double num 1 定义个变量用来存储计算
  • 三个基于WebRTC开源MCU框架的横向对比

    1 licode 官网地址 http lynckia com licode index html 官方demo地址 https chotis2 dit upm es Github地址 https github com lynckia lic