Higher audio quality

ebfa142d384466fefc7cd224cdca50df9cfe40c7 is the git commit my server is running with. As far as I know none of the settings require that specific commit (because they are all client-side settings) and I just added the information so people with more knowledge than I have can make an informed decision if what I wrote can be true.

If you are running Jitsi Meet on one of your own servers with docker-jitsi-meet from https://github.com/jitsi/docker-jitsi-meet, you will have a directory under ~/.jitsi-meet-cfg/web/ with a file called config.js. This is the client-side configuration that will be downloaded by the web client AND by all the apps. Within this file, the options I wrote above are listed right at the end (without explanation). So if you just uncomment them and change them to true, the changes should be applied to all people reloading their browsers.

The settings you disable with a “true” here are all meant to improve sound quality, so it is counter intuitive to disable them with a “true”. Nonetheless, I think I noticed an improvement, maybe just because of better client performance. They seem to correspond to features available in webkit/chrome/chromium, so here is my best guess at what they do:

disableAP: true, // disable ??
disableAEC: true, // disable echo suppression and cancellation
disableNS: true, // disable noise suppression
disableAGC: true, // disable automatic gain control
disableHPF: true, // disable high pass filter??? (no lower-than-speech sounds)
stereo: true, // stereo sound

I’ve since re-enabled AEC (via writing “false” after the colon) without noticing a loss of quality. Maybe I was just imagining things.

Please remember that I’m very new to Jitsi and everything I say could be very wrong :slight_smile:

1 Like

I’m trying to use Jitsi for online music lessons. If I’m understanding this thread correctly, the settings are either in the public Jitsi server URL, or in a config.js file if you host your own. Is that correct?

Yes @TheDaveAbides :slight_smile:

we start to use Jitsi-Meet on our own server. We also plan to use music in the background (share desktop audio) plus microphone announcements (yoga + meditation).
Does anyone know if these settings:
e.g. disableNS: true, // disable noise suppression
apply to Mic and Desktop Audio? or only to the microphone?

I would like to describe my question in more detail:
I use a microphone and music that I can either play directly in the computer or send together with the microphone via a mixing console (Zoom R 16 audio interface) via the USB connection to the computer.
In Jitsi there is the possibility to share the desktop + audio. Does it make sense to do that? Or is it better to mix the music with the speech in the mixer and then transfer it as microphone sound in chats.

@iskanje I would be interested to know how you do that. Do you use a microphone and the music at the same time? E.g. for instructions while dancing?

Thanks for this forum!

The settings you disable with a “true” here are all meant to improve sound quality

Yes and No.

Yes, they are for a standard conference with speakers. Or, more precise: mainly, these improve speech quality in a sense of “understanding language”.

For Musician purposes, most of those settings are counter-productive. For example, if someone plays a decrescendo with activated AGC - the decrescendo can be completely eliminated.

It would be a good Idea to allow the Moderator of a conference to set defaults for most of these switches. He will know if he is doing some Insurance Sales Meeting or a Clarinet Lesson and can decide. Of course, it would be even better if he could switch “on the fly” since even in a Clarinet Lesson there may be some talking time and som play time.

I want to add:

To get really improvements for speaker Conferences, using some sophisticated massive Dynamics (Multiband Noise Gate, Compressor. De-Esser) for that may be a good Idea. That could even eliminate loudness differences when Speakers are moving around (and thus, change their audio level which is of course massively influenced by the distance to the Microphone)

For Musician Purposes, some kind of Compander Logic to reduce needed Bandwidth could be a good Idea, too. But that is difficult to say since Musicians also definitely do want lowest possible latencies…


In this post, it says that the bitrate is set to 70 kbps by WebRTC (don’t know what that is…)
Seems to be accurate according to the participant info window on Jitsi main screen.

1 Like

@damencho Can you point me to the relevant code so I can change the defaults on server? That way I don’t need to always use the URL params. I found the Jitsi Meet API, but it’s not quite what I’m looking for (Doesn’t have the above mentioned audio options accessible there). Thanks!

These are all config.js settings: https://github.com/jitsi/jitsi-meet/blob/master/config.js#L516


Thanks so much, I need to do some more testing to see what makes highest impact on audio quality. Much appreciated.

So far the largest change I’ve seen so far is the mic quality, which is something that’s not going to be an easy fix. Going from my headset on desktop to my laptop mic in backyard is insanely different.

I have been experimenting a bit more. My private server has been on commit d44230e2b121e72542a60b6dfbce9b07e84ed706 for a few days now and I’ve removed all the “disable*” options but kept “stereo: true”. We’ve had about ten conferences since then.

My current theory is that for normal conferences (eg. speaking), the stereo: true setting was the only option that actually improved the sound quality. Considering that it seems to double the WebRTC-Opus-Bitrate to 70kbit that’s not a surprise, although I’m not really sure how Opus works. Technically it could just be sending 2x35kbit with basically the same input encoded twice and no quality improvement per channel. In any case, that might help if some packets go missing because more packets are sent out in total, and we have a few people that rely on wireless- and bad rural “broadband” connections.

Subjectively, adding the “disable*”-options did not really make it sound worse and we didn’t have much trouble with them. That said, I think leaving the echo cancellation enabled does help when people do not use a headset, and since I also couldn’t tell a difference anymore with the other features, they are all not-disabled (i.e. not commented in/not set to true) anymore. As I’ve said before, I’ve kept stereo: true, however.

If anyone has further information to the above, I’d really love to hear it. I’m currently looking for an alternative to Zoom as I am sending live music into the meeting and need a higher audio bitrate. I checked out the options in config.js, but there doesn’t appear to be a setting for audio bitrate.


For live music I disable audio processing and lipsync: /etc/jitsi/meet/*-config.js

disableAP: true,
enableLipSync: false,

Disable AP, ALL audio processing,makes the audio clear but naturally gives issues with ringing if you have mic enabled and not using headphones.

You can choose to gradually disable some audio processing at the end of the config, what the options do is described in the sourcecode:

You can increase the bitrate slightly by enable stereo in the /etc/jitsi/meet/*-config.js
stereo: true,
Some users have archived higher bitrate by hacking into the webrtc SDP handshake that setup the opus audio codec.


Thanks for your reply. Disabling audio processing is one step, however what I really need is to increase the audio bitrate. It sounds like that isn’t possible without rolling my own server and hacking it a little?

HI THere

I´m trying to teach piano with the help of jitsi. So I have the same problem. I´m longing for higher bitrate for the opus Code, and Latency is a big issue.

The normal setting is a 1 Teacher 1 student situation. So normally jitsi would switch to p2p. Does this affect the arguments given in the URL?
When I start a konference with
https://meet.ffrn.de/franktest#config.stereo=true&config.disableAP=true&config.disableAEC=true&config.disableNS=true&config.disableAGC=true&config.disableHPF=true does this work for my student, when he just types meet.ffrn.de/franktest ?

For the music teachers here, it seems like the following extra URL parameters are the ones that should help with 1:1 music lessons using Jitsi. Just tested with my music teacher wife, and she gave it a thumbs up over Zoom, etc.


Note that you can, and should, change “YourMusicTestRoom” in the URL to something unique, and then send the link to your student and open the same one yourself (remember to use Chrome.) This disables the parts of Jitsi’s audio processing that prevent you from hearing one another’s instruments. You will both definitely want to be using earbuds or headphones (but not noise cancelling ones, as they will prevent you from hearing yourself.) But perhaps there are more / better settings to be tuned?

Seems like it would be low hanging fruit to make a lib Jitsi meet based web app customized for music teachers.

1 Like

Thanks for figuring this out. I think there should just be a button you can enable in the settings “Music Mode” or something like that. And once enabled, the room shifts to the settings you provided. This setting could be made visible/invisible via the config.json or the music mode could be set on by default via the same settings file.

I’m a dance teacher, and we do need to be able to use jitsi in music mode, but we can’t use headphones or earbuds (cause of the delay it creates and movement and audio won’t be synced anymore if we use them). Is there a solution for that yet?


it would be great to have the controls into GUI interface as mm does.


How do you know that this has been enabled? I have added the settings to the correct area but not sure if it has helped. Is there a way of testing the settings?

You can see that stereo has been enabled by making a voice only call and looking at the upload bandwidth. It should now be 74kbit instead of the previous ~36kbit).

I don’t really remember if I checked the other options, but there’s about:webrtc / chrome://webrtc-internals in current browsers that can list all kinds of information about active WebRTC streams. Maybe I’ve seen it there. The options above correspond to various client side features within Chrome/Chromium and just enable/disable them, I think.

I am going to try this on my self hosted web version. Does it help to improve performance for general meetings having 35 users.?

1 Like