Aprenda como usar o Jitsi Meet Gravar Diversas Reunioes para isso assista o vídeo acima e execute os comandos litados abaixo
Jitsi Meet Gravar Diversas Reuniões
Comando Usados no Vídeo:
sudo hostnamectl set-hostname recorder.meujitsi.local
Edite o Hostname:
sudo nano /etc/hostname
recorder.meujitsi.local
Editar arquivo hosts:
sudo nano /etc/hosts
Adicione este conteudo (Não se esqueça de editar para seu dominio e IP)
127.0.0.1 localhost
#SEU_ENDERECO_IP SEU_DOMINIO_JIBRI NICK_DO_HOST
194.146.24.85 recorder.meujitsi.local recorder
127.0.0.1 localhost recorder.meujitsi.local
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Reinicie o Servidor
reboot
Verifique o Nome do Servidor:
ping "$(hostname)"
Jitsi Meet Gravar Diversas Reuniões : Paso 02
Instalando Pré Requisitos:
sudo apt update
sudo apt install linux-image-extra-virtual
Configurando Dispositivos de Audio:
Configuramos 12 capture/playback interfaces
echo "options snd-aloop enable=1,1,1,1,1,1,1,1,1,1,1,1 index=0,1,2,3,4,5,6,7,8,9,10,11" > /etc/modprobe.d/alsa-loopback.conf
Configure o módulo a ser carregado na inicialização:
echo "snd-aloop">>/etc/modules
Carregue o módulo no kernel em execução:
modprobe snd-aloop
Verifique se o módulo já está carregado:
lsmod | grep snd_aloop
Reinicie o Servidor:
reboot
Verifique os Loopbacks:
ls -alh /proc/asound
Instalando o Docker:
sudo apt update -y
sudo apt upgrade -y
Jitsi Meet Gravar Diversas Reuniões : Paso 03
Depois de atualizar o sistema, precisamos instalar alguns pacotes necessários antes de estarmos prontos para instalar o Docker:
sudo apt-get install curl apt-transport-https ca-certificates software-properties-common
Adicionando Repositório do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
apt-cache policy docker-ce
Instalando o Docker:
sudo apt install docker-ce
Verificando se o Docker esta rodando:
sudo systemctl status docker
Instalando Docker Compose:
apt install docker-compose
Instalando Jibri Docker:
docker pull jitsi/jibri
Criando Pastas e Arquivos de Configuração:
cd &&
mkdir jibri-docker &&
cd jibri-docker &&
touch .env &&
touch jibri.yml &&
mkdir config &&
cd config &&
touch .asoundrc1 &&
touch .asoundrc2 &&
touch .asoundrc3 &&
touch .asoundrc4 &&
touch .asoundrc5 &&
touch .asoundrc6 &&
cd ..
Editar Arquivo ENV:
sudo nano /root/jibri-docker/.env
Conteúdo que você deve colocar no arquivo:
# JIBRI CONFIG
# Internal XMPP domain for authenticated services
XMPP_AUTH_DOMAIN=auth.YOUR_JITSI_DOMAIN
# XMPP domain for the internal MUC used for jibri, jigasi and jvb pools
XMPP_INTERNAL_MUC_DOMAIN=internal.auth.YOUR_JITSI_DOMAIN
# XMPP domain for the jibri recorder
XMPP_RECORDER_DOMAIN=recorder.YOUR_JITSI_DOMAIN
# Internal XMPP server
XMPP_SERVER=YOUR_JITSI_DOMAIN
# Internal XMPP domain
XMPP_DOMAIN=YOUR_JITSI_DOMAIN
# XMPP user for Jibri client connections
JIBRI_XMPP_USER=jibri
# XMPP password for Jibri client connections
JIBRI_XMPP_PASSWORD=YOUR_JIBRI_USER_PASSWORD
# MUC name for the Jibri pool
JIBRI_BREWERY_MUC=jibribrewery
# XMPP recorder user for Jibri client connections
JIBRI_RECORDER_USER=recorder
# XMPP recorder password for Jibri client connections
JIBRI_RECORDER_PASSWORD=YOUR_RECORDER_USER_PASSWORD
# Directory for recordings inside Jibri container
JIBRI_RECORDING_DIR=/config/recordings
# The finalizing script. Will run after recording is complete
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
# When jibri gets a request to start a service for a room, the room
# jid will look like: [email protected]_domain
# We'll build the url for the call by transforming that into:
# https://xmpp_domain/subdomain/roomName
# So if there are any prefixes in the jid (like jitsi meet, which
# has its participants join a muc at conference.xmpp_domain) then
# list that prefix here so it can be stripped out to generate
# the call url correctly
JIBRI_STRIP_DOMAIN_JID=conference
# Directory for logs inside Jibri container
JIBRI_LOGS_DIR=/config/logs
DISPLAY=:0=
Jitsi Meet Gravar Diversas Reuniões : Paso 03
Edite o arquivo JIBRI.YML:
sudo nano /root/jibri-docker/jibri.yml
Conteudo do arquivo (Neste exemplo estou usando somente 2 Jibris)
version: '3'
services:
jibri1:
image: jitsi/jibri
restart: ${RESTART_POLICY}
volumes:
- ${CONFIG}/jibri1:/config:Z
- /dev/shm:/dev/shm
- /root/jibri-docker/config/.asoundrc1:/home/jibri/.asoundrc
- /root/jibri-docker/recordings:/config/recordings
cap_add:
- SYS_ADMIN
- NET_BIND_SERVICE
devices:
- /dev/snd:/dev/snd
environment:
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_RECORDER_DOMAIN
- XMPP_SERVER
- XMPP_DOMAIN
- JIBRI_XMPP_USER
- JIBRI_XMPP_PASSWORD
- JIBRI_BREWERY_MUC
- JIBRI_RECORDER_USER
- JIBRI_RECORDER_PASSWORD
- JIBRI_RECORDING_DIR
- JIBRI_FINALIZE_RECORDING_SCRIPT_PATH
- JIBRI_STRIP_DOMAIN_JID
- JIBRI_LOGS_DIR
- DISPLAY=:0
- TZ
jibri2:
image: jitsi/jibri
restart: ${RESTART_POLICY}
volumes:
- ${CONFIG}/jibri2:/config:Z
- /dev/shm:/dev/shm
- /root/jibri-docker/config/.asoundrc2:/home/jibri/.asoundrc
- /root/jibri-docker/recordings:/config/recordings
cap_add:
- SYS_ADMIN
- NET_BIND_SERVICE
devices:
- /dev/snd:/dev/snd
environment:
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_RECORDER_DOMAIN
- XMPP_SERVER
- XMPP_DOMAIN
- JIBRI_XMPP_USER
- JIBRI_XMPP_PASSWORD
- JIBRI_BREWERY_MUC
- JIBRI_RECORDER_USER
- JIBRI_RECORDER_PASSWORD
- JIBRI_RECORDING_DIR
- JIBRI_FINALIZE_RECORDING_SCRIPT_PATH
- JIBRI_STRIP_DOMAIN_JID
- JIBRI_LOGS_DIR
- DISPLAY=:0
- TZ
Editando Dispositivos de Audio (Cada arquivo de audio deve conter o numero do container ex:.asoundrcX)
sudo nano /root/jibri-docker/config/.asoundrc1
Conteudo do arquivo:
pcm.amix {
type dmix
ipc_key 219345
slave.pcm "hw:Loopback,0,0"
}
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:Loopback_1,1,0"
}
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
pcm.bmix {
type dmix
ipc_key 219347
slave.pcm "hw:Loopback_1,0,0"
}
pcm.bsnoop {
type dsnoop
ipc_key 219348
slave.pcm "hw:Loopback,1,0"
}
pcm.bduplex {
type asym
playback.pcm "bmix"
capture.pcm "bsnoop"
}
pcm.pjsua {
type plug
slave.pcm "bduplex"
}
pcm.!default {
type plug
slave.pcm "aduplex"
}
Segundo Dispositivo de Som:
sudo nano /root/jibri-docker/config/.asoundrc2
Conteudo do Arquivo:
pcm.amix {
type dmix
ipc_key 219345
slave.pcm "hw:Loopback_2,0,0"
}
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:Loopback_3,1,0"
}
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
pcm.bmix {
type dmix
ipc_key 219347
slave.pcm "hw:Loopback_3,0,0"
}
pcm.bsnoop {
type dsnoop
ipc_key 219348
slave.pcm "hw:Loopback_2,1,0"
}
pcm.bduplex {
type asym
playback.pcm "bmix"
capture.pcm "bsnoop"
}
pcm.pjsua {
type plug
slave.pcm "bduplex"
}
pcm.!default {
type plug
slave.pcm "aduplex"
}
Jitsi Meet Gravar Diversas Reuniões
Rodando o Container:
cd /root/jibri-docker
docker-compose -f jibri.yml up -d
Observação: se desejar que o contêiner reinicie ao reinicializar ou travar: encontre o ID do contêiner com docker ps -a e use com docker update –restart unless-stopped CONTAINER ID
Para listas os Containers:
docker ps
Desligando os Containers Dockers:
cd /root/jibri-docker
docker-compose -f jibri.yml down
Jitsi Meet Gravar Diversas Reuniões link do vídeo: https://www.youtube.com/embed/SWyHYzeqdI8