You are on page 1of 17

11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers

ty Forum - developers & users

TUTORIAL - How to Install the NEW JIBRI


meet, jibri, tutorial

Freddie Dec '20

If you’re here, you likely already know what Jibri is and you are looking to deploy it in your own
environment (or upgrade your already installed instance to the latest version). You WILL need
to install this latest version of Jibri or upgrade to this latest version (if you already deployed
Jibri) as there will no longer be support for the previous version soon.

To make this as concise as possible, I won’t go into the architecture and all the features of
Jibri. You can check out my other Tutorial for that. However, as a quick reminder, here’s a
diagramatic representation of how Jibri integrates with Jitsi Meet to provide recording and
livestreaming capabilities.

WHAT’S NEW?

There are a few excellent tutorials out there on how to install the previous version of Jibri.
However, with the latest upgrade, changes have been made that impact how Jibri is now
installed and configured.

The baseline architecture is still the same, but there are significant improvements to how Jibri
is configured. The new configuration in the latest version of Jibri opens the door to a wealth
of possibilities for future extensions to Jibri’s capabilities. Of particular note is the deprecation
of config.json and the adoption of Jibri.conf. This point has become especially important as
plans are now underway to retire config.json completely (likely in a matter of weeks) .

STEPS
Skip to TO INSTALL
main contentTHE LATEST VERSION OF JIBRI

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 1/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

Most of these commands require root level access, so start out by setting up as root user:

sudo su

INSTALL AND CONFIGURE PRE-REQUISITES

1. ALSA Loopback Module - Configure to load on boot, load into running kernel and
confirm

echo "snd-aloop" >> /etc/modules

modprobe snd-aloop

lsmod | grep snd_aloop

2. Google Chrome Stable

curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub |


echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable m
apt-get -y update

apt-get -y install google-chrome-stable

3. Chrome managed policies

mkdir -p /etc/opt/chrome/policies/managed

echo ‘{ “CommandLineFlagSecurityWarningsEnabled”: false }’


>>/etc/opt/chrome/policies/managed/managed_policies.json

4. Google Chromedriver

CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LA


wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERS
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

5. Miscellaneous Packages

apt-get install ffmpeg curl alsa-utils icewm xdotool xserver-xorg-


input-void xserver-xorg-video-dummy

INSTALL LATEST JIBRI

6. Install Jibri

If installing on the same server as Jitsi:

apt-get install jibri


Skip to main content
If installing on a different server:

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 2/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-


sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sou
apt update && apt install jibri -y

7. Add Jibri to the necessary user groups

usermod -aG adm,audio,video,plugdev jibri

Java 8 - Install and configure as default for Jibri

8. Install Java 8

wget -O - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public
add-apt-repository https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

apt-get -y update

apt-get install adoptopenjdk-8-hotspot

9. Open “launch.sh”

nano /opt/jitsi/jibri/launch.sh

10. Set Java 8 as default for Jibri - replace the word “java” with the full path to Java 8

/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java

CONFIGURATION

Configure Prosody

11. Open your prosody cfg.lua

nano /etc/prosody/conf.avail/your.domain.com.cfg.lua

12. Add the following at the end of the file

-- internal muc component, meant to enable pools of jibri and jigasi cl


Component "internal.auth.your.domain.com" "muc"

modules_enabled = {

"ping";

storage = "memory"

muc_room_cache_size = 1000

VirtualHost "recorder.your.domain.com"

modules_enabled = {

"ping";

authentication = "internal_plain"

Skip to main content

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 3/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

13. Create Accounts - ‘jibri’ and ‘recorder’ (choose your own passwords, but note them for
later)

prosodyctl register jibri auth.your.domain.com JPwd

prosodyctl register recorder recorder.your.domain.com RPwd

Configure Jicofo

14. Open jicofo/sim-communicator-properties

nano /etc/jitsi/jicofo/sip-communicator.properties

15. Add the following lines

org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.your.domain.c
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90

Configure Jitsi Meet

16. Open config.js

nano /etc/jitsi/meet/your.domain.com-config.js

17. Set the following properties:

fileRecordingsEnabled: true,

liveStreamingEnabled: true,

hiddenDomain: 'recorder.your.domain.com',

Additional System Configuration

18. Open port 5222 if Jibri is installed on a separate server from Jitsi

ufw allow 5222/tcp

19. Create directory to store recordings and assign jibri ownership of the directory

mkdir /srv/recordings

chown jibri:jibri /srv/recordings

CONFIGURE JIBRI.CONF

This is the most significant change in the new Jibri. Pay careful attention to this configuration
because it is responsible for about 90% of the problems reported about running Jibri.

20. Open the jibri.conf file

nano /etc/jitsi/jibri/jibri.conf

21. Copy and paste the following configuration details into your jibri.conf file (click arrow
below to reveal configuration details), making sure to edit to reflect your domain name
Skip to main content
and the passwords you registered earlier in Prosody for users “jibri” and “recorder”

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 4/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users


jibri.conf

22. Finally, restart all services and set Jibri to start on boot

systemctl restart jitsi-videobridge2 prosody jicofo

systemctl enable --now jibri

You are now all set! You have installed the latest version of Jibri and have future-proofed your
Jibri deployment. Congrats!

UPGRADING TO LATEST JIBRI

If you already have Jibri deployed, you can upgrade to the latest version by simply purging
your Jibri and then running apt-get install jibri. Most configurations previously set
survive a purge, but you will need to populate the newly-created “jibri.conf” file and delete the
previously-existing “config.json” file.

You may have problems with Jibri not starting after re-installing. The usual culprits are:

Mistakes in jibri.conf
Jibri user accounts got deleted (most often the “jibri” user)
Jibri log directory is missing (/var/log/jitsi/jibri/)
User “jibri” does not have ownership of Jibri log folder
User “jibri” does not have access to the recordings directory

For these errors and others, check out the comprehensive Troubleshooting Guide -
TUTORIAL: Jibri Overview, Troubleshooting Tips & Tricks - Solve your Jibri Problems,
Quickly!

Skip to setup
Jibri main content
and configuration - here’s how! FULL GUIDE

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 5/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

Jibri docker - Error : recording has failed


Jitsi livestream sdk
Jibri: cannot read property isJoined of undefined, Error: FailedToJoinCall SESSION …
Jibri Service Active failed
85 more

emrah Dec '20

@Freddie

Some notes:

path

Freddie:

19. Create directory to store recordings and assign jibri ownership of the directory

mkdir /srv/recordings

chown jibri:jibri /recordings

chown jibri:jibri /srv/recordings

Some commands have sudo but some not… This may be confusing for some people.

sudo su -l as a first command?

apt vs apt-get

Adding jitsi/jibri repo is missing (I think you assumed that Jitsi is already installed)

The customization line (step 7) before the jibri installation (step 9)

Step 18: Open port 5222

It may be better to specify this step is only needed if jibri is on a seperate server

It may be better to use the same passwords in step 13 and step 21. Some new users
copy-paste the commands without thinking

Unable deploy separta jibri server

Ark74 Dec '20

Or use

Skip to main content switnet-ltd/quick-jibri-installer

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 6/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

Bash installer for Jitsi Meet along with Jibri on *buntu LTS based
systems | Documentation Available at the Wiki

Freddie Dec '20

Thanks @emrah ! Great spots! Most of these were the result of me pasting commands over
while trying to correct the formatting of the post… smh. I’d actually set them correctly.

Not all commands in this installation require root access though, so as a rule, I generally tend
not to work as root unless specifically required. However, I don’t believe root access hurts any
line in this installation, so for the benefit of those new to linux, perhaps it’s not a bad idea.

pratik Dec '20

@bbaldino Thanks fo the new update.

I just want to confirm http://127.0.0.1:3333/jibri/api/internal/v1.0/gracefulShutdown is still


working?

by doing this jibri will shut down after it completes the recording or streaming work and the
notify to jicofo this jibri is no longer available for recording or streaming. Am I correct?

@Freddie thank you for the tutorial

bbaldino Jan '21

pratik:

I just want to confirm http://127.0.0.1:3333/jibri/api/internal/v1.0/gracefulShutdown is


still working?

by doing this jibri will shut down after it completes the recording or streaming work and the
notify to jicofo this jibri is no longer available for recording or streaming. Am I correct?

As far as I know, yes…there’s no plans to change that

dumasti Jan '21

Hey. I did everything as written in this manual. He substituted his values ​where necessary.
Jibri is installed on the same debian server as jitsi. However, I am unable to enable recording.
I have a graphical shell on the server, but I disabled it. Jitsi works fine. The server has two
CPUs
Skip towith 4 cores
main each and 24 GB of RAM. What could be the problem?
content

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 7/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

root@matrix:~# systemctl restart jibri

root@matrix:~# journalctl -xe

– Unit jibri.service has begun shutting down.

Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]: % Total % Received % Xf

Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]:

Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]: [149B blob data]

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Control process exited, code=

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Main process exited, code=exi

Jan 22 13:29:34 matrix systemd[1]: Stopped Jibri Process.

– Subject: Unit jibri.service has finished shutting down

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri.service has finished shutting down.

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Unit entered failed state.

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Failed with result 'exit-code

Jan 22 13:29:34 matrix systemd[1]: Started Jibri Process.

– Subject: Unit jibri.service has finished start-up

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri.service has finished starting up.

– The start-up result is done.

root@matrix:~# journalctl -xe

– Support: Debian -- Support

– Unit jibri.service has finished starting up.

– The start-up result is done.

Jan 22 13:29:34 matrix systemd[1]: jibri-xorg.service: Service hold-off time over,


scheduling restart.

Jan 22 13:29:34 matrix systemd[1]: Stopped Jibri Xorg Process.

– Subject: Unit jibri-xorg.service has finished shutting down

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri-xorg.service has finished shutting down.

Jan 22 13:29:34 matrix systemd[1]: jibri-xorg.service: Start request repeated too


quickly.

Jan 22 13:29:34 matrix systemd[1]: Failed to start Jibri Xorg Process.

– Subject: Unit jibri-xorg.service has failed

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri-xorg.service has failed.

Skip to main content


– The result is failed.

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 8/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

Jan 22 13:29:34 matrix systemd[1]: Dependency failed for Jibri Window Manager.

– Subject: Unit jibri-icewm.service has failed

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri-icewm.service has failed.

– The result is dependency.

Jan 22 13:29:34 matrix systemd[1]: jibri-icewm.service: Job jibri-icewm.service/start


failed with result ‘dependency’.

Jan 22 13:29:34 matrix systemd[1]: jibri-xorg.service: Unit entered failed state.

Jan 22 13:29:34 matrix systemd[1]: jibri-xorg.service: Failed with result ‘exit-code’.

Jan 22 13:29:34 matrix systemd[1]: Stopping Jibri Process…

– Subject: Unit jibri.service has begun shutting down

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri.service has begun shutting down.

Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]: % Total % Received % Xferd


Average Speed Time Time Time Current

Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]: Dload Upload Total Spent Left


Speed
Jan 22 13:29:34 matrix graceful_shutdown.sh[4258]: [149B blob data]

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Control process exited, code=exited


status=7

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Main process exited, code=exited,


status=143/n/a

Jan 22 13:29:34 matrix systemd[1]: Stopped Jibri Process.

– Subject: Unit jibri.service has finished shutting down

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri.service has finished shutting down.

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Unit entered failed state.

Jan 22 13:29:34 matrix systemd[1]: jibri.service: Failed with result ‘exit-code’.

Jan 22 13:29:34 matrix systemd[1]: Started Jibri Process.

– Subject: Unit jibri.service has finished start-up

– Defined-By: systemd

– Support: Debian -- Support

– Unit jibri.service has finished starting up.

– The start-up result is done.

Jan 22 13:29:36 matrix launch.sh[4265]: SLF4J: Failed to load class


“org.slf4j.impl.StaticLoggerBinder”.

Jan 22 13:29:36 matrix launch.sh[4265]: SLF4J: Defaulting to no-operation (NOP) logger


implementation

Jan 22 13:29:36 matrix launch.sh[4265]: SLF4J: See SLF4J Error Codes for further
Skip to main content
details.

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 9/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

Freddie Jan '21

dumasti:

I have a graphical shell on the server,

You can’t run Jibri on a server that already has its own xorg components. I mean, it’s
technically possible but the work that’d go into making it work is just not justifiable.

dumasti Jan '21

You are right. I created new separate server special for Jibri without GUI. Everything is
working. Thank you for help.

cypher Jan '21

I think I broke something during the process because when I open the main url

https://jitsi.mydomain.com/ I just get a grey screen now. (jitsi meet used to work fine before)

What section do you guys think I stuffed up?

Edit: I did add:

ufw allow out 5222/tcp

Freddie Jan '21

Oftentimes, this is due to some error (missing or extra character) in config.js

cypher Jan '21

Freddie:

Thx Freddie

I got it. It was indeed a missing comma after the line:

hiddenDomain: ‘recorder.your.domain.com ’,

Derek_Owumi Jan '21

Hey @Freddie I just followed your new JIbri Tutorial, Thanks very much It’s better now but
now when I press “Start Recording” it’ takes a long while then I hear “Recording has Stopped”
Skip to main content
here is the log

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 10/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

2021-01-25 17:53:49.937 INFO: [1] org.jitsi.jibri.Main.handleCommandLineArg


2021-01-25 17:53:49.985 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() C
2021-01-25 17:53:49.985 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig()
2021-01-25 17:53:50.340 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Compa

2021-01-25 17:53:50.340 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Compa


2021-01-25 17:53:50.405 INFO: [1] org.jitsi.jibri.Main.main() Using port 33
2021-01-25 17:53:50.411 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:53:50.573 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.updatePre
2021-01-25 17:53:50.577 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() C
2021-01-25 17:53:50.578 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() T
2021-01-25 17:53:50.588 INFO: [1] org.jitsi.jibri.Main.main() Using port 22
2021-01-25 17:53:50.588 WARNING: [27] org.jitsi.xmpp.mucclient.MucClient.log
2021-01-25 17:53:50.674 INFO: [27] org.jitsi.xmpp.mucclient.MucClient.log()
2021-01-25 17:53:50.675 INFO: [27] org.jitsi.xmpp.mucclient.MucClient.log()
2021-01-25 17:53:50.712 INFO: [27] org.jitsi.xmpp.mucclient.MucClient.log()
2021-01-25 17:54:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:54:53.741 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.handleJ
2021-01-25 17:54:53.741 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:54:53.811 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:54:53.811 INFO: [45] org.jitsi.jibri.JibriManager.startFileRe
2021-01-25 17:54:54.288 INFO: [45] org.openqa.selenium.remote.ProtocolHands
2021-01-25 17:54:54.306 FINE: [45] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:54:54.310 INFO: [45] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:54:54.313 FINE: [45] org.jitsi.jibri.statsd.JibriStatsDClient
2021-01-25 17:54:54.314 INFO: [45] org.jitsi.jibri.status.JibriStatusManage
2021-01-25 17:54:54.314 FINE: [45] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:54:54.314 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.updateP
2021-01-25 17:54:54.315 INFO: [45] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:54:54.897 FINE: [57] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:54:55.262 FINE: [57] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:54:55.769 FINE: [57] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:54:56.284 INFO: [57] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:54:56.285 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.<
2021-01-25 17:54:56.298 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.o
2021-01-25 17:54:56.299 INFO: [57] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:54:56.319 INFO: [57] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:54:57.505 INFO: [60] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:54:57.506 INFO: [60] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:54:57.507 INFO: [60] org.jitsi.jibri.api.xmpp.XmppApi.invoke(
2021-01-25 17:55:11.346 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:55:26.313 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:55:41.312 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:55:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:55:56.316 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:56:11.313 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:56:23.740 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.handleJ
2021-01-25
Skip 17:56:23.741
to main content FINE: [64] org.jitsi.jibri.statsd.JibriStatsDClient
2021-01-25 17:56:23.741 INFO: [64] org.jitsi.jibri.JibriManager.stopService
https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 11/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

2021-01-25 17:56:23.741 INFO: [64] org.jitsi.jibri.service.impl.FileRecordi


2021-01-25 17:56:23.741 INFO: [64] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:56:24.135 INFO: [64] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:56:24.136 INFO: [60] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:56:24.136 INFO: [64] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:56:24.136 INFO: [60] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:56:24.136 INFO: [60] org.jitsi.jibri.api.xmpp.XmppApi.invoke(
2021-01-25 17:56:24.146 INFO: [64] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:56:24.168 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.168 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.174 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.219 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.269 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.269 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.354 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.430 INFO: [64] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:56:24.430 INFO: [64] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:56:24.430 SEVERE: [64] org.jitsi.jibri.service.impl.FileRecord
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)

org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordi
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJi
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:262)

org.jitsi.jibri.api.xmpp.XmppApi.handleStopJibriIq(XmppApi.kt:263)

org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq(XmppApi.kt:169)

org.jitsi.jibri.api.xmpp.XmppApi.handleIq(XmppApi.kt:150)

org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:569)

org.jitsi.xmpp.mucclient.MucClient.access$800(MucClient.java:50)

org.jitsi.xmpp.mucclient.MucClient$2.handleIQRequest(MucClient.java:533)

org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.j
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
java.lang.Thread.run(Thread.java:748)

2021-01-25 17:56:24.431 INFO: [64] org.jitsi.jibri.status.JibriStatusManage


2021-01-25 17:56:24.432 FINE: [64] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:56:24.432 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.updateP
2021-01-25 17:56:24.432 INFO: [60] org.jitsi.jibri.JibriManager.stopService
2021-01-25 17:56:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:57:20.937 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.handleJ
2021-01-25 17:57:20.937 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:57:20.944 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:57:20.944 INFO: [64] org.jitsi.jibri.JibriManager.startFileRe
2021-01-25 17:57:21.124 INFO: [64] org.openqa.selenium.remote.ProtocolHands
2021-01-25 17:57:21.129 FINE: [64] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:57:21.130 INFO: [64] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:57:21.130 FINE: [64] org.jitsi.jibri.statsd.JibriStatsDClient
2021-01-25 17:57:21.130 INFO: [64] org.jitsi.jibri.status.JibriStatusManage
Skip to main content
2021-01-25 17:57:21.130 FINE: [64] org.jitsi.jibri.webhooks.v1.WebhookClient

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 12/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

2021-01-25 17:57:21.130 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.updateP


2021-01-25 17:57:21.131 INFO: [64] org.jitsi.jibri.api.xmpp.XmppApi.handleSt
2021-01-25 17:57:21.766 FINE: [61] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:57:22.137 FINE: [61] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:57:22.643 FINE: [61] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:57:23.193 INFO: [61] org.jitsi.jibri.selenium.pageobjects.Cal
2021-01-25 17:57:23.193 INFO: [61] org.jitsi.jibri.selenium.JibriSelenium.<
2021-01-25 17:57:23.203 INFO: [61] org.jitsi.jibri.selenium.JibriSelenium.o
2021-01-25 17:57:23.203 INFO: [61] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:57:23.221 INFO: [61] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:57:24.341 INFO: [59] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:57:24.341 INFO: [59] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:57:24.342 INFO: [59] org.jitsi.jibri.api.xmpp.XmppApi.invoke(
2021-01-25 17:57:38.238 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:57:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:57:53.221 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:58:08.218 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:58:23.217 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:58:38.217 INFO: [18] org.jitsi.jibri.selenium.JibriSelenium.r
2021-01-25 17:58:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:58:50.938 INFO: [77] org.jitsi.jibri.api.xmpp.XmppApi.handleJ
2021-01-25 17:58:50.938 FINE: [77] org.jitsi.jibri.statsd.JibriStatsDClient
2021-01-25 17:58:50.938 INFO: [77] org.jitsi.jibri.JibriManager.stopService
2021-01-25 17:58:50.938 INFO: [77] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:58:50.938 INFO: [77] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:58:51.336 INFO: [59] org.jitsi.jibri.capture.ffmpeg.FfmpegCapt
2021-01-25 17:58:51.337 INFO: [77] org.jitsi.jibri.util.JibriSubprocess.ffm
2021-01-25 17:58:51.337 INFO: [59] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:58:51.337 INFO: [77] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:58:51.337 INFO: [59] org.jitsi.jibri.api.xmpp.XmppApi.invoke(
2021-01-25 17:58:51.343 INFO: [77] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:58:51.345 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.345 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.351 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.389 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.430 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.430 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.524 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.599 INFO: [77] org.jitsi.jibri.selenium.JibriSelenium.le
2021-01-25 17:58:51.599 INFO: [77] org.jitsi.jibri.service.impl.FileRecordi
2021-01-25 17:58:51.600 SEVERE: [77] org.jitsi.jibri.service.impl.FileRecord
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)

org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordi
org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJi
org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:262)

org.jitsi.jibri.api.xmpp.XmppApi.handleStopJibriIq(XmppApi.kt:263)

org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq(XmppApi.kt:169)

Skip to main content


org.jitsi.jibri.api.xmpp.XmppApi.handleIq(XmppApi.kt:150)

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 13/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:569)

org.jitsi.xmpp.mucclient.MucClient.access$800(MucClient.java:50)

org.jitsi.xmpp.mucclient.MucClient$2.handleIQRequest(MucClient.java:533)

org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.j
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
java.lang.Thread.run(Thread.java:748)

2021-01-25 17:58:51.600 INFO: [77] org.jitsi.jibri.status.JibriStatusManage


2021-01-25 17:58:51.600 FINE: [77] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 17:58:51.600 INFO: [77] org.jitsi.jibri.api.xmpp.XmppApi.updateP
2021-01-25 17:58:51.600 INFO: [59] org.jitsi.jibri.JibriManager.stopService
2021-01-25 17:59:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient
2021-01-25 18:00:50.403 FINE: [18] org.jitsi.jibri.webhooks.v1.WebhookClient

Derek_Owumi Jan '21

Derek_Owumi:

2021-01-25 17:58:51.600 SEVERE: [77]


org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed
to run finalize script: java.io.IOException: Cannot run program
"/path/to/finalize_recording.sh": error=2, No such file or directory
with stack:

I belive this is the pin-point @Freddie

Freddie Jan '21

That’s usually not a problem. Jibri is just responding to you not specifying a finalize script.
What does your Jibri.conf look like? Did you check to make sure you have a recording folder
and that it’s writable by Jibri?

Derek_Owumi Jan '21

This is my Jibri.conf file @Freddie

jibri {

// A unique identifier for this Jibri

// TODO: eventually this will be required with no default

id = “”

// Whether or not Jibri should return to idle state after handling

// (successfully or unsuccessfully) a request. A value of ‘true’

// here means that a Jibri will NOT return back to the IDLE state
Skip
// andto main
will needcontent
to be restarted in order to be used again.

single-use-mode = false

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 14/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

api {

http {

external-api-port = 2222

internal-api-port = 3333

}
xmpp {

// See example_xmpp_envs.conf for an example of what is expected here

environments = [

{
name = “prod environment”

xmpp-server-hosts = [“my.domain.com ”]

xmpp-domain = “my.domain.com ”

control-muc {

domain = "internal.auth.my.domain.com"

room-name = "JibriBrewery"

nickname = "jibri-nickname"

control-login {

domain = "auth.my.domain.com"

username = "jibri"

password = "JPwd"

call-login {

domain = "recorder.my.domain.com"

username = "recorder"

password = "RPwd"

strip-from-room-domain = "conference."

usage-timeout = 0

trust-all-xmpp-certs = true

}]

recording {

recordings-directory = "/srv/recordings"

# TODO: make this an optional param and remove the default

finalize-script = "/path/to/finalize_recording.sh"

streaming {

// A list of regex patterns for allowed RTMP URLs. The RTMP URL use
// when starting a stream must match at least one of the patterns i
// this list.

rtmp-allow-list = [

// By default, all services are allowed

Skip to main content


".*"

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 15/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

chrome {

// The flags which will be passed to chromium when launching

flags = [

"--use-fake-ui-for-media-stream",

"--start-maximized",

"--kiosk",

"--enabled",

"--disable-infobars",

"--autoplay-policy=no-user-gesture-required"

stats {

enable-stats-d = true

webhook {

// A list of subscribers interested in receiving webhook events

subscribers = []

jwt-info {

// The path to a .pem file which will be used to sign JWT tokens use
// requests. If not set, no JWT will be added to webhook requests.

# signing-key-path = "/path/to/key.pem"

// The kid to use as part of the JWT

# kid = "key-id"

// The issuer of the JWT

# issuer = "issuer"

// The audience of the JWT

# audience = "audience"

// The TTL of each generated JWT. Can't be less than 10 minutes.

# ttl = 1 hour

call-status-checks {

// If all clients have their audio and video muted and if Jibri doe
// detect any data stream (audio or video) comming in, it will stop

// recording after NO_MEDIA_TIMEOUT expires.

no-media-timeout = 30 seconds

// If all clients have their audio and video muted, Jibri considere
// as an empty call and stops the recording after ALL_MUTED_TIMEOUT
all-muted-timeout = 10 minutes

// When detecting if a call is empty, Jibri takes into consideratio


Skip to main
// content
long the call has been empty already. If it has been empty for mo

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 16/17
11/3/22, 1:38 PM TUTORIAL - How to Install the NEW JIBRI - Install & Config - Jitsi Community Forum - developers & users

// DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop t


default-call-empty-timeout = 30 seconds

Jitsi Youtube 1080p

dumasti Jan '21

Can Jibri follow the speaker only during the conference?

Can Jibri record the speaker only in the conference?

Freddie Jan '21

Yes, if you enable the “follow me” option in ‘settings’ and the Speaker stays in speaker view.

Derek_Owumi Jan '21

what should I put inside the “.sh file”

Freddie Jan '21

Which .sh - the launch.sh? You don’t change that.

I just looked at your log; it looks like Selenium wasn’t getting data in the 2nd half of the log.
But in your prior attempt, it looks like it started recording and then maybe stopped. So, seems
like you changed something in-between those two instances that might have made it worse.
Perhaps retrace?

Also, do you see anything of interest in your prosody log, maybe?

https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 17/17

You might also like