Professional Documents
Culture Documents
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
1. ALSA Loopback Module - Configure to load on boot, load into running kernel and
confirm
modprobe snd-aloop
mkdir -p /etc/opt/chrome/policies/managed
4. Google Chromedriver
rm ~/chromedriver_linux64.zip
mv -f ~/chromedriver /usr/local/bin/chromedriver
5. Miscellaneous Packages
6. Install Jibri
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
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
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
nano /etc/prosody/conf.avail/your.domain.com.cfg.lua
modules_enabled = {
"ping";
storage = "memory"
muc_room_cache_size = 1000
VirtualHost "recorder.your.domain.com"
modules_enabled = {
"ping";
authentication = "internal_plain"
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)
Configure Jicofo
nano /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.your.domain.c
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
nano /etc/jitsi/meet/your.domain.com-config.js
fileRecordingsEnabled: true,
liveStreamingEnabled: true,
hiddenDomain: 'recorder.your.domain.com',
18. Open port 5222 if Jibri is installed on a separate server from Jitsi
19. Create directory to store recordings and assign jibri ownership of the directory
mkdir /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.
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
You are now all set! You have installed the latest version of Jibri and have future-proofed your
Jibri deployment. Congrats!
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
@Freddie
Some notes:
path
Freddie:
19. Create directory to store recordings and assign jibri ownership of the directory
mkdir /srv/recordings
Some commands have sudo but some not… This may be confusing for some people.
apt vs apt-get
Adding jitsi/jibri repo is missing (I think you assumed that Jitsi is already installed)
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
Or use
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
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.
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?
pratik:
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?
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
– Defined-By: systemd
– Defined-By: systemd
– Defined-By: systemd
– Defined-By: systemd
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.
– Defined-By: systemd
– Defined-By: systemd
– Defined-By: systemd
– Defined-By: systemd
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
dumasti:
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.
You are right. I created new separate server special for Jibri without GUI. Everything is
working. Thank you for help.
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)
Freddie:
Thx Freddie
hiddenDomain: ‘recorder.your.domain.com ’,
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
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)
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
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)
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)
Derek_Owumi:
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?
jibri {
id = “”
// 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 {
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"
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 = [
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 {
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 {
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"
# kid = "key-id"
# issuer = "issuer"
# audience = "audience"
# 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
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
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
Yes, if you enable the “follow me” option in ‘settings’ and the Speaker stays in speaker view.
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?
https://community.jitsi.org/t/tutorial-how-to-install-the-new-jibri/88861 17/17