Jitsi Videobridge

Jitsi Videobridge是一个兼容WebRTC的视频路由器或SFU,可以构建高度可扩展的视频会议基础设施(即每台服务器最多可达数百个会议)。(Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).)

Github stars Tracking Chart

简介

Jitsi Videobridge 是一个允许多用户视频通信的 XMPP 服务器组件。与昂贵的专用硬件 Videobridge 不同,Jitsi Videobridge 不会将视频通道混合成一个复合视频流,而只是将接收到的视频通道转接给所有呼叫参与者。因此,虽然它确实需要在具有良好网络带宽的服务器上运行,但 CPU 性能对性能并不是那么关键。

Jitsi Videobridge 是一个兼容 WebRTC 的视频路由器或 SFU,可以构建高度可扩展的视频会议基础设施(即每台服务器最多可达数百个会议)。

Jitsi Videobridge 是构建可大规模扩展的多方视频应用程序。停止混合视频频道并开始使用 Jitsi Videobridge。 它是一个选择性转发单元(SFU),旨在从单个服务器运行数千个视频流 —— 它是完全开源的和WebRTC兼容的。

Jitsi Videobridge 由开发人员为开发人员构建。您可以在源代码树的 doc/ 目录中找到文档。

从第一天开始,我们的开源社区和合作伙伴设计了 Videobridge:

  • 更灵活 -- 因为它是完全开源的。 建立你想要的任何东西
  • 更具可扩展性 -- 即使是小型CPU也可以处理它。 查看我们的绩效评估
  • 质量更高 -- 因为 Jitsi Videobridge 转发视频,而不是混合。
  • 易于控制 -- 通过 XMMP,或通过 Colibri 的 HTTPS 和 REST 版本。
  • 令人难以置信的安全 -- 使用 DTLS/SRTP 进行呼叫加密。

运行它

您可以下载 Debian/Ubuntu 的二进制软件包:

Maven汇编二进制文件:

或者,您可以克隆 Git 存储库并使用 maven 从源代码运行 JVB。

JVB_HOME="The path to your JVB clone."

mvn compile exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath org.jitsi.videobridge.Main -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=$JVB_HOME/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi-videobridge "


(The second edition revised by vz on 2020.08.02)

Overview

Name With Ownerjitsi/jitsi-videobridge
Primary LanguageKotlin
Program languageJava (Language Count: 8)
PlatformLinux
License:Apache License 2.0
Release Count3891
Last Release Namestable/jitsi-meet_9457 (Posted on 2024-04-23 15:18:56)
First Release Name34 (Posted on 2013-07-04 15:39:28)
Created At2013-04-24 21:21:59
Pushed At2024-04-23 15:20:56
Last Commit At2024-04-23 08:20:56
Stargazers Count2.9k
Watchers Count152
Fork Count1k
Commits Count4.9k
Has Issues Enabled
Issues Count422
Issue Open Count138
Pull Requests Count1449
Pull Requests Open Count21
Pull Requests Close Count227
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Intro

Jitsi Videobridge is a WebRTC-compatible Selective Forwarding Unit (SFU), i.e. a
multimedia router. It is one of the backend components in the Jitsi Meet stack.

You can find more documentation in the
doc/ directory in the source tree and in the
Jitsi Meet Handbook.

If you have questions about the project, please post on the Jitsi Community Forum.
GitHub issues are only used to track actionable items.

Packages

Debian/Ubuntu

You can download binary packages for Debian/Ubuntu:

Building your own package

You can build a custom package with just mvn install in the root directory of the repo. Look for the package in
jvb/target/jitsi-videobridge-2.1-SNAPSHOT-archive.zip.

Running locally

You can run jitsi-videobridge locally with maven (or in your IDE). First create a ~/.jvb/jvb.conf to configure the
environment to connect to and other options (see
reference.conf for the
available options).

JVB_HOME="/path/to/the/cloned/repo"
JVB_CONFIG_DIR_LOCATION="~/"
JVB_CONFIG_DIR_NAME=".jvb"
JVB_CONFIG_FILE="$JVB_CONFIG_DIR_LOCATION/$JVB_JVB_CONFIG_DIR_NAME/jvb.conf"

mvn compile exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath org.jitsi.videobridge.MainKt -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=$JVB_HOME/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=$JVB_CONFIG_DIR_LOCATION -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=$JVB_CONFIG_DIR_NAME -Dconfig.file=$JVB_CONFIG_FILE"

Configuration

Application level configuration comes from a config file, usually installed in /etc/jitsi/videobridge/jvb.conf. The
values in that file override the defaults defined in
reference.conf.

Debian

On debian systems the /etc/jitsi/videobridge/config file can be used to set configuration for the Java virtual machine.
Notable examples:

# Increase the java heap to 8GB
VIDEOBRIDGE_MAX_MEMORY=8192m
# Change the garbage collector (defaults to G1GC)
VIDEOBRIDGE_GC_TYPE=G1GC
To the top