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.localEdite o Hostname:
sudo nano /etc/hostnamerecorder.meujitsi.localEditar arquivo hosts:
sudo nano /etc/hostsAdicione 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-allroutersReinicie o Servidor
rebootVerifique 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-virtualConfigurando 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.confConfigure o módulo a ser carregado na inicialização:
echo "snd-aloop">>/etc/modulesCarregue o módulo no kernel em execução:
modprobe snd-aloopVerifique se o módulo já está carregado:
lsmod | grep snd_aloopReinicie o Servidor:
rebootVerifique os Loopbacks:
ls -alh /proc/asoundInstalando o Docker:
sudo apt update -y
sudo apt upgrade -yJitsi 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-commonAdicionando 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-ceInstalando o Docker:
sudo apt install docker-ceVerificando se o Docker esta rodando:
sudo systemctl status dockerInstalando Docker Compose:
apt install docker-composeInstalando Jibri Docker:
docker pull jitsi/jibriCriando 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/.envConteú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.ymlConteudo 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
- TZEditando Dispositivos de Audio (Cada arquivo de audio deve conter o numero do container ex:.asoundrcX)
sudo nano /root/jibri-docker/config/.asoundrc1Conteudo 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/.asoundrc2Conteudo 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 -dObservaçã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 psDesligando 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