三个基于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 与 WebWorker 结合使用

    我有兴趣将 webrtc 与 webworker 一起使用 是否可以 我尝试了 但没有成功 因为它没有找到 窗口 根据规格 1 https w3c github io mediacapture main dom navigator 2 ht
  • WebRTC - 禁用所有音频处理

    我目前正在尝试通过 webrtc 获得尽可能干净的音频通道 通过 getUserMedia mediaconstraints 对象 我设置了以下选项 constraints audio mandatory echoCancellation
  • 本地网络上的 WebRTC? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在阅读有关 WebRTC 的内容 它看起来非常有前途 我想制作一个简单的局域网游戏 自动连接同一网络上的人们 尽管我可以找到人们
  • 使用 django 通道将 webRTC 视频流发送到服务器

    我正在尝试创建一个用 django 编写的人脸检测 Web 应用程序 该应用程序是这样工作的 用户导航到该 url 相机在客户端计算机上启动 然后将每一帧发送到服务器进行人脸检测 然后将处理后的帧显示在网页上 我知道我无法使用 opencv
  • Three.js 使用 WebRTC 并应用 Shader

    我不知道如何将着色器应用于具有视频纹理的 Three js 对象 我一直在使用 webRTC 和 Three js 并使用标准材质成功将视频纹理映射到网格上 var material new THREE MeshBasicMaterial
  • 我们可以将多个 html5

    我有两个视频 一个用于流式传输我的webcam另一个共享我的桌面屏幕 窗户 我需要合并这两个媒体流合而为一 这样我就可以将其另存为 mp4 文件并广播它WebRTC 我能够将两者结合起来VIDEO 流 标签通过将它们限制为DIV tag d
  • WebRTC 无法从 USB 输入设备获取视频源(readyState 转为结束)

    我正在尝试使用 WebRTC 在屏幕上显示视频输入作为实时源 我不想进行任何点对点通信或类似的事情 只是显示视频源 我的代码对于我的笔记本电脑集成网络摄像头工作得很好 但是当我连接外部视频输入设备 在本例中是一台旧摄像机 使用 StarTe
  • Android WebRtc 本地视频流无法在棉花糖上显示,但可以在棒棒糖上显示

    添加的库 libjingle peerconnection jar Version 1 7 0 101 libjingle peerconnection so so 等级依赖性 fi vtt nubomedia utilities andr
  • WebRTC 与 python

    我想用 python twisted 制作一个流服务器 它接收 WebRTC 视频流 然后对其应用一些 OpenCV 算法 但是我找不到 WebRTC 的 python 模块 如何使用 python twisted 发送和接收 WebRTC
  • 如何在webRTC android中将视频流数据录制为mp4?

    请帮我 我在中使用了这个例子https github com pcab AndroidRTC https github com pchab AndroidRTC将视频和音频从 Android 设备流式传输到其他 Android 设备 在这个
  • React Native - 在 Android 中显示传入视频通话屏幕(VOIP 应用程序)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试实施视频通话React Native 应用程序中的功能 我用过React 原生 twilio 视频 webrtc https
  • 如何在 Android webRTC 上启用 H264

    如何在 Android WebRTC 上启用 H264 PeerConnection to createOfferSDP中没有h264描述 由于某种原因 Google 默认会阻止他们自己的软件编解码器 因此 如果您的芯片组中没有硬件解码 或
  • 为什么turn服务器不支持tcp连接?

    我是 WebRTC 新手 我需要为我的 webrtc 应用程序配置我自己的 Turn 服务器 我使用以下命令安装了我的转弯服务器 apt get install coturn 我只需要通过 tcp 运行转变服务器 它不必使用 UDP 进行任
  • 通过 Websockets 进行 WebRTC 视频聊天

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

    有没有等效的方法来获取连接到 PC 的视频设备列表 除了内置网络摄像头连接之外 我还有一个外部网络摄像头连接 mediastreamtrack getsources 在 Chrome 中工作 但 Firefox 报告 TypeError M
  • webrtc - 获取网络摄像头的宽高比

    我正在尝试学习如何开发 webRTC 应用程序 我想知道是否可以获得相机的宽高比 我不知道它是否有帮助 但我正在使用 webrtc io 但是 if更好 我可以停止使用它 From MDN https developer mozilla o
  • WebRTC/getUserMedia:如何正确静音本地视频?

    我正在尝试实现将本地视频静音的功能MediaStreamTrack在我的 WebRTC 应用程序中 我是这样处理的 function muteVideo if this localStream this localStream getVid
  • 有没有办法使用 JSON 对象创建自己的 mediaStreamTrack?

    webRTC 上的 mediaStream 接口允许多个 MediaStreamTrack 这些不一定是来自相机 麦克风的音频和 或视频流 如何使用 JSON 对象创建 MediaStreamTrack 在最近的一次会议上主题 http l
  • 如何提高webrtc的码率?

    我正在使用 webrtc 将 1080p 视频流从一个选项卡发送到同一台计算机 windows10 chrome 76 上的另一个选项卡 而且接收方的视频质量不如发送方 码率只有2400kbps 300kb s 左右 1080p和720p没
  • Webrtc数据通道始终处于连接状态且未打开

    我正在创建一个小型 WebRTC 应用程序 目前用于交换短信 我已经使 WebRTC 连接正常工作 但数据通道始终保持在 连接 状态并且永远不会进入 打开 状态 请告诉我我在这里缺少什么 下面是JS socket onmessage fun

随机推荐

  • 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