AI

OSSのビデオ会議比較:Jitsi Meet vs BigBlueButton vs Element Call でZoom代替をセルフホスト

オープンソースラボ編集部2026年6月13日

OSSのビデオ会議比較:Jitsi Meet vs BigBlueButton vs Element Call でZoom代替をセルフホスト

Zoom(月$15/ホスト〜)・Microsoft Teams(月$6/ユーザー〜)に対して、Jitsi Meet(最も手軽なZoom代替)・BigBlueButton(教育・ウェビナー特化)・Element Call(Matrix/E2E暗号化重視)はOSSのビデオ会議システムです。

セルフホストビデオ会議が求められる場面

  • プライバシー・コンプライアンス: GDPR対応が必要な欧州医療・法務・政府機関
  • コスト削減: 大規模ユーザー数(100人超)でZoom/Teams比70〜90%削減
  • カスタマイズ: 自社ブランドの会議室・ウェビナープラットフォームを構築
  • 社内限定通話: 外部サービスにデータを渡せないセキュリティ要件

主要ツールの概要

Jitsi Meet

2003年に開発が始まったJava製のOSSビデオ会議システムです。GitHubスター23k+。最も簡単にセルフホストできるZoom代替で、ブラウザのみで参加可能(アプリ不要)、最大75名同時接続、画面共有・チャット・投票・挙手機能を標準装備。Docker一発起動でセットアップが完了します。

# Jitsi MeetをDockerで起動(最小構成)
git clone https://github.com/jitsi/docker-jitsi-meet
cd docker-jitsi-meet
cp env.example .env

# .env の設定(最低限)
cat > .env << 'EOF'
HTTP_PORT=80
HTTPS_PORT=443
PUBLIC_URL=https://meet.yourcompany.com
ENABLE_AUTH=1
ENABLE_GUESTS=0
LETSENCRYPT_DOMAIN=meet.yourcompany.com
LETSENCRYPT_EMAIL=admin@yourcompany.com
JICOFO_AUTH_PASSWORD=your-jicofo-password
JVB_AUTH_PASSWORD=your-jvb-password
JIGASI_XMPP_PASSWORD=your-jigasi-password
JIBRI_RECORDER_PASSWORD=your-jibri-password
EOF

# 必要なディレクトリを作成
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

# 起動
docker compose up -d
# ブラウザで https://meet.yourcompany.com にアクセス
// Jitsi IFrame APIで自社サービスにビデオ会議を埋め込む
// フロントエンド(Next.js/React)での実装

const JitsiMeetComponent = ({ roomName, userInfo }) => {
  const containerRef = useRef(null);
  const apiRef = useRef(null);

  useEffect(() => {
    // Jitsi IFrame APIを動的ロード
    const script = document.createElement("script");
    script.src = "https://meet.yourcompany.com/external_api.js";
    script.onload = () => {
      const options = {
        roomName: roomName,
        width: "100%",
        height: 600,
        parentNode: containerRef.current,
        userInfo: {
          displayName: userInfo.name,
          email: userInfo.email,
        },
        configOverwrite: {
          startAudioOnly: false,
          startWithAudioMuted: true,         // 参加時はミュート
          startWithVideoMuted: false,
          enableWelcomePage: false,
          prejoinPageEnabled: false,          // 事前設定画面をスキップ
          disableDeepLinking: true,
          toolbarButtons: [
            "microphone", "camera", "chat",
            "desktop", "fullscreen", "raisehand",
            "tileview", "videoquality", "closedcaptions",
          ],
        },
        interfaceConfigOverwrite: {
          SHOW_JITSI_WATERMARK: false,
          SHOW_BRAND_WATERMARK: false,
          DEFAULT_BACKGROUND: "#1a1a2e",
        },
      };

      apiRef.current = new window.JitsiMeetExternalAPI(
        "meet.yourcompany.com",
        options
      );

      // イベントリスナー
      apiRef.current.addEventListener("videoConferenceJoined", () => {
        console.log("会議に参加しました");
      });
      apiRef.current.addEventListener("participantJoined", ({ id, displayName }) => {
        console.log(`${displayName} が参加しました`);
      });
      apiRef.current.addEventListener("videoConferenceLeft", () => {
        console.log("会議を退出しました");
        onMeetingEnd?.();
      });
    };
    document.head.appendChild(script);

    return () => {
      apiRef.current?.dispose();
      document.head.removeChild(script);
    };
  }, [roomName]);

  return <div ref={containerRef} style={{ width: "100%", height: 600 }} />;
};
# Jitsiの会議録画設定(Jibri)
# Jibri(Jitsi Broadcasting Infrastructure)で会議をMP4録画・YouTube Live配信

# docker-compose.override.yml でJibriを有効化
cat >> .env << 'EOF'
ENABLE_RECORDING=1
ENABLE_STREAMING=1
JIBRI_XMPP_USER=jibri
JIBRI_XMPP_PASSWORD=your-jibri-xmpp-password
JIBRI_BREWERY_MQ_USERNAME=jibri
EOF

docker compose --profile jibri up -d
# 録画ファイルは ~/.jitsi-meet-cfg/jibri/recordings/ に保存

BigBlueButton

2007年に公開されたOSSのウェビナー・オンライン学習プラットフォームです。GitHubスター9k+。教育機関向けに特化しており、プレゼンテーション(PDF・PowerPoint)のリアルタイム表示・ホワイトボード・投票・小グループルーム(ブレイクアウトルーム)・録画・字幕・LMS連携(Moodle・Canvas)を提供。授業・ウェビナー・セミナーに最適です。

# BigBlueButton 2.7 のインストール(Ubuntu 20.04 LTS 推奨)
# 最低要件: 16GB RAM / 8コア / 100GB SSD

# インストールスクリプト(推奨方法)
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install-2.7.sh | bash -s --   -v focal-270   -s bbb.yourcompany.com   -e admin@yourcompany.com   -g                           # Greenlight(管理UI)も同時インストール

# インストール後の確認
bbb-conf --check              # 設定チェック
bbb-conf --status             # サービス状態確認
bbb-conf --salt               # API Salt(秘密鍵)確認
# BigBlueButton APIをPythonで呼び出してミーティングを作成
import hashlib
import requests
from urllib.parse import urlencode

BBB_URL = "https://bbb.yourcompany.com/bigbluebutton/api"
BBB_SECRET = "your-bbb-secret-key"

def bbb_request(endpoint, params):
    query = urlencode(params)
    checksum_str = endpoint + query + BBB_SECRET
    checksum = hashlib.sha256(checksum_str.encode()).hexdigest()
    url = f"{BBB_URL}/{endpoint}?{query}&checksum={checksum}"
    resp = requests.get(url)
    return resp.text

# ミーティングを作成
params = {
    "meetingID": "webinar-2026-06-14",
    "name": "AI活用ウェビナー2026",
    "attendeePW": "attendee123",
    "moderatorPW": "mod456",
    "record": "true",                  # 録画有効
    "autoStartRecording": "true",
    "allowStartStopRecording": "false",
    "maxParticipants": "100",
    "welcome": "ウェビナーへようこそ!",
    "muteOnStart": "true",
}
result = bbb_request("create", params)
print(result)

# 参加URLを生成
def get_join_url(meeting_id, full_name, password, user_id=""):
    join_params = {
        "meetingID": meeting_id,
        "fullName": full_name,
        "password": password,
        "userID": user_id,
        "redirect": "true",
    }
    query = urlencode(join_params)
    checksum_str = "join" + query + BBB_SECRET
    checksum = hashlib.sha256(checksum_str.encode()).hexdigest()
    return f"{BBB_URL}/join?{query}&checksum={checksum}"

moderator_url = get_join_url("webinar-2026-06-14", "山田太郎(司会)", "mod456", "host-001")
attendee_url  = get_join_url("webinar-2026-06-14", "鈴木花子", "attendee123", "att-001")

機能比較表

比較項目Jitsi MeetBigBlueButtonElement Call
セットアップ難易度低(Docker)高(専用VPS)
最大同時接続75名(推奨)150名+50名程度
ウェビナー機能限定的✅(最強)
E2E暗号化限定的✅(Matrix)
録画✅(Jibri)✅(標準)実験的
LMS統合✅(Moodle/Canvas)
GitHub Stars23k+9k+2k+

ビデオ会議のリンクをチームに通知するにはCommunicationカテゴリ/categories/communicationのSlack/Rocketを使います。会議の認証はSecurityカテゴリ/categories/securityのKeycloak SSOと統合できます。

FAQ

Q. Jitsi MeetとZoomの機能差はどのくらいありますか?

A. Jitsi Meetが同等な機能: 画面共有・チャット・挙手・投票・ブレイクアウトルーム(簡易)・バーチャル背景・録画(Jibri)。ZoomにあってJitsiにない主な機能: ①同時100〜300名の安定性(Jitsiは75名超で品質低下しやすい)②字幕・文字起こし(ZoomはAI字幕が組み込み)③Webinar機能(Jitsiは一般会議のみ)④ダイヤルイン(電話参加は複雑な設定が必要)。10〜50名の社内ミーティングはJitsiで十分。100名超のウェビナーはBigBlueButton推奨。

Q. Jitsiをセルフホストする際のサーバー要件は?

A. 同時接続数によって異なります。10名まで: 4コア・4GB RAM・SSD 20GB(月$10〜20のVPS)。25名まで: 8コア・8GB RAM(月$40〜60)。50名まで: 16コア・16GB RAM + 帯域50Mbps(月$100〜150)。75名まで: 32コア・32GB RAM + 帯域100Mbps(月$200〜300)。JVB(Jitsi Videobridge)が帯域幅を最も消費するため、帯域上限のないクラウドVMを推奨。複数のJVBを分散配置することでスケールアップできます。

Q. BigBlueButtonとMoodleをシングルサインオンで統合するには?

A. BigBlueButton公式のMoodleプラグインが推奨です。①Moodle管理画面 → プラグイン → 外部ツール → LTI 1.3で新規接続追加②BigBlueButton管理画面でLTI設定(Consumer Key・Secret)を取得③Moodleのコース内に「ビデオ会議」アクティビティを追加してBBBに接続するとMoodleの認証情報でBBBに自動ログイン。SSO完了後は学生リストが自動インポートされ、出欠管理もMoodle上で完結します。

Q. Element Call(Matrix)はJitsi Meetより安全ですか?

A. セキュリティの観点では: Element CallはMatrixプロトコルに基づくE2E暗号化(End-to-End Encryption)を使用するため、サーバー管理者でも通話内容を復号できません。Jitsi MeetはデフォルトではSFU(選択的転送ユニット)方式でサーバーが一時的に映像を処理するため、技術的にはサーバー側で傍受可能です(JitsiのE2EE実験モードを有効にすれば完全E2EEも可能)。医療・法律・機密情報を扱う通話はElement Call(またはJitsi E2EEモード)推奨。社内一般ミーティングはJitsiの標準構成で十分なセキュリティです。

まとめ

ユースケース推奨ツール
Zoom代替・一般ミーティング・手軽なセルフホストJitsi Meet
ウェビナー・授業・LMS統合・教育機関BigBlueButton
E2E暗号化重視・Matrix連携Element Call

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。