Tras el primer artículo sobre Jitsi, sobre como instalar este maravilloso software en nuestros servidores para tener un lugar seguro y privado para tener videoconferencias, hoy os traigo un tutorial para activar la opción de grabar videoconferencias en local y cómo activar para emitir la videoconferencia en streaming.
Por ejemplo, podemos usar esta característica para emitir en nuestro nodo de Peertube de confianza, que en mi caso siempre es y será FediverseTV.
Este tutorial está probado bajo Debian 10, pero debería de funcionar en otras versiones de Debian así como las de Ubuntu. También usaremos por defecto el dominio meet.voidnull.es para acceder a Jitsi, por lo que deberás de cambiar el dominio en todas las configuraciones por tu dominio.
Para poder seguir con este tutorial, primero hay que tener un Jitsi desplegado en el servidor, por lo que si no lo tienes deberás de seguir estas instrucciones:

Vamos al lío.
Configuración inicial
Lo primero es tener una configuración inicial, para ello editaremos el siguiente fichero y añadiremos nuestro dominio con los subdominios necesarios:
# nano /etc/hosts
127.0.0.1 meet.voidnull.es
127.0.0.1 recorder.meet.voidnull.es
127.0.0.1 internal.auth.meet.voidnull.es
127.0.0.1 auth.meet.voidnull.es
Activamos módulos necesarios para ALSA
Instalamos el paquete necesario para el núcleo:
# apt install linux-image-extra-virtual
Y habilitamos el siguiente módulo:
# echo "snd-aloop" >> /etc/modules
# modprobe snd-aloop
Y comprobamos que está activo:
# lsmod | grep snd_aloop
Instalamos ffmpeg
Instalamos el paquete:
# apt-get install ffmpeg -y
Google Chrome stable y Chromedriver
Instalamos Google Chrome:
# curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
# echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
# apt-get update
# apt-get install google-chrome-stable
Configuramos las políticas de Chrome
Para ello necesitamos crear el directorio para añadir las políticas de Chrome:
# mkdir -p /etc/opt/chrome/policies/managed
Y añadimos el siguiente fichero:
# echo '{ "CommandLineFlagSecurityWarningsEnabled": false }' >> /etc/opt/chrome/policies/managed/managed_policies.json
Instalamos Chromedriver
Ahora necesitamos instalar Chromedriver:
# CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`
# wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
Descomprimimos y configuramos el binario para que sea parte del sistema:
# unzip ~/chromedriver_linux64.zip -d ~/
# rm ~/chromedriver_linux64.zip
# mv -f ~/chromedriver /usr/local/bin/chromedriver
# chown root:root /usr/local/bin/chromedriver
# chmod 0755 /usr/local/bin/chromedriver
Instalamos herramientas necesarias para el Streaming / Recording
Instalamos los paquetes:
# apt-get install default-jre-headless curl alsa-utils icewm xdotool xserver-xorg-input-void xserver-xorg-video-dummy
Instalamos Jibri, el servicio clave para todo esto
Este paquete se encuentra en los repositorios oficiales de Jitsi, por lo que hay que tener los repositorios añadidos. En el primer tutorial sobre como instalar Jitsi, están las instrucciones para añadir el repositorio.
# apt-get install jibri
Configuración del usuario para Jibri
Durante la instalación, se añade un usuario, debemos de configurar este usuario para que pertenezca a unos grupos específicos:
# usermod -aG adm,audio,video,plugdev jibri
Configuramos Jitsi Meet para que funcione con Jibri
Ahora viene lo bueno.
Editamos los ficheros de Prosody para añadir las salas para Jibri:
# nano /etc/prosody/prosody.cfg.lua
Y añadimos la siguiente configuración al final:
Component "internal.auth.meet.voidnull.es" "muc"
modules_enabled = {
"ping";
}
storage = "null"
muc_room_cache_size = 1000
VirtualHost "recorder.meet.voidnull.es"
modules_enabled = {
"ping";
}
authentication = "internal_plain"
Y registramos los usuarios para Prosody:
# prosodyctl register jibri auth.meet.voidnull.es supercontrasenya
# prosodyctl register recorder recorder.meet.voidnull.es supercontrasenya
Tened en cuenta en configurar una contraseña robusta para este paso, no uséis «supercontrasenya» como contraseña porque no es tan «súper» 😛
Configuración Jicofo
Editamos el siguiente fichero de configuración:
# nano /etc/jitsi/jicofo/sip-communicator.properties
Y añadimos lo siguiente:
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.meet.voidnull.es
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
Configuración de Jitsi Meet
Editamos el siguiente fichero de configuración que tendrá el nombre de nuestro dominio:
# nano /etc/jitsi/meet/meet.voidnull.es-config.js
Y modificamos el siguiente parámetro:
hiddenDomain: 'recorder.meet.voidnull.es',
Activar Streaming en Jitsi Meet
Si queremos activar el Streaming, debemos de añadir lo siguiente en el anterior fichero de configuración:
liveStreamingEnabled: true,
Activar el Recording en Jitsi Meet
Si queremos activar el Recording, debemos de añadir lo siguiente en el fichero anterior de configuración:
fileRecordingsEnabled: true,
Creamos directorio para guardar las grabaciones
También hay la opción de grabar la videollamada, para ello tenemos que configurar una ruta donde se guardarán los videos.
# mkdir /opt/recordings
# chown jibri:jibri /opt/recordings
Configuramos Jibri para que funcione bien Streaming y Recording
Editamos el fichero de configuración de Jibri:
# nano /etc/jitsi/jibri/config.json
Y añadimos lo siguiente:
"recording_directory": "/opt/recordings",
"finalize_recording_script_path": "",
"xmpp_server_hosts": [
"meet.voidnull.es"
],
"xmpp_domain": "meet.voidnull.es",
"control_login": {
"domain": "auth.meet.voidnull.es",
"username": "jibri",
"password": "supercontraseña"
},
"control_muc": {
"domain": "internal.auth.meet.voidnull.es",
"room_name": "JibriBrewery",
"nickname": "jibri"
},
"call_login": {
"domain": "recorder.meet.voidnull.es",
"username": "recorder",
"password": "supercontraseña"
},
Prestad atención a esta configuración, ya que deberéis de cambiar muchos de los parámetros por vuestro dominio y vuestra contraseña segura.
Reiniciamos los servicios
Ahora que está todo modificado, reiniciamos los servicios para aplicar la configuración:
systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart jibri
Y con todo esto, ya debería de funcionar la opción de grabar o Streaming. Os dejo este vídeo de FediverseTV que explica como emitir en directo a un nodo de Peertube:
Comentarios