Upgrade to Pro — share decks privately, control downloads, hide ads and more …

省リソースで動作するビデオカンファレンスソフトウェアのGalène

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 省リソースで動作するビデオカンファレンスソフトウェアのGalène

Avatar for Kenichiro MATOHARA

Kenichiro MATOHARA

June 19, 2022
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. ビデオミーティングソフトウェ ビデオミーティングソフトウェ アのserver requirements アのserver requirements [1] RAM 2〜8GB CPU

    4core〜 RAM 16GB〜 CPU 8Core〜 1. どんどん増えている……? Jitsi Meet BigBlueButton 6 / 42
  2. Galène Galène Galene needs little momory — it should run correctly in

    128MB of RAM, and is rock solid with 512MB. 桁違いに軽量そう! (PINE64あたりだとAES acceleratorが乗ってたはず) Galène FAQ 9 / 42
  3. 早速試す 早速試す  要Go 1.13以降 $ sudo apt install golang

    $ git clone https://github.com/jech/galene $ cd galene $ CGO_ENABLED=0 go build -ldflags='-s -w' 12 / 42
  4. クロスビルド例 クロスビルド例 1 Linux arm6(Raspberry Pi 1) 2 Linux arm7(Raspberry

    Pi 2〜) 3 Linux arm64(Raspberry Pi 2 B 1.2〜かつ64bit OS)  今回Linux/amd64とLinux/armhfで試した, Linux/arm64,Linux/mipsやWindowsでも動くらしい $ GOARCH="arm" GOOS="linux" GOARM=6 CGO_ENABLED=0 \ go build -o galene_arm6_linux -ldflags='-s -w' $ GOARCH="arm" GOOS="linux" GOARM=7 CGO_ENABLED=0 \ go build -o galene_arm7_linux -ldflags='-s -w' $ GOARCH="arm64" GOOS="linux" CGO_ENABLED=0 \ go build -o galene_arm64_linux -ldflags='-s -w' 1 2 3 13 / 42
  5. setting(1 of 2) setting(1 of 2) Media Options Camera: →

    off or 各種カメラ Microphone: → off or 各種マイク ✅ Mirror view □ Blackboard mode (高解像度低fps)になる ✅ Noise suppression □ High-quality audio (音楽再生時など) 20 / 42
  6. setting(2 of 2) setting(2 of 2) Other Settings Filter: →

    none, Holizontal mirror, Virtical mirror Send: → lowest, low, normal, unlimited Simulcast: → off, auto, on( ) Receive: → noting, audio only, screen share(low), screen share, everything(low), everything □ Activity detection (????) [1] 1. Firefoxでは動作しない サイマルキャスト 21 / 42
  7. chatでのコマンド chatでのコマンド /help ヘルプ表示 /leave グループを離れる /msg プライベートメッセージを送信 /presentfile 動画音声ファイルのブロードキャスト再生

    /raise 挙手(メンバーリストの◦が🖐になる) /renegotiate メディアストリームの再ネゴシエート /sendfile 指定したユーザへのファイル送信(IPアドレスも開示され る) /unraise 手を下げる 22 / 42
  8. helpに出てこないチャットコマン helpに出てこないチャットコマン ド ド /record 録画開始[1] /unrecord 録画終了 /set resolution

    [1024, 768] 送信解像度の指定,指定後ビデオ の再起動(Disable/Enable)が必要 1. グループの設定で allow-recording が必要 23 / 42
  9. Raspberry Pi 3B + Raspberry Pi OS Raspberry Pi 3B

    + Raspberry Pi OS bullseye armhf bullseye armhf 24 / 42
  10. 少し使ってみて 少し使ってみて LAN内でRaspberry Pi 3 model B + Raspberry Pi

    OS bullseye armhf(4core/1GB RAM)をサーバにして3台接続 半日ほど放置しても安定して動作していそう ビデオや画面共有を増やしてもサーバの負荷はあまり上がらない クライアントの使い勝手は慣れが必要そう 25 / 42
  11. リモートサーバにデブロイ リモートサーバにデブロイ 1 Galèneバイナリとstaticディレクトリをコピー 2 リモートサーバに移動 3 必要なディレクトリ作成 4 証明書コピー[1]

    1. 証明書ファイルがない場合起動時に毎回自己証明書が作られる $ rsync -avcP galene static [email protected]:~ $ ssh [email protected] $ mkdir -p data groups $ sudo install -m 400 -o `id -u` -g `id -g` /etc/letsencrypt/live/server.example.org/fullchain $ sudo install -m 400 -o `id -u` -g `id -g` /etc/letsencrypt/live/server.example.org/privkey.p 1 2 3 26 / 42
  12. グループ設定 グループ設定 groups/groupname.json 詳細は README を参照のこと { "op": [{"username":"jch","password":"1234"}], "presenter":

    [{}], "allow-recording": true, "allow-anonymous": true, "allow-subgroups": true, "public": true, "displayName": "Galenサンプル", "contact": "[email protected]", "comment": "コメント", "codecs": ["vp8", "opus"] } 29 / 42
  13. 関連ソフトウェア 関連ソフトウェア Vueフレームワークの代替フロントエンド UDP, RTMP, またはSRTストリームをGalèneに送信するため のゲートウェイ(Gstreamer利用) サンプル認証サーバ garage44/pyrite: Pyrite

    is a web(RTC) client for the Galène videoconference server. erdnaxe/galene-stream: Gateway to send UDP, RTMP or SRT streams to Galène videoconference server. jech/galene-sample-auth-server 32 / 42
  14. フロントエンドのPyriteを試す フロントエンドのPyriteを試す Docker(Galène同梱)かnpx, npmで導入 今回はDockerで試した Disk 1.2GBほど必要[1] 1. Dockerを使わないGalène単体は11MB程 $

    git clone https://github.com/garage44/pyrite $ cd pyrite/docker $ PYRITE_UID=`id -u` PYRITE_GID=`id -g` docker-compose up $ xdg-open http://localhost:3030/ 33 / 42
  15. クライアントのネットワーク利 クライアントのネットワーク利 用状況 用状況  17:00過ぎからGalène利用,接続人数は減ったがデータ量は 増えているところがある $ vnstat -h

    -b "2022-06-19 14:00" -e "`date +%F\ %H:%M`" wlp4s0 / hourly hour rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2022-06-19 14:00 66.80 MiB | 162.45 MiB | 229.25 MiB | 534.20 kbit/s 15:00 67.95 MiB | 124.63 MiB | 192.58 MiB | 448.75 kbit/s 16:00 101.91 MiB | 22.53 MiB | 124.45 MiB | 289.98 kbit/s 17:00 237.75 MiB | 98.66 MiB | 336.41 MiB | 783.89 kbit/s 18:00 210.19 MiB | 76.22 MiB | 286.41 MiB | 667.38 kbit/s 19:00 628.30 MiB | 143.67 MiB | 771.97 MiB | 1.80 Mbit/s 20:00 871.78 MiB | 113.51 MiB | 985.29 MiB | 2.30 Mbit/s 21:00 100.20 MiB | 32.89 MiB | 133.09 MiB | 310.12 kbit/s 22:00 79.40 MiB | 28.66 MiB | 108.06 MiB | 274.70 kbit/s ------------------------+-------------+-------------+--------------- sum of 9 2.31 GiB | 803.22 MiB | 3.09 GiB | 41 / 42