Cómo configurar un servidor de grabación y transmisión Jibri para Jitsi Meet

El manual actual de Docker de Jitsi documenta un cambio importante en la implementación: desde la versión stable-11146, sus contenedores se ejecutan como un usuario sin privilegios (UID/GID 1000), y los directorios de datos persistentes deben ser escribibles por ese usuario del contenedor. El servicio Jibri tampoco necesita ya esta SYS_ADMINcapacidad. Las guías antiguas que recomiendan contenedores con privilegios o 777permisos amplios no deben copiarse en una implementación actual sin consultar las instrucciones específicas de la versión.

Este tutorial utiliza Docker Compose para una instalación autohospedada de Jitsi Meet. Sigue un ejemplo claramente hipotético: Riverview Team ya ejecuta Jitsi en meet.example.net, almacena la configuración en /opt/jitsi-meet-cfgy desea que los moderadores graben las reuniones localmente y, ocasionalmente, las transmitan a un destino RTMP. Esta es una configuración de ejemplo, no un informe de una instalación o prueba real.

Nota ilustrativa: Las vistas de pantalla que se muestran a continuación son ejemplos esquemáticos, no capturas de un servidor real; la salida de comandos y los estados de las reuniones que se muestran son ilustrativos.

Qué hace Jibri y qué necesita

Jibri es la infraestructura de transmisión de Jitsi para grabar o transmitir en directo una conferencia. Se une a una reunión a través de una sesión del navegador, captura el audio y el vídeo, y luego codifica la salida. Por lo tanto, una configuración de Jibri que funcione correctamente depende de que el servicio web de Jitsi, el servidor XMPP de Prosody y Jicofo acuerden la cuenta de grabación interna y la sala de Jibri donde se anuncian las instancias disponibles.

Utilice una instalación completa de Jitsi Meet que usted administre; Jibri no se puede conectar al servicio público meet.jit.si como si fuera su propio servidor. El proyecto Jibri original describe su ejecución en una máquina o máquina virtual independiente, sin ninguna carga de trabajo ajena que utilice sus dispositivos de pantalla o audio. El paquete de implementación oficial de Docker Compose incluye Jibri como un servicio adicional. Para una instalación pequeña, puede ser un contenedor independiente en el host de Compose; para un uso prolongado, asígnele CPU, memoria y capacidad de disco dedicadas o colóquelo en un host con los recursos adecuados.

Una instancia de Jibri puede gestionar una sesión de grabación o transmisión a la vez. Si Riverview prevé sesiones concurrentes, debería planificar un grupo de Jibri con varias instancias y tener en cuenta la configuración adicional de bucle de audio descrita en el manual de Jitsi. Añadir más contenedores sin dispositivos de audio exclusivos no constituye un plan de escalado completo.

Ejemplo de archivo de entorno Docker con la grabación habilitada y las contraseñas de Jibri XMPP y de la grabadora enmascaradas.
Ejemplo de configuración del entorno para habilitar Jibri; los valores de las contraseñas son marcadores de posición enmascarados.

Paso 1: Preparar el entorno Docker Jitsi Meet

Comience con una versión oficial de Docker Jitsi Meet y sus archivos Compose correspondientes. Mantenga el .envarchivo y los archivos Compose de la misma versión. En el archivo de entorno, habilite la grabación:

ENABLE_RECORDING=1

La configuración de Jitsi Compose utiliza cuentas XMPP internas tanto para Jibri como para la sesión del navegador de grabación. Establezca contraseñas seguras y distintas para Jibri y la sesión del navegador, y manténgalas privadas. Para una pila completamente nueva, el gen-passwords.shscript del proyecto puede generar las contraseñas internas del servicio. Esto modifica el archivo de entorno, por lo que debe realizar una copia de seguridad previamente. Si la pila de Jitsi ya está en funcionamiento, no regenere todas las contraseñas: todos los componentes en ejecución deben recibir las credenciales actualizadas correspondientes durante un reinicio planificado.

En el ejemplo de Riverview, ENABLE_RECORDING=1se requiere el interruptor, mientras que la plantilla de entorno de la versión proporciona los nombres y valores predeterminados para el usuario XMPP, el usuario de la grabadora, el MUC de la cervecería, la ruta de almacenamiento y otras opciones. No pegue contraseñas en un problema público, una captura de pantalla de terminal o un chat de reunión compartida.

Ejemplo de terminal para crear el directorio de almacenamiento de Jibri y asignarlo al propietario numérico 1000:1000.
Prepare el directorio persistente de Jibri para el usuario del contenedor sin privilegios antes de iniciar el servicio.

Paso 2: Crear almacenamiento persistente con capacidad de escritura

Las grabaciones deben sobrevivir al reemplazo del contenedor, por lo que la configuración de Jitsi Compose monta almacenamiento persistente en el host para Jibri. Con el ejemplo CONFIG=/opt/jitsi-meet-cfg, el directorio del host es /opt/jitsi-meet-cfg/storage/jibri. Créelo antes de iniciar el servicio y hágalo escribible por el UID/GID 1000 del contenedor:

sudo mkdir -p /opt/jitsi-meet-cfg/storage/jibri
sudo chown 1000:1000 /opt/jitsi-meet-cfg/storage/jibri
sudo chmod 750 /opt/jitsi-meet-cfg/storage/jibri
ls -ldn /opt/jitsi-meet-cfg/storage/jibri

La lista numérica debe mostrar el propietario y el grupo 1000. Si la ruta es diferente, utilice la ruta real CONFIGde su archivo de entorno. Evite cambiar recursivamente la propiedad de todo el directorio de configuración de Jitsi; aplique la propiedad necesaria a la ruta de almacenamiento de Jibri y conserve las grabaciones existentes al ajustar un host establecido. En sistemas SELinux, mantenga la configuración de la etiqueta de volumen del archivo Compose oficial correspondiente en lugar de eliminarla.

El directorio de grabación del contenedor es configurable; el ejemplo documentado en el manual JIBRI_RECORDING_DIRes /storage/recordings, montado debajo del directorio de almacenamiento Jibri del host. Verifique la plantilla de entorno de su versión antes de modificarla. Confirme que el host tenga suficiente espacio libre en disco y un plan de retención: un grabador en funcionamiento puede llenar un pequeño volumen con el tiempo.

Paso 3: Inicie Jibri con el archivo Compose correspondiente.

Desde el directorio que contiene los archivos oficiales de Jitsi Compose y el archivo de entorno configurado, inicie la pila base con la anulación de Jibri:

docker compose -f docker-compose.yml -f jibri.yml up -d

El manual oficial utiliza este patrón de Compose para añadir Jibri al despliegue de Docker. La configuración de Jibri define la imagen del contenedor del servicio, la configuración, los puntos de montaje del almacenamiento y la asignación de memoria compartida. Utilice el archivo incluido con la versión elegida; evite mezclar una versión actual jibri.ymlcon una anterior .envo con un paquete de Compose antiguo.

Comprueba si el servicio Jibri sigue activo y revisa sus registros junto con Jicofo y Prosody:

docker compose ps jibri
docker compose logs --tail=100 jibri jicofo prosody

Un contenedor en ejecución es una verificación inicial, no una prueba de que la conferencia se pueda grabar. Jibri debe autenticarse en el host XMPP correcto y unirse al MUC interno de Brewery previsto. Si los registros muestran fallos de autenticación, compare el dominio XMPP, el MUC interno, la cuenta de Jibri, la cuenta del grabador y las contraseñas en el archivo de entorno y la configuración de servicio generada. Los valores deben coincidir; cambiar la contraseña de un solo componente interrumpirá el protocolo de enlace.

Terminal ilustrativo que muestra el comando Docker Compose con la anulación de Jibri y una lista del estado del servicio.
Inicie el servicio Jibri Compose y compruebe su estado; esta pantalla es ilustrativa y no constituye una prueba de funcionamiento.

Paso 4: Pruebe una grabación y una transmisión RTMP.

Únase a una reunión de prueba meet.example.netcon una cuenta de moderador. En el menú "Más acciones" de la reunión, verifique que las acciones de grabación y transmisión en vivo estén disponibles. Comience con una grabación breve, espere a que finalice la sesión e inspeccione la ruta de almacenamiento del host configurada para ver el resultado. La grabación debería permanecer presente después de que se vuelva a crear el contenedor de Jibri, ya que se almacena en el volumen del host montado y no solo en la capa de escritura del contenedor.

Para una transmisión en vivo, utilice la URL de ingesta RTMP y la clave de transmisión proporcionadas por el servicio de destino. Ingrese los valores actuales del proveedor en el flujo de trabajo de transmisión en vivo de Jitsi y verifique el estado de vista previa o recepción del destino. Los paneles y etiquetas del proveedor pueden cambiar, así que utilice las instrucciones RTMP actuales del destino. Trate la clave de transmisión como una contraseña: no la publique en el chat de la reunión ni en las capturas de pantalla de los artículos. Grabar en el almacenamiento local y enviar una transmisión en vivo a un servicio RTMP son funciones relacionadas de Jibri, pero tienen destinos y verificaciones diferentes.

Menú ilustrativo de más acciones para reuniones de Jitsi con opciones para iniciar la grabación e iniciar la transmisión en vivo.
Tras configurar Jibri, el menú de la reunión permite acceder a las opciones de grabación y transmisión en directo; la disponibilidad del menú depende de la implementación.

Solucionar problemas en el punto de fallo

  • No aparece ninguna grabación ni transmisión: Confirme ENABLE_RECORDING=1que esté presente en el archivo de entorno activo y que la pila de Compose correspondiente se haya recreado después del cambio. Compruebe la configuración generada de web, Prosody y Jicofo en lugar de editar archivos dentro de un contenedor en ejecución; Docker regenera la configuración del servicio a partir de las entradas del host.
  • La acción aparece, pero Jibri no puede unirse: revise los registros de Jibri y Jicofo en busca de errores de autenticación XMPP o MUC. Verifique el host interno, el dominio del grabador, el nombre de la cervecería y ambas contraseñas internas con la misma versión de Compose.
  • El contenedor finaliza o se reinicia: revise sus registros para detectar si falta alguna ruta de almacenamiento o si esta no es editable. En las imágenes sin privilegios de administrador, verifique que el directorio montado sea editable por el UID/GID 1000. Compruebe también la memoria del host y la configuración de memoria compartida proporcionada por el archivo Jibri Compose oficial.
  • La sesión se inicia, pero no aparece ningún archivo de grabación: Confirme que el directorio de grabación configurado se corresponde con el volumen del host y que la sesión se detuvo/finalizó correctamente. Compruebe el espacio libre en disco y los permisos de archivo.
  • La grabación funciona, pero la transmisión falla: revise la URL de ingesta RTMP y la clave de transmisión, los requisitos actuales del destino y la ruta de red de salida del host. Consulte los registros de Jibri para detectar el fallo de transmisión en lugar de abrir puertos de entrada adicionales sin evidencia.

Cuando una reunión funciona pero se necesitan más grabaciones simultáneas, aumente la capacidad de forma planificada. El límite de una sesión por instancia de Jibri implica que las tareas concurrentes requieren más instancias; el manual de Docker también recomienda seleccionar interfaces de bucle de audio distintas para varias instancias. Pruebe una instancia adicional antes de ampliar el grupo y verifique que cada instancia pueda crear una grabación independiente.

Utilice estas referencias oficiales.

Siga las instrucciones que correspondan a su implementación en lugar de copiar la configuración de una versión de Jibri no relacionada. El manual de Jitsi Docker documenta el flujo de trabajo de Compose, las variables de registro, la ruta de almacenamiento, los permisos de contenedores sin privilegios de administrador y las notas actuales de Jibri. El archivo README del proyecto Jibri explica la función de Jibri, la limitación de sesión única y el modelo de configuración. La definición oficial del servicio Jibri Compose y la plantilla de entorno son la fuente de información fidedigna para los nombres de variables y los puntos de montaje específicos de cada versión.

Dejar un comentario

Solucionar el problema de la carga automática de Nextcloud en iOS que no funciona en segundo plano

Solucionar el problema de la carga automática de Nextcloud en iOS que no funciona en segundo plano

Si Nextcloud para iPhone solo sube archivos cuando está abierto, compruebe la configuración de Carga automática, la Actualización en segundo plano de la aplicación de iOS, el acceso a Fotos, el Modo de bajo consumo, los límites de red y los errores del servidor con esta práctica lista de verificación.

Cómo configurar el visor de archivos de Kopano WebApp y los complementos MDM

Cómo configurar el visor de archivos de Kopano WebApp y los complementos MDM

Aprenda cómo habilitar las vistas previas de archivos de Kopano WebApp e instalar el complemento MDM, con los requisitos de Z-Push y PHP SOAP, comprobaciones de configuración y pruebas de seguridad de dispositivos.

Solucionar el error “Límite de memoria PHP por debajo del valor recomendado” en ownCloud 10

Solucionar el error “Límite de memoria PHP por debajo del valor recomendado” en ownCloud 10

Solucione correctamente la advertencia de límite de memoria PHP de ownCloud 10 encontrando la configuración PHP web activa, estableciendo 512M, gestionando la CLI y Docker, y verificando el espacio de RAM disponible.

Solucionar el error 500 del servidor interno en el panel de control de BigBlueButton Greenlight

Solucionar el error 500 del servidor interno en el panel de control de BigBlueButton Greenlight

Solucione el error 500 del panel de control de Greenlight identificando su versión, revisando los registros de la aplicación, verificando la configuración de la API y la base de datos de BBB y revisando la configuración del proxy.

Cómo configurar alias de salas Matrix personalizadas en su dominio

Cómo configurar alias de salas Matrix personalizadas en su dominio

Aprende cómo funcionan los alias de sala de Matrix, prepara tu dominio y el servidor principal de Synapse, configura la delegación de federación, crea un alias personalizado y verifícalo de forma segura.

Cómo transferir la propiedad de archivos compartidos en ownCloud Server

Cómo transferir la propiedad de archivos compartidos en ownCloud Server

Aprende cómo un administrador de ownCloud Server puede transferir una carpeta seleccionada o todos los archivos a otro usuario con occ, teniendo en cuenta los recursos compartidos, las versiones y la verificación.

Solucionar el aviso de Nextcloud "Algunos archivos no han superado la comprobación de integridad".

Solucionar el aviso de Nextcloud "Algunos archivos no han superado la comprobación de integridad".

Aprende a diagnosticar las advertencias de integridad del código de Nextcloud, restaurar los archivos principales modificados o faltantes, gestionar los archivos adicionales y los errores de firma de la aplicación, y luego verificar la reparación de forma segura.

Solucionar el problema del cliente de sincronización de escritorio de Nextcloud que se queda atascado en "Procesando archivos".

Solucionar el problema del cliente de sincronización de escritorio de Nextcloud que se queda atascado en "Procesando archivos".

¿Nextcloud Desktop se queda atascado en "Procesando archivos"? Diagnostica el archivo que causa el bloqueo, la configuración de sincronización, la red, los registros y las opciones de restablecimiento seguro sin poner en riesgo tus datos.

Cómo restablecer una contraseña de administrador de Nextcloud con OCC

Cómo restablecer una contraseña de administrador de Nextcloud con OCC

Restablezca una contraseña de administrador de Nextcloud olvidada desde la línea de comandos con occ. Encuentre la ruta de instalación correcta, ejecute el restablecimiento de forma segura y verifique el acceso.

Cómo configurar un servidor de grabación y transmisión Jibri para Jitsi Meet

Cómo configurar un servidor de grabación y transmisión Jibri para Jitsi Meet

Configura Jibri con Docker Compose para Jitsi Meet. Configura la grabación, protege los permisos de almacenamiento, inicia el servicio y prueba las grabaciones y las transmisiones RTMP.