[SOLVED ]Jibri seem to work but don't see any recording

I am using docker-jitsi-meet and have configured the Jibri to save recording on my Ubuntu Server.

Here are the Jibri logs:

Blockquote
jicofo_1 | Jicofo 2020-06-18 10:08:07.931 INFO: [290] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting session with Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095
jicofo_1 | Jicofo 2020-06-18 10:08:07.931 INFO: [290] org.jitsi.jicofo.recording.jibri.JibriSession.log() Starting Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095 for stream ID: null in room: testingdlrig@muc.meet.jitsi
jibri_1 | 2020-06-18 10:08:07.933 FINE: [205] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/QOWIMcox,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL1FPV0lNY294ADJyalVTLTI3NTAA+52y5cRdFRlUodAT5c9HbQ==,type=set,]
jibri_1 | 2020-06-18 10:08:07.934 INFO: [205] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
jibri_1 | 2020-06-18 10:08:07.934 INFO: [205] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Received start request
jibri_1 | 2020-06-18 10:08:07.934 INFO: [205] org.jitsi.jibri.api.xmpp.XmppApi.handleStartJibriIq() Sending ‘pending’ response to start IQ
jibri_1 | 2020-06-18 10:08:07.935 INFO: [206] org.jitsi.jibri.api.xmpp.XmppApi.run() Starting service
jicofo_1 | Jicofo 2020-06-18 10:08:07.936 INFO: [290] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: for testingdlrig@muc.meet.jitsi
jicofo_1 | Jicofo 2020-06-18 10:08:07.936 INFO: [290] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095 has status pending and failure reason null, current Jibri jid is jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095
jicofo_1 | Jicofo 2020-06-18 10:08:07.936 INFO: [290] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Started Jibri session
web_1 | 10.102.120.42 - - [18/Jun/2020:10:08:07 +0000] “POST /http-bind?room=testingdlrig HTTP/2.0” 200 568 “https://10.207.65.242:8443/testingdlrig” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0”
jibri_1 | 2020-06-18 10:08:07.941 INFO: [206] org.jitsi.jibri.api.xmpp.XmppApi.handleStartService() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=testingdlrig, urlParams=)
jibri_1 | 2020-06-18 10:08:07.942 INFO: [206] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=testingdlrig, urlParams=)), sessionId=jaaskkylycgtyrgo, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, username=recorder, password=9e4d3a3d0df57d668b105c169ae0f718)) finalize script path: /home/dlrig/Workspace/jitsi/finalize.sh and recordings directory: /home/dlrig/Workspace/jitsi/recordings
jibri_1 | Starting ChromeDriver 78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}) on port 28599
jibri_1 | Only local connections are allowed.
jibri_1 | Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
jibri_1 | 2020-06-18 10:08:08.303 INFO: [206] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
jibri_1 | 2020-06-18 10:08:08.308 INFO: [206] org.jitsi.jibri.selenium.JibriSelenium.() Starting empty call check with a timeout of PT30S
jibri_1 | 2020-06-18 10:08:08.308 FINE: [206] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.() Detected os as OS: LINUX
jibri_1 | 2020-06-18 10:08:08.308 INFO: [206] org.jitsi.jibri.service.impl.FileRecordingJibriService.() Writing recording to /home/dlrig/Workspace/jitsi/recordings/jaaskkylycgtyrgo
jibri_1 | 2020-06-18 10:08:08.308 FINE: [206] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: start:recording
jibri_1 | 2020-06-18 10:08:08.309 INFO: [206] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
jibri_1 | 2020-06-18 10:08:08.309 INFO: [206] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
jibri_1 | 2020-06-18 10:08:08.309 INFO: [206] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@7eabaca6
jibri_1 | 2020-06-18 10:08:08.309 FINE: [206] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@783e0d54
jicofo_1 | Jicofo 2020-06-18 10:08:08.311 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.log() Received Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095 status
jibri_1 | 2020-06-18 10:08:08.311 FINE: [32] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/prot
| 2020-06-18 10:08:10.654 INFO: [215] org.jitsi.jibri.selenium.pageobjects.CallPage.visit() Waited 1150 milliseconds for call page to load
jibri_1 | 2020-06-18 10:08:10.665 INFO: [215] org.jitsi.jibri.selenium.JibriSelenium.onSeleniumStateChange() Transitioning from state Starting up to Running
jibri_1 | 2020-06-18 10:08:10.665 INFO: [215] org.jitsi.jibri.service.impl.FileRecordingJibriService.invoke() Selenium joined the call, starting the capturer
jibri_1 | 2020-06-18 10:08:10.688 INFO: [215] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.launch() Starting ffmpeg with command ffmpeg -y -v info -f x11grab -draw_mouse 0 -r 30 -s 1280x720 -thread_queue_size 4096 -i :0.0+0,0 -f alsa -thread_queue_size 4096 -i plug:cloop -acodec aac -strict -2 -ar 44100 -c:v libx264 -preset veryfast -profile:v main -level 3.1 -pix_fmt yuv420p -r 30 -crf 25 -g 60 -tune zerolatency -f mp4 /home/dlrig/Workspace/jitsi/recordings/jaaskkylycgtyrgo/testingdlrig_2020-06-18-10-08-08.mp4 ([ffmpeg, -y, -v, info, -f, x11grab, -draw_mouse, 0, -r, 30, -s, 1280x720, -thread_queue_size, 4096, -i, :0.0+0,0, -f, alsa, -thread_queue_size, 4096, -i, plug:cloop, -acodec, aac, -strict, -2, -ar, 44100, -c:v, libx264, -preset, veryfast, -profile:v, main, -level, 3.1, -pix_fmt, yuv420p, -r, 30, -crf, 25, -g, 60, -tune, zerolatency, -f, mp4, /home/dlrig/Workspace/jitsi/recordings/jaaskkylycgtyrgo/testingdlrig_2020-06-18-10-08-08.mp4])
web_1 | 10.102.120.42 - - [18/Jun/2020:10:08:10 +0000] “POST /http-bind?room=testingdlrig HTTP/2.0” 200 9883 “https://10.207.65.242:8443/testingdlrig” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0”
web_1 | 192.168.16.6 - - [18/Jun/2020:10:08:10 +0000] “POST /http-bind?room=testingdlrig HTTP/2.0” 200 13415 “https://meet.jitsi/testingdlrig” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36”
| 2020-06-18 10:08:11.840 INFO: [218] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.onFfmpegStateMachineStateChange() Ffmpeg capturer transitioning from state Starting up to Running
jibri_1 | 2020-06-18 10:08:11.841 INFO: [218] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Starting up to Running
jibri_1 | 2020-06-18 10:08:11.841 INFO: [218] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service started up successfully, sending on iq
jicofo_1 | Jicofo 2020-06-18 10:08:11.844 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: for testingdlrig@muc.meet.jitsi
jicofo_1 | Jicofo 2020-06-18 10:08:11.844 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095 has status on and failure reason null, current Jibri jid is jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095
jicofo_1 | Jicofo 2020-06-18 10:08:11.844 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri is no longer pending, cancelling pending timeout task
jicofo_1 | Jicofo 2020-06-18 10:08:11.845 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri session started, notifying owner
jicofo_1 | Jicofo 2020-06-18 10:08:11.845 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Got jibri status on and failure null
jicofo_1 | Jicofo 2020-06-18 10:08:11.845 INFO: [291] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Publishing new jibri-recording-status: in: testingdlrig@muc.meet.jitsi
2020-06-18 10:08:25.696 INFO: [100] org.jitsi.jibri.selenium.JibriSelenium.run() Jibri client receive bitrates: {}, all clients muted? false
jibri_1 | 2020-06-18 10:08:40.683 INFO: [100] org.jitsi.jibri.selenium.JibriSelenium.run() Jibri client receive bitrates: {audio={download=39, upload=22}, download=465, upload=22, video={download=174, upload=0}}, all clients muted? false
| 2020-06-18 10:08:42.122 FINE: [205] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/QOWIMcox,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL1FPV0lNY294ADJyalVTLTI4MzMA+52y5cRdFRlUodAT5c9HbQ==,type=set,]
jibri_1 | 2020-06-18 10:08:42.122 INFO: [205] org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq() Received JibriIq from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
jibri_1 | 2020-06-18 10:08:42.122 FINE: [205] org.jitsi.jibri.statsd.JibriStatsDClient.incrementCounter() Incrementing statsd counter: stop:recording
jibri_1 | 2020-06-18 10:08:42.123 INFO: [205] org.jitsi.jibri.JibriManager.stopService() Stopping the current service
jibri_1 | 2020-06-18 10:08:42.123 INFO: [205] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Stopping capturer
jibri_1 | 2020-06-18 10:08:42.123 INFO: [205] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() Stopping ffmpeg process
jibri_1 | 2020-06-18 10:08:42.169 INFO: [218] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.onFfmpegStateMachineStateChange() Ffmpeg capturer transitioning from state Running to Finished
jibri_1 | 2020-06-18 10:08:42.169 INFO: [218] org.jitsi.jibri.service.impl.FileRecordingJibriService.onServiceStateChange() File recording service transitioning from state Running to Finished
jibri_1 | 2020-06-18 10:08:42.169 INFO: [205] org.jitsi.jibri.util.JibriSubprocess.ffmpeg.stop() ffmpeg exited with value 255
jibri_1 | 2020-06-18 10:08:42.170 INFO: [218] org.jitsi.jibri.api.xmpp.XmppApi.invoke() Current service finished, sending off iq
jibri_1 | 2020-06-18 10:08:42.170 INFO: [205] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Quitting selenium
jicofo_1 | Jicofo 2020-06-18 10:08:42.172 INFO: [294] org.jitsi.jicofo.recording.jibri.JibriSession.log() Updating status from JIBRI: for testingdlrig@muc.meet.jitsi
jicofo_1 | Jicofo 2020-06-18 10:08:42.172 INFO: [294] org.jitsi.jicofo.recording.jibri.JibriSession.log() Got Jibri status update: Jibri jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095 has status off and failure reason null, current Jibri jid is jibribrewery@internal-muc.meet.jitsi/jibri-instanse-564421095
jicofo_1 | Jicofo 2020-06-18 10:08:42.172 INFO: [294] org.jitsi.jicofo.recording.jibri.JibriSession.log() Jibri session ended cleanly, notifying owner and cleaning up session
jicofo_1 | Jicofo 2020-06-18 10:08:42.172 INFO: [294] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Got jibri status off and failure null
jicofo_1 | Jicofo 2020-06-18 10:08:42.172 INFO: [294] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Publishing new jibri-recording-status: in: testingdlrig@muc.meet.jits
jibri_1 | 2020-06-18 10:08:42.403 INFO: [205] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Quitting chrome driver
web_1 | 192.168.16.6 - - [18/Jun/2020:10:08:42 +0000] “POST /http-bind?room=testingdlrig HTTP/2.0” 499 0 “https://meet.jitsi/testingdlrig” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36”
jibri_1 | 2020-06-18 10:08:42.475 INFO: [205] org.jitsi.jibri.selenium.JibriSelenium.leaveCallAndQuitBrowser() Chrome driver quit
jibri_1 | 2020-06-18 10:08:42.475 INFO: [205] org.jitsi.jibri.service.impl.FileRecordingJibriService.stop() Finalizing the recording
jibri_1 | 2020-06-18 10:08:42.476 SEVERE: [205] org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize() Failed to run finalize script: java.io.IOException: Cannot run program “/home/dlrig/Workspace/jitsi/finalize.sh”: error=2, No such file or directory with stack:
jibri_1 | java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
jibri_1 | org.jitsi.jibri.util.ProcessWrapper.start(ProcessWrapper.kt:87)
jibri_1 | org.jitsi.jibri.service.impl.FileRecordingJibriService.finalize(FileRecordingJibriService.kt:205)
jibri_1 | org.jitsi.jibri.service.impl.FileRecordingJibriService.stop(FileRecordingJibriService.kt:190)
jibri_1 | org.jitsi.jibri.JibriManager.stopService(JibriManager.kt:254)
jibri_1 | org.jitsi.jibri.api.xmpp.XmppApi.handleStopJibriIq(XmppApi.kt:256)
jibri_1 | org.jitsi.jibri.api.xmpp.XmppApi.handleJibriIq(XmppApi.kt:163)
jibri_1 | org.jitsi.jibri.api.xmpp.XmppApi.handleIq(XmppApi.kt:147)
jibri_1 | org.jitsi.xmpp.mucclient.MucClient.handleIq(MucClient.java:446)
jibri_1 | org.jitsi.xmpp.mucclient.MucClient.access$500(MucClient.java:47)
jibri_1 | org.jitsi.xmpp.mucclient.MucClient$2.handleIQRequest(MucClient.java:412)
jibri_1 | org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1188)
jibri_1 | java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
jibri_1 | java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
jibri_1 | java.lang.Thread.run(Thread.java:748)
jibri_1 |
jibri_1 | 2020-06-18 10:08:42.476 INFO: [205] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: BUSY -> IDLE
jibri_1 | 2020-06-18 10:08:42.476 INFO: [205] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
jibri_1 | 2020-06-18 10:08:42.476 INFO: [205] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@9013591
jibri_1 | 2020-06-18 10:08:42.477 FINE: [205] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@7eabaca6
jibri_1 | 2020-06-18 10:08:42.477 INFO: [218] org.jitsi.jibri.JibriManager.stopService() No service active, ignoring stop
Blockquote

I can confirm that I am using java 8

I also see an error that the finalize.sh script is not found? Is that the issue why I don’t see any recording inside /path/to/recordings because it seems that ffmpeg is working and the data is downloaded and saved at the right location.

I am slo getting these STUN errors but this doesn’t effect my Jitsi installation even with multiple participants. I am using IP rather than domain so maybe that’s why STUN is not required for me

Blockquote
jvb_1 | java.lang.Exception: Address discovery through STUN failed
jvb_1 | at org.jitsi.videobridge.health.Health.performCheck(Health.java:187)
jvb_1 | at org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144)
jvb_1 | at org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216)
jvb_1 | at org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292)
jvb_1 | at org.jitsi.utils.concurrent.RecurringRunnableExecutor.access$000(RecurringRunnableExecutor.java:36)
jvb_1 | at org.jitsi.utils.concurrent.RecurringRunnableExecutor$1.run(RecurringRunnableExecutor.java:328)
Blockquote

Did you check the /home/dlrig/Workspace/jitsi/recordings/jaaskkylycgtyrgo folder. The video should be there.

There is no folder inside recordings… its empty

Could you check the ffmpeg log?

Can this be related to Jibri user permission to that folder? Write now dlrig is the user that has read-write-execute permission to that directory.

The Jibri user must be the owner of /home/dlrig/Workspace/jitsi/recordings/

Which user?

XMPP recorder user for Jibri client connections

JIBRI_RECORDER_USER=recorder

XMPP user for Jibri client connections

JIBRI_XMPP_USER=jibri

you mean JIBRI_RECORDER_USER?

The user which run the ffmpeg process. Normally this is a Linux user, jibri
But the Docker installation may use a different user, I don’t know the Docker behaviour

Okay… Thanks. But that user must be available inside docker (since I am running docker version), and the recording folder is on host. How do I do this? (Sorry for the dumb question , I am new to docker )

Jibri can store the video somewhere in the container. If there is a mountpoint shared by the host and the container, it can put the video here too then you can access it from the host.

1 Like

Thanks,… its working. I can see my recording inside the docker container and I have mounted it onto the host.

1 Like