Jitsi detrás de un proxy reverso

Consejos y trucos para la solución de problemas con Jibri

Jibri es el instrumento de grabación y transmisión de las conferencias Jitsi Meet. Sus capacidades incluyen:

  • Grabar una reunión Jitsi, capturando tanto el audio como el vídeo
  • Transmitir en directo una reunión Jitsi (a través de cualquier RTMP)

Entender cómo funciona Jibri te ayudará a saber qué buscar cuando tengas problemas con él.

Jibri funciona como cualquier otro participante en una reunión. Entra a la reunión como un usuario oculto (sin enviar audio o vídeo propio) y graba la reunión (screencasting), más o menos de la misma manera que usarías una grabadora de pantalla para grabar eventos en tu pantalla.

Jibri realiza el screencasting uniéndose a la reunión como cualquier otro participante y luego grabando la reunión desde su propia pantalla (“monitor”). Esto es importante porque, entre otras cosas, significa que al igual que un participante puede tener problemas en una reunión mientras que todos los demás están bien, Jibri también puede tener problemas, sin embargo, una conferencia Jitsi Meet se ejecutará con éxito y otros participantes no se verán afectados.

Una cosa importante a tener en cuenta: Jibri sólo puede grabar una reunión a la vez. Esto significa que necesitas una instancia de Jibri para cada reunión que necesites grabar.

Solución de Problemas

Hay dos mensajes que es probable que recibas cuando tu grabación no se inicia como se esperaba:

  • Todas las grabadoras están actualmente ocupadas – Esto sucede cuando todos los Jibris disponibles están siendo utilizados. Recuerda que Jibri sólo puede grabar una reunión a la vez, por lo que si tu grupo de Jibris disponibles está en uso, no podrás grabar hasta que haya uno disponible. Y es entonces cuando recibes este mensaje
  • Grabación no disponible – Este es un mensaje de error. Es el mensaje genérico que obtienes cuando algo está realmente mal con Jibri – normalmente te dice que Jibri no está correctamente instalado o configurado. Es importante tener en cuenta que obtendrás este mismo mensaje de error en tu pantalla cuando Jibri no funcione por cualquier razón que no sea que las grabadoras disponibles estén ocupadas. Así que el mensaje de error en sí no es muy específico. Sin embargo, el momento en que aparece el mensaje de error puede ser muy instructivo.

Hay algunas cosas que podrían ir mal, pero por muy complicado que parezca Jibri, lo bonito es que sólo hay un puñado de lugares donde esas cosas podrían ir mal. Esto hace que la resolución de problemas sea relativamente menos penosa.

Consejos

La grabación falla inmediatamente

Recuerda que Jibri es un participante de la reunión también. Eso significa que el primer problema que podría tener Jibri podría ser el de entrar en la sala de reuniones. De hecho, una GRAN pista que sugiere que esta es la causa de tu problema con el Jibri es que cuando haces clic en el comando “Comenzar a grabar”, INSTANTANEAMENTE recibes ese mensaje de error. Si la grabación falla inmediatamente, comprueba lo siguiente:

Jibri.conf

  • Verifica cuidadosamente tu archivo Jibri.conf (/etc/jitsi/jibri/jibri.conf). Este es tu archivo de configuración principal para Jibri y el área donde ocurren la mayoría de los errores. Este archivo estará prácticamente vacío cuando instales Jibri por primera vez, así que tienes que rellenarlo. Si no fue completado, Jibri fallará instantáneamente.
  • Usa el archivo de ejemplo/referencia para rellenar tu jibri.conf. Asegúrate de completar la sección xmpp usando el ejemplo de xmpp.
  • En la sección xmpp, asegúrate de introducir correctamente los nombres y las contraseñas elegidas al crear las cuentas correspondientes para Jibri en Prosody (“jibri” y “recorder”). Verifica y vuelve a verificar que realmente has introducido los nombres de usuario y las contraseñas correctamente. Para hacerlo:

Comprueba el nombre y la contraseña de la grabadora registrada

grep password /var/lib/prosody/recorder*/accounts/recorder.dat
sed -n '/call.login/, /}/p' /etc/jitsi/jibri/jibri.conf | grep password

Comprueba el nombre de usuario y la contraseña registrados en jibri

grep password /var/lib/prosody/auth*/accounts/jibri.dat
sed -n '/control.login/, /}/p' /etc/jitsi/jibri/jibri.conf | grep password
  • Si has creado previamente un archivo config.json (versión anterior de Jibri), no te limites a copiar y pegar el contenido de ese archivo en tu jibri.conf; necesitas extraer los valores reales ya que los nombres de los campos son ligera – pero significativamente – diferentes. [Ten en cuenta que config.json está siendo reemplazado, por lo que es mejor mover tus configuraciones a jibri.conf, si no lo has hecho ya. Una vez que lo hagas, borra el archivo config.json].

Carpeta de registro de Jibri

Esto es algo inusual, pero vale la pena notarlo. Sólo he visto que ocurra cuando he desinstalado y vuelto a instalar Jibri, pero ¿quién sabe? De todos modos, si has confirmado que todo está bien con tu jibri.conf, ve a “/var/log/jitsi” y confirma que tienes un directorio llamado “jibri” allí. Si no lo tienes, crea uno y asegúrate de que Jibri puede escribir en él (haz que jibri sea el propietario). Si falta este directorio o si está presente pero Jibri no tiene permisos para acceder a él, Jibri fallará instantáneamente. También asegúrate de que jibri es parte de todos los grupos necesarios:

usermod -aG adm,audio,video,plugdev jibri

La grabación falla después de unos segundos

Esto difiere significativamente de un mensaje de error instantáneo. En este caso, aparece un mensaje emergente avisando de que Jibri se está “preparando para grabar la reunión”

Pero luego, unos segundos o varios segundos después, esa ventana emergente es reemplazada por la ventana de error.

En este caso, a menudo sugiere que Jibri puede haber sido capaz de entrar en la reunión, pero no estaba configurado correctamente, por lo que es incapaz de iniciar la grabación. En casos como este, incluso no es inusual tener una carpeta creada en el directorio de grabación, pero la carpeta sólo contendrá un metadata.json sin un archivo mp4 real. Cuando esto ocurra, comprueba lo siguiente:

Jibri.conf

  • Sí, de nuevo, jibri.conf. Si de hecho has completado tu archivo jibri.conf, pero tienes los valores equivocados o has cometido un error, esta podría ser la razón. Lo que ocurre es que se está leyendo la configuración (de ahí la pausa) y cuando se descubre que las credenciales son incorrectas, entonces se lanza el mensaje de error. De nuevo, haz todas las comprobaciones indicadas anteriormente en Jibri.conf y corrige cualquier error descubierto.

Propiedades del comunicador Sip (Jicofo)

  • Comprueba las configuraciones de Jicofo para jibri para asegurarte de que las has introducido correctamente:
nano /etc/jitsi/jicofo/sip-communicator.properties
  • Confirma que has añadido las siguientes líneas:
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.dominio.edu.ar
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
  • ¡ASEGÚRATE DE CAMBIAR “dominio.edu.ar” POR EL NOMBRE DE TU SUBDOMINIO JITSI!

Archivo cfg.lua (Prosody)

  • Comprueba la configuración de tu prosody (lua)
nano /etc/prosody/conf.avail/dominio.edu.ar.cfg.lua

Asegúrate de que has añadido este bloque al final del archivo:

--internal muc component, meant to enable pools of jibri and jigasi clients
Component “internal.auth.meet.dominio.edu.ar” “muc”
modules_enabled = {
“ping”;
}
storage = “memory”
muc_room_cache_size = 1000

VirtualHost “recording.dominio.edu.ar 100”
modules_enabled = {
“ping”;
}
authentication = “internal_plain”
  • Una vez más, asegúrate de editarlo para reflejar tu subdominio Jitsi.

Se pudo grabar pero el mp4 está corrupto (no se puede abrir)

Esto suele deberse a un error de la versión de Java. Jibri requiere OpenJDK 11 para funcionar correctamente.

  • Comprueba que has instalado OpenJDK 11 en tu sistema.
java -versión

Si tienes otra versión (más actual) de Java instalada, esa será la que aparezca cuando compruebes tu versión de java.
Para comprobar si hay varias versiones de java en su sistema:

update-alternatives --config java

Esto debería listar todas las versiones. Asegúrate de ver la siguiente línea como una de las opciones:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java

Ahora, asegúrese de establecer la variable de entorno java home correcta. Abre el archivo launch.sh

nano /opt/jitsi/jibri/launch.sh

sustituye “java” por la ruta completa “/usr/lib/jvm/java-11-openjdk-amd64/bin/java”

Por último, SIEMPRE reinicia Jibri cuando hagas cualquier cambio de configuración. Esto es más a menudo la causa de los errores de lo que se cree.

Otros posibles problemas:

  • insuficiencia de recursos
    al menos 4 núcleos / 4 GB RAM para un servidor Jibri separado
    al menos 8 núcleos / 8 GB RAM si Jitsi y Jibri están en el mismo servidor
  • el módulo missing snd_aloop faltante
    Algunos kernel cloud no soportan snd_aloop. Es necesario cambiar a un kernel estandar en este caso.
  • certificado TLS autofirmado para jitsi
    Agregar --ignore-certificate-errors a los flags de Chrome en este caso
    chrome {
        flags = [
            "--use-fake-ui-for-media-stream",
            "--start-maximized",
            "--kiosk",
            "--enabled",
            "--disable-infobars",
            "--autoplay-policy=no-user-gesture-required",
            "--ignore-certificate-errors"
        ]
    }
  • Inaccesible TCP/5222
    Si jibri está en un servidor separado, TCP/5222 debe estar abierto en jitsi
  • Dirección de jitsi irresoluble
    jibri debe resolver la dirección del host jitsi correctamente
  • Directorio de grabación inexistente
    El directorio de grabación debe existir
  • Directorio de grabación no escribible
    El usuario jibri debe poder escribir en el directorio de grabación
  • Entorno de escritorio ya instalado
    Jibri tiene su propio entorno de escritorio. Si ya hay uno instalado, esto puede causar algunos problemas.
  • Jitsi no funciona
    No comiences a instalar Jibri antes de tener un Jitsi completamente funcional. No olvides testearlo con al menos 3 participantes.