Início
» ADMINISTRADOR DE REDE
»
Como configurar um servidor Jibri para gravação e transmissão ao vivo no Jitsi Meet.
Como configurar um servidor Jibri para gravação e transmissão ao vivo no Jitsi Meet.
O manual atual do Jitsi sobre Docker documenta uma mudança importante na implantação: desde a versão stable-11146, seus contêineres são executados com UID/GID 1000 (sem privilégios) e os diretórios de dados persistentes devem ter permissão de escrita para esse usuário do contêiner. O serviço Jibri também não precisa mais dessa SYS_ADMINcapacidade. Guias antigos que recomendam contêineres com privilégios elevados ou 777permissões amplas não devem ser copiados para uma implantação atual sem verificar as instruções específicas da versão.
Este passo a passo utiliza o Docker Compose para uma instalação auto-hospedada do Jitsi Meet já existente. Segue um exemplo claramente hipotético: a equipe Riverview já executa o Jitsi em `/var/www/ meet.example.netjitsi`, armazena a configuração em `/etc /opt/jitsi-meet-cfg/jitsi` e deseja que os moderadores gravem as reuniões localmente e, ocasionalmente, as transmitam para um destino RTMP. Esta é uma configuração de exemplo, não um relato de uma instalação ou teste real.
Nota ilustrativa: As telas abaixo são exemplos esquemáticos e não capturas de um servidor real; a saída de comandos e os estados das reuniões exibidos são meramente ilustrativos.
O que o Jibri faz e do que ele precisa.
O Jibri é a infraestrutura de transmissão do Jitsi para gravar ou transmitir conferências ao vivo. Ele se conecta a uma reunião por meio de uma sessão do navegador, captura o áudio e o vídeo e, em seguida, codifica a saída. Portanto, uma configuração funcional do Jibri depende do serviço web do Jitsi, do servidor XMPP Prosody e do Jicofo concordarem com a conta de gravação interna e com a sala "brewery" do Jibri, onde as instâncias disponíveis se anunciam.
Utilize uma instalação completa do Jitsi Meet que você administre; o Jibri não pode ser integrado ao serviço público meet.jit.si como se fosse seu próprio servidor. O projeto Jibri descreve a execução em uma máquina separada ou máquina virtual, sem nenhuma carga de trabalho não relacionada utilizando seus dispositivos de vídeo ou áudio. O pacote oficial de implantação do Docker Compose inclui o Jibri como um serviço adicional. Para uma instalação pequena, isso pode ser um contêiner separado no host do Compose; para uso contínuo, aloque CPU, memória e espaço em disco dedicados ou coloque-o em um host com recursos adequados.
Uma instância do Jibri pode lidar com uma sessão de gravação ou transmissão por vez. Se o Riverview prevê sessões simultâneas, deve planejar um pool do Jibri com várias instâncias e considerar a configuração adicional de loopback de áudio descrita no manual do Jitsi. Adicionar mais contêineres sem dispositivos de áudio exclusivos não constitui um plano de escalonamento completo.
Exemplo de configurações de ambiente para habilitar o Jibri; os valores de senha são marcadores mascarados.
Passo 1: Prepare o ambiente Docker Jitsi Meet
Comece com uma versão oficial do Docker Jitsi Meet e seus respectivos arquivos Compose. Mantenha o .envarquivo de configuração e os arquivos Compose da mesma versão. No arquivo de ambiente, habilite a gravação:
ENABLE_RECORDING=1
A configuração Compose do Jitsi usa contas XMPP internas para o próprio Jibri e para a sessão do navegador do gravador. Defina senhas fortes e distintas para o Jibri e para o gravador e mantenha-as em sigilo. Para uma instalação nova, o gen-passwords.shscript do projeto pode gerar as senhas internas do serviço. Isso altera o arquivo de ambiente, portanto, faça um backup antes. Se o Jitsi já estiver em execução, não regenere todas as senhas indiscriminadamente: todos os componentes em execução devem receber as credenciais atualizadas correspondentes durante uma reinicialização planejada.
No exemplo do Riverview, ENABLE_RECORDING=1o parâmetro obrigatório é `--force`, enquanto o modelo de ambiente da versão fornece os nomes e valores padrão para o usuário XMPP, usuário do gravador, MUC da cervejaria, caminho de armazenamento e outras opções. Não cole senhas em um tópico público, captura de tela do terminal ou chat compartilhado de reunião.
Prepare o diretório Jibri persistente para o usuário do contêiner sem privilégios antes de iniciar o serviço.
Etapa 2: Criar armazenamento persistente gravável
As gravações precisam sobreviver à substituição do contêiner, portanto, a configuração do Compose do Jitsi monta um armazenamento persistente no host para o Jibri. No exemplo CONFIG=/opt/jitsi-meet-cfg, o diretório do host é /opt/jitsi-meet-cfg/storage/jibri. Crie-o antes de iniciar o serviço e torne-o gravável pelo UID/GID 1000 do contêiner:
A listagem numérica deve mostrar o proprietário e o grupo 1000. Use o caminho real CONFIGdo seu arquivo de ambiente, caso seja diferente. Evite alterar recursivamente a propriedade de todo o diretório de configuração do Jitsi; aplique a propriedade necessária ao caminho de armazenamento do Jibri e preserve as gravações existentes ao ajustar um host já configurado. Em sistemas SELinux, mantenha as configurações de rótulo de volume do arquivo Compose oficial correspondente, em vez de removê-las.
O diretório de gravação do contêiner é configurável; o exemplo documentado no manual JIBRI_RECORDING_DIRé /storage/recordings`/etc/jibri/gravation`, montado abaixo do diretório de armazenamento do Jibri no host. Verifique o modelo de ambiente da sua versão antes de alterá-lo. Confirme se o host possui espaço livre em disco suficiente e um plano de retenção: um gravador em funcionamento pode ocupar um pequeno volume ao longo do tempo.
Passo 3: Inicie o Jibri com o arquivo Compose correspondente.
A partir do diretório que contém os arquivos oficiais do Jitsi Compose e o arquivo de ambiente configurado, inicie a pilha base com a substituição do Jibri:
docker compose -f docker-compose.yml -f jibri.yml up -d
O manual oficial usa esse padrão Compose para adicionar o Jibri à implantação do Docker. A configuração do Jibri define a imagem do contêiner do serviço, a configuração, os pontos de montagem de armazenamento e a alocação de memória compartilhada. Use o arquivo incluído na versão escolhida; evite misturar uma versão atual jibri.ymlcom uma versão anterior .envou um pacote Compose.
Verifique se o serviço Jibri permanece ativo e revise seus registros juntamente com o Jicofo e o Prosody:
Um contêiner em execução é uma verificação inicial, não uma prova de que a conferência pode ser gravada. O Jibri precisa se autenticar no host XMPP correto e entrar no MUC interno esperado da cervejaria. Se os logs mostrarem falhas de autenticação, compare o domínio XMPP, o MUC interno, a conta do Jibri, a conta do gravador e as senhas no arquivo de ambiente e na configuração de serviço gerada. Os valores devem ser iguais; alterar a senha de apenas um componente interromperá a autenticação.
Inicie o serviço Jibri Compose e verifique seu status; esta tela é ilustrativa e não representa um teste de implantação.
Etapa 4: Teste uma gravação e um fluxo RTMP
Participe de uma reunião de teste meet.example.netcom uma conta de moderador. No menu "Mais ações" da reunião, verifique se as ações de gravação e transmissão ao vivo estão disponíveis. Comece com uma gravação curta, aguarde o término da sessão e verifique o caminho de armazenamento configurado no host para o arquivo de saída. A gravação deverá permanecer presente após a recriação do contêiner Jibri, pois é armazenada no volume do host montado, e não apenas na camada gravável do contêiner.
Para uma transmissão ao vivo, use o URL de ingestão RTMP e a chave de transmissão fornecidos pelo serviço de destino. Insira os valores atuais do provedor no fluxo de trabalho de transmissão ao vivo do Jitsi e verifique o status de pré-visualização ou recebimento do destino. Os painéis e rótulos dos provedores podem mudar, portanto, use as instruções RTMP atuais do destino. Trate a chave de transmissão como uma senha: não a publique no chat da reunião ou em capturas de tela de artigos. A gravação em armazenamento local e o envio de uma transmissão ao vivo para um serviço RTMP são funções relacionadas do Jibri, mas têm destinos e verificações diferentes.
O menu da reunião pode exibir as opções de gravação e transmissão ao vivo após a configuração do Jibri; a disponibilidade do menu depende da implementação.
Solucionar problemas no ponto de falha
Nenhuma gravação ou transmissão é exibida: confirme ENABLE_RECORDING=1se o arquivo de ambiente ativo está presente e se a pilha Compose correspondente foi recriada após a alteração. Verifique a configuração gerada para web, Prosody e Jicofo em vez de editar arquivos dentro de um contêiner em execução; o Docker regenera a configuração do serviço a partir das entradas do host.
A ação é exibida, mas o Jibri não consegue se conectar: verifique os logs do Jibri e do Jicofo em busca de erros de autenticação XMPP ou MUC. Verifique o host interno, o domínio do gravador, o nome da cervejaria e ambas as senhas internas em relação à mesma versão do Compose.
O contêiner é encerrado ou reiniciado: verifique os logs em busca de um caminho de armazenamento ausente ou não gravável. Em imagens sem privilégios de root, verifique se o diretório montado tem permissão de escrita para UID/GID 1000. Verifique também a memória do host e a configuração de memória compartilhada fornecida pelo arquivo Compose oficial do Jibri.
A sessão inicia, mas nenhum arquivo de gravação aparece: confirme se o diretório de gravação configurado corresponde ao volume do host e se a sessão foi encerrada/finalizada normalmente. Verifique o espaço livre em disco e as permissões de arquivo.
A gravação funciona, mas a transmissão falha: verifique novamente o URL de ingestão RTMP e a chave de transmissão, os requisitos atuais do destino e o caminho de rede de saída do host. Analise os logs do Jibri em busca da falha de transmissão, em vez de abrir portas de entrada adicionais sem evidências.
Quando uma reunião funciona, mas você precisa de mais gravações simultâneas, adicione capacidade de forma planejada. O limite de uma sessão por instância do Jibri significa que tarefas simultâneas exigem mais instâncias; o manual do Docker também recomenda selecionar interfaces de loopback de áudio distintas para várias instâncias. Teste uma instância adicional antes de expandir o pool e verifique se cada instância consegue criar uma gravação separada.
Utilize estas referências oficiais.
Siga as instruções que correspondem à sua implementação, em vez de copiar configurações de uma versão não relacionada do Jibri. O manual do Jitsi Docker documenta o fluxo de trabalho do Compose, as variáveis de gravação, o caminho de armazenamento, as permissões de contêiner sem privilégios de root e as notas atuais do Jibri. O arquivo README do projeto Jibri explica a função do Jibri, a limitação de sessão única e o modelo de configuração. A definição oficial do serviço Jibri Compose e o modelo de ambiente são a fonte de referência para nomes de variáveis e montagens específicos da versão.