Changing opus bitrate on the fly? / questions regarding libjitsi/lib-jitsi-meet

Dear all,

I have a question about jitsi’s audio processing and possible options to play around with it on the fly.
What I would like to do is to add controls to my UI built with lib-jitsi-meet that would allow a user to manipulate the opus bitrate of the mic signal.
I did a bit of searching and stumbled upon this PR
I was wondering if there are any updates on that?
Also just found out about libjitsi. Is it possible to use this in combination with lib-jitsi-meet?

Otherwhise, would it be possible to completely switch off opus compression on the server (im self-hosting) and then have a seperate deployment of opus, connect it to lib-jitsi-meet and then send the produced signal to the remote caller? → is that what libjitsi is for?

The server doesn’t touch the audio, it just routes it. Bitrate can be selected in the client with the audioQuality config options, but this cannot change at runtime… or we haven’t tested it rather.

oh, okay! so all the processing happens on the client side anyways?

thank you for your fast reply!!

Yep, that is correct. The JVB is an SFU just re-routing the packets.

libjitsi is an old library it was used in the old bridge and is no longer used there.

okay thank you!! I’ll dig deeper into this then, will report back if anything comes up :slight_smile:

okay one more question: I found some settings in /etc/jitsi/meet/my.domain.com-config.js but I was wondering:
If I set disableAP = true, will this also disable compression?

Not sure what do you mean by disabling compression, but this disables audio processing before audio is encoded and sent from the client.

ah okay so I think the answer is no because I basically meant if it has anything to do with the opus encoding (but i realize now my question doesnt entirely make sense hehe sorry!)

also, does this:

audioQuality: {
stereo: false,
opusMaxAverageBitrate: 510000, // Value to fit the 6000 to 510000 range.
},

has the same effect as disableAP = true?

and which would be the preferred way?

Sort of.

Enabling stereo requires disabling all audio processing, so setting stereo to true will implicitly set disableAP to true.

1 Like

ah i see! thanks!

i see here that passing config.stereo with the meeting url is being deprecated (which I am not trying to do, I’d set the option in the config.js) and instead
config.audioQuality.stereo should be used.

does this have any influence on what I should set in config.js?

Well, yes, You should use the latter form.

thanks for sticking with me! one last question just to check (sorry):

so would this be the correct way to do it?

audioQuality: {
stereo: true,
disableAP: true,
opusMaxAverageBitrate: 510000, // Value to fit the 6000 to 510000 range.
},

if i want stereo and no audio processing.

Setting stereo to true will automatically disable audio processing, so disableAP is not needed.

ah right!! sorry for this. and thank you so much!