Minimum bandwidth settings?

How to do...

Minimum bandwidth settings?

Postby Thurston » Fri Jan 29, 2016 10:28 am

I've read the wiki, and searched the forums and FAQ, but can't find my question addressed completely - probably because I'm seeking the answer to a stupid question.

Basically, I followed the setup instructions and Mumble is working perfectly, but, I'm now needing to hobble it. I've got a home Ubuntu server running Minecraft and Murmur servers for my kids to play/ chat with their cousins. Everything is working PERFECTLY - the kids are playing MC with no lag, Mumble sounds like everyone is sitting next to each other and I'm patting myself on the back and fielding love from all directions.

BUT ... the cousins don't have an unlimited internet account and there are problems with the amount of bandwidth that the current setup is consuming. Unless I can lower it, it will dramatically reduce the amount of time the kids can play together - which was the whole point of setting up the server. Yes, the obvious solution is for the cousins to increase their internet bandwidth but their parents don't see online gaming as a universal human right.

So my question is basically what preferences in Mumble will affect the bandwidth that they are downloading from the server? The good news is that I have full control over ALL computers connecting to Murmur and can adjust the server as required. There are no unknown computers, that I cannot control, connecting to the server.

Before anyone shouts at me for not reading the instructions, I have read the wiki and know that reducing the "Compression quality" will reduce bandwidth. I'm also pretty sure that lowering the "Audio per packet" (e.g. 10ms rather than 40ms) will also reduce bandwidth. I also understand that "Positional Information" should be turned off.

I also think I'm correct that bandwidth increases with extra people on the channel. Three people on the channel mean that all of them need to download twice the bandwidth compared with just two people. Please let me know if this is not correct - that is, the number of people talking on a channel doesn't affect a client's download bandwidth.

Finally, I think I'm correct that the server's bandwidth settings have nothing to do with the bandwidth used by a client. Again, please correct me if I'm wrong.

So the question is is there anything else that I can adjust to decrease a user's bandwidth?

For example, does "Push to talk" use less bandwidth than "Voice Activity"? Does the mumble client only download when noise is transmitted or is it downloading the same amount per second even if there's silence on the channel? Does getting rid of coughs, and siblings shouting in the background, reduce bandwidth?

Related to this - if someone is on the channel but muted, or simply not talking, does this result in higher bandwidth to the cousin's computer compared with that person not being connected to the channel?

Does the settings of our Mumble client have any effect on the downloads to the cousin's computer? If we are transmitting the highest quality audio, with positional information, does that mean that the cousin's computer is forced to download it?

I guess the basic question is what settings on the server, and all connected computers, guarantee the lowest bandwidth to a Mumble client? Thanks in advance for any clarity that anyone can provide.

Regards,
Thurston

P.S. Yes, I completely understand that the lowest settings will reduce quality and may result in incomprehensible speech. I just want to know where to start so I can then tweak it to work with the lowest acceptable bandwidth.
Thurston
 
Posts: 2
Joined: Fri Jan 29, 2016 3:02 am

Re: Minimum bandwidth settings?

Postby fwaggle » Sat Jan 30, 2016 5:10 am

Thurston wrote:I have read the wiki and know that reducing the "Compression quality" will reduce bandwidth.


Correct, the dialog will tell you approximately how much bandwidth each audio stream (that's one for every person who is talking) will use. Each talker uses the 1 x the size of their bitstream upstream, and each person who hears it requires 1 x the speakers bitstream downstream. So if there's three kids, and two are talking, it's 2 bitstreams out to the server, and 2x2=4 bitstreams downstream (your own audio isn't transmitted back to your client unless you have server loopback enabled, AFAIR).

I'm also pretty sure that lowering the "Audio per packet" (e.g. 10ms rather than 40ms) will also reduce bandwidth.


I think you have that backwards. Every packet we send has a header in it that's a fixed size. 10ms audio per packet will send four times as many headers as a 40ms packet. Dragging the quality slider all the way down and looking at the actual bitrates Mumble shows, it looks like 10ms audio-per-packet at 8kbps Speex is double the bandwidth of 60ms APP at 8kbps Speex. I'm not sure whether the header including the positional audio is fixed or whether turning it off does save bandwidth, but it's probably negligible anyway - I think it's something like six four-byte floats, but don't quote me on that.

I also think I'm correct that bandwidth increases with extra people on the channel. Three people on the channel mean that all of them need to download twice the bandwidth compared with just two people. Please let me know if this is not correct - that is, the number of people talking on a channel doesn't affect a client's download bandwidth.


I'm not sure I understand you correctly... every client that can hear (ie, isn't deafened) downloads the audio stream of every talker they can hear. So 3 clients will increase the downstream bandwidth by 50% over two clients, assuming they're all in the same channel and it's a fourth person talking. Two people talking at the same time doubles the bandwidth to all listening clients.

Finally, I think I'm correct that the server's bandwidth settings have nothing to do with the bandwidth used by a client. Again, please correct me if I'm wrong.


You're wrong on this point. The bandwidth setting on the server enforces the settings the client will use. When the client connects to the server, the server sends these settings to the client, and the client will use the lesser of the two. If the client is set lower than the server, it uses it's own settings, if it's set higher than the server, it throttles back to the server's enforced bitrate.

For example, does "Push to talk" use less bandwidth than "Voice Activity"?


I'm pretty sure they're all equal - the client is either transmitting audio or it's not, how it's triggered to do so doesn't affect bandwidth. However, if the voice activation isn't set up correctly, or they're prone to babbling, you'll probably find PTT reduces bandwidth usage simply by virtue of not transmitting as often.

Does the mumble client only download when noise is transmitted or is it downloading the same amount per second even if there's silence on the channel? Does getting rid of coughs, and siblings shouting in the background, reduce bandwidth?


No, we use constant bitrate, AFAIR, so if there's red-lips lighting up that's some amount of kb/s audio stream going to every client that's listening, whether it's silence, coughing, talking, or Tchaikovsky's 1812 Overture.

Related to this - if someone is on the channel but muted, or simply not talking, does this result in higher bandwidth to the cousin's computer compared with that person not being connected to the channel?


If they're muted, they're not transmitting - but unless they're deafened, they'll be downloading when someone else is talking, which is probably not what you want.

Does the settings of our Mumble client have any effect on the downloads to the cousin's computer? If we are transmitting the highest quality audio, with positional information, does that mean that the cousin's computer is forced to download it?


Yes. The server doesn't re-encode, the quality settings specifically set only what your client transmits at. Subject to lowering the server's bandwidth which forces your client to send lower-bitrate audio, your settings absolutely matter.

I guess the basic question is what settings on the server, and all connected computers, guarantee the lowest bandwidth to a Mumble client? Thanks in advance for any clarity that anyone can provide.


If it's a server that's only used for these cousins, set as low a bandwidth on the server as you can tolerate and call it a day. You probably want to set all clients to 60ms audio-per-packet, and 8kbps Speex. Setting the server bandwidth to something like 25kbps will probably do what you want, but it won't make the packets hold more audio (so you can't control the header sizes from the server and have to individually control that).

Also if their upstream can support it and there's more cousins than there are people outside the house, moving the server locally to one of their machines might save a bit of bandwidth. It might also not be worth the hassle, running a server from home usually sucks.

P.S. Yes, I completely understand that the lowest settings will reduce quality and may result in incomprehensible speech. I just want to know where to start so I can then tweak it to work with the lowest acceptable bandwidth.


You might actually be surprised at the quality even on the lowest settings. It sounds terrible, sure, but it's almost certainly completely comprehensible and likely still sounds better than some older VOIP systems.
Full disclosure: I run a semi-commercial Mumble host, and my opinions do not reflect the opinions of the Mumble project.
Avatar is stolen from here
User avatar
fwaggle
Team member
Team member
 
Posts: 199
Joined: Tue Oct 06, 2009 10:40 pm
Location: Australia

Re: Minimum bandwidth settings?

Postby Thurston » Sun Jan 31, 2016 11:20 pm

Many thanks fwaggle. This was exactly the info I needed. We've now modified the computers, and run a bandwidth monitor on the cousins computers, and been able to reduce their internet usage significantly.

I think you have that backwards.

You are completely correct. Higher "Audio per packet" = lower bandwidth.

I'm not sure I understand you correctly...

My maths was that if two people are talking to each other on a channel then each is downloading 1 audio stream from the other person. When 3 people are talking then each person is downloading 2 audio streams - or 100% more. I had assumed that you don't download your own audio stream.

If they're muted, they're not transmitting - but unless they're deafened, they'll be downloading when someone else is talking, which is probably not what you want.

This was the most important point for me, but, I obviously didn't explain my reasons clearly enough. I've got younger kids who aren't able to play minecraft but they enjoy being included by watching their older brother play and listening to the chatter on the headphones. I can connect them to the mumble server using a tablet or phone and have them listening on mute. It's fine that they are downloading the audio streams, because they are on my side of the server. I just wanted to check that their inclusion on the channel doesn't result in the cousins having to download an additional audio stream of their muted silence.

You might actually be surprised at the quality even on the lowest settings.

You are correct. The lowest settings are perfectly functional. I mean there is certainly a difference compared to the standard settings but everyone is still clear and understandable. I've got all PCs on the absolute minimum settings and it's working fine.

It might also not be worth the hassle, running a server from home usually sucks.

I should have been clearer here as well. The home server was created, and is used, for other purposes. When I said the entire purpose of the server was for minecraft I meant that the only reason I installed minecraft and murmur servers onto my server was for my kids and the cousins to play together - as opposed to hosting a MC server for the wider community.

And setting up the server was a breeze. I setup both Minecraft and Murmur simply by following basic instructions, without a single hiccup throughout the entire process. The only time I ran into problems was when these complaints about bandwidth were raised. I'm sure that hosting large servers for multiplayer gaming would be a hassle, but, for anyone wanting to host a server for a few friends to play together I'd suggest it's pretty simple and very satisfying.

Anyway, thanks again for the assistance. It's very appreciated!!
Thurston
 
Posts: 2
Joined: Fri Jan 29, 2016 3:02 am

Re: Minimum bandwidth settings?

Postby bbosen » Sat Jan 07, 2017 10:05 pm

Wow! What a great post and wonderful set of responses. Thanks for communicating so clearly, using plain English and well-known terms. This exchange answered a lot of questions that had been mystifying me. Great quality stuff! 8-)
bbosen
 
Posts: 4
Joined: Sat Jan 07, 2017 9:34 pm


Return to Usage

Who is online

Users browsing this forum: No registered users and 0 guests

cron