JibriとJitsi Meetの連動
※Jibriのインストールはこちらで記載しています。
変更には、Prosodyの仮想ホストとアカウント、jitsi meet web(config.js内)の設定が必要です。
Prosody
内部MUCコンポーネントエントリを作成します。
jibriのクライアントがjitsi meetユーザーから外部からアクセスできないMUCでJicofoによって検出されるようにするために必要です。
/etc/prosody/prosody.cfg.lua に追加します。
— internal muc component, meant to enable pools of jibri and jigasi clients
Component “internal.auth.jit01.kumakake.com” “muc”
modules_enabled = {
”ping”;
}
storage = “null”
muc_room_cache_size = 1000
レコーダーの仮想ホストエントリを作成し、jibri chromeセッションのユーザーアカウントを保持します。
これは、認証されたjibri chromeセッションのみを、記録されている会議の非表示の参加者に制限するために使用されます。
/etc/prosody/prosody.cfg.lua に追加します。
VirtualHost “recorder.jit01.kumakake.com”
modules_enabled = {
”ping”;
}
authentication = “internal_plain”
jibriが使用する2つのアカウントを設定します。
$ sudo prosodyctl register jibri auth.jit01.kumakake.com jibriauthpass –(1)
$ sudo prosodyctl register recorder recorder.jit01.kumakake.com jibrirecorderpass –(2)
(1)JibriがコントロールMUCにログインするために使用するアカウントです(Jibriはステータスを送信し、コマンドを待機します)
(2)通話に参加するときにJibriがセレンのクライアントとして使用するアカウントで、Jitsi Meet Web UIで特別な方法で処理できるようにします。
Jicofo
適切なMUCを設定してJibriコントローラーを検索します。
これは、jibriのconfig.jsonファイルで参照されているものと同じMUCである必要があります。
このプロパティを設定した後、Jicofoを再起動します。
PENDING_TIMEOUTを90秒に設定することをお勧めします。これにより、Jibriが起動してから、失敗とマークされるまでしばらく時間がかかります。
/etc/jitsi/jicofo/sip-communicator.properties を編集します。
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.jit01.kumakake.com
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
# sudo systemctl restart jicofo
Jitsi Meet
/etc/jitsi/meet/jit01.kumakake.com-config.js を編集する
fileRecordingsEnabled: true, // If you want to enable file recording
liveStreamingEnabled: true, // If you want to enable live streaming
hiddenDomain: ‘recorder.jit01.kumakake.com’,
ファイル記録ボタンを表示する場合はTOOLBAR_BUTTONS配列に、ライブストリーミングボタンを表示するrecording場合は値を配列にlivestreaming含めます。
インターフェース設定(/usr/share/jitsi-meet/interface_config.js)
TOOLBAR_BUTTONS: [
‘microphone’, ‘camera’, ‘closedcaptions’, ‘desktop’, ‘fullscreen’,
‘fodeviceselection’, ‘hangup’, ‘profile’, ‘info’, ‘chat’, ‘recording’,
‘livestreaming’, ‘etherpad’, ‘sharedvideo’, ‘settings’, ‘raisehand’,
‘videoquality’, ‘filmstrip’, ‘invite’, ‘feedback’, ‘stats’, ‘shortcuts’,
‘tileview’, ‘videobackgroundblur’, ‘download’, ‘help’, ‘mute-everyone’,
‘e2ee’
],
config.jsで記録が有効になると、ユーザーインターフェースで記録ボタンが使用可能になります。
ただし、有効なJibriがJicofoに表示されるまで、「現在録音できません」というメッセージが表示されます。
jibriが正常に接続すると、ユーザーは代わりにストリームキーの入力を求められます。
Jibriのconfig.jsonを適切に更新して、上記で行った構成と一致するようにしてください。
レコーディング用ディレクトリ作製
※/etc/jitsi/jibri/config.json で指定している
※デフォルトでは /tmp/recordings
※/src/recordings に変えてみましょう
config.jsonを編集
“recording_directory”:”/tmp/recordings”
→
“recording_directory”:”/opt/recordings”
$ sudo mkdir /opt/recordings
$ sudo chown jibri:jibri /opt/recordings/
録画ができたら
/src/recordings/会議室名/〜.mp4
となっている。
Jibriのニックネームを設定する
/etc/jitsi/jibri/config.json
“control_muc” : {
“domain” : “internal.auth.jit01.kumakake.com”,
“room_name” : “JibriBrewery”,
“nickname” : “jibri-nickname2”
}
Jibriを再起動する
$ sudo systemctl restart jibri
関連サーバー
$ sudo systemctl start jibri
$ sudo systemctl start prosody
$ sudo systemctl start jicofo
$ sudo systemctl start jitsi-videobridge2
エラー対処
動画ファイルが再生できない!
状態を調べた
$ ffmpeg -v error -i wonderfulinformationsmellaside_2020-05-29-22-04-28.mp4
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x56313a29b820] moov atom not found
wonderfulinformationsmellaside_2020-05-29-22-04-28.mp4: Invalid data found when processing input
この原因としてはJavaのバージョンらしい。。。
$ java -version
openjdk version “11.0.7” 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
Ver.8にしてたはずなのにVer.11になってる。。。
ってことでダウングレード。
$ sudo update-alternatives –config java
[sudo] kumakake のパスワード:
alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。
選択肢 パス 優先度 状態
————————————————————
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自動モード
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手動モード
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 手動モード
で、2にチェックする。
$ java -version
openjdk version “1.8.0_252”
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
一通りを再起動