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:

Cómo instalar Jitsi en Ubuntu 18.04 - _ voidNull
He oído por allí, que instalar Jitsi como alternativa a Skype es una auténtica locura y que es imposible. Parece que como que Skype es más cómodo pues para que buscar la forma fácil de instalar una alternativa a una empresa que te espía, no?

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:

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación