Question Regarding Multiple Instances of Jibri

I will need to have 16 simultaneous room recordings going on. As I understand it, on Jibri instance can only record one room at a time. This being the case, what is the best way to go about being able to record up to 16 rooms at once (and have the recording files all go to the same place)?

It’s having 16 Jibri servers and making the script for finalizing the recordings move the file to the specified central location, like a file server in your network or a cloud storage.

Thanks for the response. This evening I followed this guide:

to set up Jibri in Docker on a VPS. I think (?) I did all of the setup right, and Docker tells me that everything is running smoothly, but I am unable to record a meeting:


What’s the process for debugging this? Where can I find out where my issue could be?

EDIT: I restarted my main Jitsi server and I’m now getting “recording unavailable” rather than “failed to start”

Start by checking the logs - jicofo log on the Meet machine and the jibri logs. You can also see some errors in the browser console (Ctrl+shift+I).
Most probably it’s something with the jibri configs or network connection to jibri, the logs will show.

Thanks, what specifically should I be looking for in the logs?

Error messages. Omit the info level ones and look for errors.

I see:

Jicofo 2021-04-22 05:04:14.481 WARNING: [34] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Focus role unknown
Jicofo 2021-04-22 05:04:14.906 WARNING: [34] org.jitsi.config.log() Key 'jicofo.bridge.average-participant-packet-rate-pps' from source 'typesafe config (reloaded 1 times)' is deprecated: use jicofo.bridge.average-participant-stress
Jicofo 2021-04-22 05:04:19.998 SEVERE: [36] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can't start
Jicofo 2021-04-22 05:06:39.193 SEVERE: [37] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can't start

It seems pretty clear that there is an issue with the Jibris being found, but I can’t tell why.

I have a feeling that is has something to do with setting up hosts on the Jibri server. This step, I mean:

This is the only part that I don’t think I fully understood the instruction.

This is the FQDN for the Docker host mashine, in your case - the VM that you are installing Docker on.
As for the Jibri logs, they should be in /config/logs/ inside the container, I guess, do check them.
Jicofo doesn’t see an available Jibri, it could mean that Jibri is not connecting as expected; it has to do, otherwise Jicofo has no way of knowing about it.

I’ve now tried using this site: to make a Jibri to record my meeting, but I’m still getting the same error message in the logs.

Jicofo 2021-04-22 13:26:53.455 SEVERE: [33] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can't start

Seeing as I assume the site does everything right, I can assume this means that I have something wrong on my Jitsi server end. What kind of wrong settings could I have set up that might cause this?

I wouldn’t assume unconditionally that. That is a third party service and the error could be on both ends. It’s best to check the Jibri logs - it either connects OK or not and if not, there are traces in the jibri logs.

{"log":"2021-04-22 15:33:42.066 WARNING: [26] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient] error connecting\n","stream":"stderr","time":"2021-04-22T15:33:42.06680545Z"}
{"log":"org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: '' failed because: exception: connect timed out\n","stream":"stderr","time":"2021-04-22T15:33:42.06684027Z"}
{"log":"\u0009at org.jivesoftware.smack.SmackException$ConnectionException.from(\n","stream":"stderr","time":"2021-04-22T15:33:42.06684436Z"}

I see these in one of the logs for my Docker container. It appears that the Jibri can’t connect to the Jitsi server? What could be causing that?

Wait, I had an absolutely stupid idea:

I already have a webpage with an iFrame of my meeting in it, that has some various overlays that I put as a browser source into OBS for livestreaming my events.

Would there be any way to use something like ffmpeg to capture this browser source, and do recording manually like that? A quick Google (for “headless OBS”) tells me this might be possible.

If I could do something like this, I think I might be able to

  1. not have to deal with Jibri
  2. have complete control over the video feed (overlays and stuff)
  3. have complete control over recording naming (which was gonna be an issue at some point)

Can anyone tell me if something like this is possible before I waste 20 hours of time trying to force it to work?

The message says that Jibri can’t connect to XMPP due to connection timeout. I suspect either Prosody is not listening on the public interface or there is a firewall rule that blocks connecting from Jibri to Meet mashine.

I suspect you haven’t configured Meet machine when you made the Jibri install (docker etc.). Check this relevant section in the official documentation for that - GitHub - jitsi/jibri: Jitsi BRoadcasting Infrastructure.

And of course, if there is a firewall, it needs to allow XMPP connection (5222 TCP) from the Jibri machine.

1 Like

T’was the issue, of course.