Jitsi-n Jibri-rekin grabaketak eta streaming baimenduz
Si en un post anterior vimos cómo podemos montarnos nuestra propia solución de videoconferencias para nuestra empresa, hoy le vamos a dar un par de añadidos, como es la posibilidad de grabar las sesiones o hacer streaming en directo de nuestras reuniones.
Mediante Jibri vamos a poder permitir grabar en disco o en nube las sesiones que hagamos, así como si se quiere hacer un directo y retransmitir por Youtube. Una consideración importante será que sólo podemos hacer una grabación de manera simultánea o streaming, para más, deberemos crear distintos Jibri's (por ejemplo en contenedores).
La idea es seguir el post anterior así que vamos a permitir está interesante funcionalidad! Partimos de que en Github se encuentra todo el proyecto y perfectamente documentado, aquí vamos con un Ubuntu 20.04.
Empezamos con lo fundamental, tenemos que tener la versión 8 de Java, conoceremos la versión que tenemos ejecutando:
java -version
nire kasuan, al tener Ubuntu 20.04, veo que tengo la versión 11, así que hay que hacer downgrade, primero aseguramos instalar la versión 8:
sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
Y al ejecutar ‘update-alternatives –config java’ podremos elegir la versión de java que usaremos, en mi caso elegimos la 2:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Creamos la variable JAVA_HOME con ‘nano ~/.bashrc’, la añadimos al final del fichero, y tras grabar el fichero saldremos de sesión y volveremos a cargar para confirmar que la variable se carga (con un simple ‘echo $JAVA_HOME’).
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java
Instalamos las siguientes dependencias que serán necesarias:
apt update
apt install unzip ffmpeg curl alsa-utils icewm xdotool xserver-xorg-input-void xserver-xorg-video-dummy -y
Cargamos el módulo ALSA loopback, forzamos a que se cargue en el boot y verificamos que lo tenemos cargado:
echo "snd-aloop" >> /etc/modules modprobe snd-aloop lsmod | grep snd_aloop
Instalamos la última versión estable de 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 update && apt install google-chrome-stable -y
Para ocultar el Warning que nos sacará Chrome que grabará la sesión: “Chrome is being controlled by automated test software” lo indicaremos mediante una preferencia:
mkdir -p /etc/opt/chrome/policies/managed echo '{ "CommandLineFlagSecurityWarningsEnabled": false }' >>/etc/opt/chrome/policies/managed/managed_policies.json
También necesitaremos 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 ~/ 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 el repositorio de Jitsi para instalar Jibri finalmente:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add - sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" apt update apt install jibri -y
Metemos al usuario de Jibri en los grupos para tener acceso a los dispositivos de audio o video:
usermod -aG adm,Audioa,video,plugdev jibri
Añadimos al final del fichero /etc/prosody/conf.avail/meet.dominio.eso.cfg.lua lo siguiente:
Component "internal.auth.meet.dominio.eso" "muc"
modules_enabled = {
"ping";
}
storage = "memoria"
muc_room_cache_size = 1000
VirtualHost "recorder.meet.dominio.eso"
modules_enabled = {
"ping";
}
authentication = "internal_plain"
Y recargamos Prosody:
prosody reload
Creamos las dos cuentas que utilizará Prosody y les establecemos una contraseña que usaremos en un ratito:
prosodyctl register jibri auth.meet.dominio.eso CONTRASEÑA prosodyctl register recorder.meet.dominio.eso CONTRASEÑA
Añadimos estas 2 linas al final de '/etc/jitsi/jicofo/sip-communicator.properties’ para localizar los controladores Jibri:
org.jitsi.jicofo.jibri.BREWERY=Ji**********@************************io.eso
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
Eta berriro kargatzen dugu Jicofo:
/etc/init.d/jicofo reload
Deskomentatu eta utzi honako lerro hauek ' /etc/jitsi/meet/meet.dominio.eso-config.js' fitxategian’ grabaketak edo streaming-ak gaitzeko:
fileRecordingsEnabled: true, liveStreamingEnabled: true, hiddenDomain: 'recorder.meet.dominio.eso',
Sortu Jibri konfigurazio fitxategia '/etc/jitsi/jibri/config.json':
{
"recording_directory":"/srv/recordings",
"finalize_recording_script_path": "/path/to/finalize_recording.sh",
"xmpp_environments": [
{
"name": "prod ingurunea",
"xmpp_server_hosts": [
"meet.dominio.eso"
],
"xmpp_domain": "meet.dominio.eso",
"control_login": {
// Saioa hasteko erabiliko den domeinua
"domain": "auth.meet.dominio.eso",
// Saioa hasteko behar diren kredentzialak
"username": "jibri",
"password": "PASAHITZA"
},
"control_muc": {
"domain": "internal.auth.meet.dominio.eso",
"room_name": "JibriBrewery",
"nickname": "jibri-nickname"
},
"call_login": {
"domain": "recorder.meet.dominio.eso",
"username": "recorder",
"password": "PASAHITZA"
},
"room_jid_domain_string_to_strip_from_start": "conference.",
"usage_timeout": "0"
}
]
}
Sortu direktorioa grabaketak gordetzeko eta ematen ditugu baimenak, elik gai izango ginateke hori hodeian edo makinan sortu dugun partekatze batean gordetzeko:
mkdir /srv/recordings chown jibri:jitsi /srv/recordings
Jitsi berrabiarazten dugu:
service jibri restart
eta prest! Bilera bat egingo dugu eta zuzeneko transmisio bat edo bileren grabaketa egitea probatu dezakegu.
Grabaketa hasterakoan, parte-hartzaile guztiek mezu bat entzungo dute saioa grabatzen ari dela eta ikusi ahal izango da ere goiko eskuineko ikono bat agertuko delako.
Eta grabazioak adierazitako direktorioan uzten ari direla berretsi ahal izango dugu, adibide honetan ‘/srv/recordings/’-en.
Espero dut beti bezala, interesgarria izan zaizuela eta sare sozialetan like eta gomendioak ematen dituzuen guztiei eskerrak ematea.









































