Jibri recording stops after a while on raspberry pi

Hi there!
I have configured jitsi meet on a “normal” computer (Ubuntu x64) and it worked like a charme. Now I have performed the same steps in order to install it on raspberry pi 4b with only one difference: chromium driver instead of chrome driver.
The system as such works as expected, but I cannot record the meetings as I can do on the other setup. The recording starts, but after a while there is an error message “could not start recording” (Might be a different wording, the actual message is in german).
I have checked the logs and followed on this topic on different threads here in forum, but was not able to solve the problem.
But on the other hand, I am new to jitsi meet, so its maybe something obvious, which I miss.

I hope some of you with more knowledge here is able to point me in the right direction.
Since I cannot attach files to this thread yet, had to upload the file somewhere else:
log.txt: https://file.io/iJRwHJZhwPJu
ffmped.txt: https://file.io/te4mXNfIfjtd
I hope you can see the problem there.

Thanks in advance for the help!

And here are the browser logs:
browser.txt: https://file.io/KnrBdOCZG24c

What are your server specs?

I don’t think you can use raspberry pi for jibri. You need more cpu and more RAM.

DerXHelp, wrote it is a Rapberry 4b with 8GB of RAM and Quad Core Prozessor. It seems that recording has started, but after abou 1 minute, the message appears that recording could not starting, you can see that a mp4 file is recorded but you cant play this mp4 file. Jitsi meet without jibri works fine on Rapsi 4b But what’s wrong with jibri?
DerXHelp helps me!
I am not a specialist. Thx for your help.

Are you trying to run jitsi-meet and jibri on the same device? If that is the case you need something with 16GB of RAM at least.
I suspect chrome will be very slow alone on the Rapberry 4b and if you start the rest of the ffmpeg processes it will die and this is what I suspect is happening.

@aossow you could also confirm that you’re using Java 8 - that’s usually the suspect when you have an mp4 that’s not playable. And yes, Damencho is right - you need more RAM for reliable recording if you’re running both Jitsi and Jibri on the same server. It might work for you sometimes, but you’re likely to run into issues too.

Also, just to rule out configuration issues, can you share your jibri.conf?

Other installation: Jitsi and Jibri runs on a normal PC amd64 with Quad Core Prozessor an 8GB of RAM very good. Both on the same machine.

So i thought jitsi and jibri could also run on a raspberry with the same values, quad core prozessor and 8GB of RAM. with arm64 ubuntu 20.04 . Yes Java 8 is installed.

@ Freddie: I try to share the jibri.conf file.

THX

It works on amd64 PC,also used for raspi:
:jibri.conf:
jibri {
// A unique identifier for this Jibri
// TODO: eventually this will be required with no default
id = “jibri-instanz”
// 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
// and will need to be restarted in order to be used again.
single-use-mode = false
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.de”]
xmpp-domain = “my.domain.de

            control-muc {
                domain = "internal.auth.my.domain.de"
                room-name = "JibriBrewery"
                nickname = "jibri"
            }

            control-login {
                domain = "auth.my.domain.de"
                username = "jibri"
                password = "PWD"
            }

            call-login {
                domain = "recorder.my.domain.de"
                username = "recorder"
                password = "PWD"
            }

            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 = “”
}
streaming {
// A list of regex patterns for allowed RTMP URLs. The RTMP URL used
// when starting a stream must match at least one of the patterns in
// this list.
rtmp-allow-list = [
// By default, all services are allowed
“.*”
]
}
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 used in webhook
// 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 does not
// 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 consideres this
// as an empty call and stops the recording after ALL_MUTED_TIMEOUT expires.
all-muted-timeout = 10 minutes

// When detecting if a call is empty, Jibri takes into consideration for how
// long the call has been empty already. If it has been empty for more than
// DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop the recording.
default-call-empty-timeout = 30 seconds

}
}

What’s the output of this command:

dpkg -l ubuntu-desktop

dpkg-query: no packages found matching ubuntu-desktop

installed on sd card is ubuntu server:
ubuntu-20.04.2-preinstalled-server-arm64+raspi.img.xz

dpkg -l ubuntu-server
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±==============-============-============-=================================
ii ubuntu-server 1.450.2 arm64 The Ubuntu Server system

What about:

lsmod | grep snd_aloop

snd_aloop 24576 0
snd_pcm 143360 2 snd_bcm2835,snd_aloop
snd 114688 4 snd_bcm2835,snd_timer,snd_aloop,snd_pcm

Does jibri start on the second try?
You can install VNC and you can check what is going on in the Jibri desktop session

Jibri start recording, you can see the red record button. jibri create a mp4 Recording file. But yuo can’t open the file.

I think the problem is the size of the swap partition.

The Problem is the size of the swap file! THX

So @damencho is right, 8 GB RAM is not enough

I am a little curious about the configs. When problem with 2GB, suggestion is to use minimum 4GB. Issue with it, use 8GB. Still issue, use 16GB.

Do we not have a minimum config that just works?