Is it possible to only record audio?

Hi,

I have Jitsi Meet and Jibri setup and working. I was wondering if there is a way to only record the audio during a meeting while still using video.

Thanks,

Recording of audio can be done on the client side using LocalRecording.

To enable it, first edit the
/etc/jitsi/meet/*-config.js

localRecording: {
// Enables local recording.
// Additionally, 'localrecording' (all lowercase) needs to be added to
// TOOLBAR_BUTTONS in interface_config.js for the Local Recording
// button to show up on the toolbar.
     enabled: true,
// The recording format, can be one of 'ogg', 'flac' or 'wav'.
     format: 'flac'
},

and then change the
/usr/share/jitsi-meet/interface_config.js
and add the ‘localrecording’, to TOOLBAR_BUTTONS like this: ( i have disabled a lot of buttons, adjust as you like)

TOOLBAR_BUTTONS: [
    'camera',
    'fullscreen',
    'localrecording',
    'tileview', 'profile', 'chat',
    'videoquality', 'settings',
    'shortcuts',
    'help' 
],

When using localRecording is activated an audio only soundfile is created and saved by the webbrowser.

Hi, thanks for the reply.

I have actually already implemented this, but it looks like it is only recording audio on my end. So I don’t get anything anyone else says.

Is this default behaviour?

Thanks,

Yes, the rest of the recordings happen on the other people’s computers and they need to send you the files so you can combine them.
Vary useful feature for high quality recordings used for example for podcasts.

Hm that’s interesting. Thanks for the quick reply.
The moderator can record, but how do you allow other attendees to record on there end? Do they need moderator privileges somewhow?

Bonus question: Is there a way to leverage Jibri and instruct it to only record audio?

It is possible to setup a “jibri” server and tweak “jibri” to only record audio.
This can be done changing the parameters jibri uses to start ffmpeg. … or by adding a post recording step that remove the video from the audio & video recording.
ffmpeg is the tool that do the actual recording and ffmpeg can create audio only recordings.

jibri work as an invisible witness to the conference and can record all parties.

Thanks xranby,

Because of potential legal constraint on my project, the attendee needs to give permission to record the video, and if he doesn’t, then the post processing is not an option because it still means we store the video somewhere even if temporarily.

The expected end result with Jibri would be the ability to chose Video recording, or Audio only recording.

So the first step would be to update Jibri to only record audio. Are you able to guide me a bit here? I don’t do Kotlin :blush:
Would I have to update one of those files?:


And then how would I rebuild from sources?

Then what would be the best way to achieve my feature?

  1. Get Jibri to record video+audio or audio only based on a parameter, or a separate command?
  2. Have 1 pool of Jibris, and 1 pool of Jibris-audio-only, and select one or the other depending on the selection in the UI?
  3. Something else?

Any guidance would be much appreciated :slight_smile:

I will not be able to give you the final solution, however i can give the following instructions to a developer that can complete the task:

In your use-case the operator push the recording button in the gui after consent is given.

when the recording buttion is activated
jitsi jicofo server ask jitsi jibri server to start recording.
the users will hear a message that recording has started.
jibri then starts the ffmpeg command to start and store the recording on the jibri server.


If it is ok that both video and audio are recorded after the consent is given then you can use the precompiled jibri as is and remove the video after the recording session is complete.

the jibri configuration contains a line where you can define a script that are executed after the recording has stopped

"finalize_recording_script_path": "/finalize_recording.sh",

you put into this finalize_recording.sh all commands required to
process the recording to remove the video track
and move the recording to the final destination

you can use ffmpeg to convert and remove the video track
https://ffmpeg.org/ffmpeg.html

all this are performed after the user have given consent.


If you never want to store the video part of the recording for legal reasons then you need to modify and recompile jibri in order to tell ffmpeg to only store audio:

You are on the right track, in order to create an audio only recording you remove all video related options from ffmpeg, remove lines 24 - 29 and 34 - 36 from the linux section of Commands.kt . https://github.com/jitsi/jibri/blob/master/src/main/kotlin/org/jitsi/jibri/capture/ffmpeg/Commands.kt#L24-L29

You need to look at the ffmpeg manual to know what each command line do, use this as a reference:
https://ffmpeg.org/ffmpeg.html

How to rebuild jibri is covered in the jibri github development guide, you need the maven “mvn” command and that command will build jibri: https://github.com/jitsi/jibri/blob/master/doc/development.md

the built jibri jar then needs to be copied into your server.


2 Likes

Hi xranby,

That’s great feedback, thanks for that!
I’ll see if I can sort it out.

Hey Chris, did you manage to find the right ffmpeg options?

Hi Felix, no, I haven’t had a chance to look into it. This project is in standby at the moment, but I might come back to it in a few weeks. If you make any progress on that, I would still be very interested.

Thanks,