mediasoup を用いた、 少人数でのゲーム画面配信を目的とした 動画配信・視聴Webアプリケーションです。
videmusがhttps://videmus.example.comに配置されているとして
使用方法を説明します
https://videmus.example.com にアクセスすれば
簡易的な説明付に従って配信・視聴できます
https://videmus.example.com/broadcast は、新しい配信者として
登録するための画面です

「新規配信IDを生成」ボタンを押します。
配信用IDが無効状態で発行され、 配信管理用ページに遷移します

Important
配信用IDは管理者を除く他の人には秘密にするか、少人数でのみ共有して下さい
これはVidemusにおけるあなたの身分証で、 第三者に知られた場合、配信を乗っ取られてしまいます
配信管理用ページは https://videmus.example.com/broadcast/<配信用ID> にあります。
ここでは配信・視聴状況の確認と設定を行うことが出来ます。

配信を行うために、管理者と連絡を取って配信IDを伝え、 有効化する様に伝えてみて下さい。 (全文字でなく、最初の5~6文字でも十分に伝わります)
管理者は伝えられたIDについて、
BroadcastIds テーブルの is_available 列を
0 から 1 に書き換えて有効化します
(現在のところは直接データベース内の該当行を編集します)
OBS配信設定もこのページに一緒に示されています。
スクリーンショットの設定に従ってOBSで配信を開始しましょう。
配信管理用ページで視聴用URLがコピーできますので、 それを視聴者に伝えれば、配信者の準備は完了です。
配信者から伝えられた視聴用URLにアクセスします。
- Gitリポジトリをクローン
- プロジェクトディレクトリ内で
pnpm installを実行 (mediasoupなどbuildの許可を要求された場合には許可してください) - 以下の環境変数ファイルをテスト環境に合わせて記述します
-
DB_HOST=database MYSQL_USER=<任意のデータベースユーザ名> MYSQL_PASSWORD=<任意のデータベースパスワード> MYSQL_DATABASE=<任意のvidemusデータベース名> MYSQL_ROOT_PASSWORD=<任意のMySQLルートパスワード> TEST_BROADCAST_ID=<試験用に初めから有効にする配信用ID文字列> TEST_CHANNEL_ID=<試験用に初めから有効にするチャンネルID文字列> -
NEXT_PUBLIC_HOST_URL=<テスト環境のVidemus Next.jsページURL> HOST_URL=<テスト環境のVidemus Next.jsページURL(同じでOK)> -
ANNOUNCED_IP=<テスト環境のIPアドレス> HOST_URL=<テスト環境のVidemus Next.jsページURL>
-
docker compose upコマンドを実行すると、 一連のコンテナが立ち上がり開発環境で動作確認が出来ます
次のコマンドでVidemus Next.jsイメージと Videmus WebRTCサーバイメージをビルドします
docker build -e NEXT\_PUBLIC\_HOST\_URL=<本番環境のVidemus Next.jsのURL> -t <任意のVidemus Next.jsイメージ名> -f ./next/Dockerfile.nextjs.prod .
Important
Next.jsはNEXT_PUBLIC_から始まる環境変数をビルド時に 埋め込むので、この時点で指定します
他の環境変数は本番環境のdocker-compose.ymlなどで指定できます
docker build -t <任意のVidemus WebRTCサーバイメージ名> -f ./webrtc/Dockerfile.webrtc.prod .
これらのイメージを一度プライベートDocker Hubレジストリ等に
docker pushする等して送信し、本番環境で使用する準備をします
本番環境用にdocker-compose.ymlを作成し、
docker compose up -dコマンドなどで実行できます
videmus-webrtcコンテナをパフォーマンスのためnetwork\_mode: host で運用します。
ポート指定や他のコンテナとの相互運用、ホスト側のファイアウォール設定など
注意する必要があります。