AVChat 3 feature highlight: Dynamic Bandwidth Usage Reduction
AVChat 3 , as all the other flash video chats out there, uses a media server (like Red5 and FMIS) to stream audio and video between users. The audio and video data travels from the broadcaster user to the media server and from there to the receiver user.
Even tough there is no receiver (if there is no one watching) the stream still travels from the broadcaster to the media server, thus consuming bandwidth on the media server and on the broadcaster’s Internet connection.
This is where AVChat 3’s “Dynamic Bandwidth Usage Reduction” kicks in. When this feature is activated (it is by default) the broadcaster streams audio and video to the media server ONLY WHEN IT HAS VIEWERS.
Here is bandwidth usage graph explaining how this feature works:
This feature will save a lot of bandwidth over time both on your media server ( or media server hosting account) and on your users Internet connections.
To disable it (now why would you want to do that? 🙂 ) edit avc_setting.xxx and search for the automaticallyReduceBandwidthUsage variable. Set it to 0 to disable it.
11 thoughts on “AVChat 3 feature highlight: Dynamic Bandwidth Usage Reduction”
I design a site similar to facebook,
I want to have each user has its own chat(one to one) .
and Each user can make Group room .
My site will be hosted on this server
I have a question :
1-Is it possible to implement the idea for each user on my site ?
2-Do you offer service media server ?
I hope that you send me the total cost with hosting media server
Clarification: does the chat client *not even open a transmit stream* when there’re no viewers?
I’m told that the number of talkers is the load limiting factor, horsepower wise, on the media server, by 2 or 3 orders of magnitude more than the number of listeners to a single talker: I assume that this is independent of whether the channel has content or is idle.
So: does ABR actually open and close the stream channel to the MS dynamically? Or does it open it, and just not send any *traffic* down it. (Clearly, I’d prefer the former; I plan to scale *hard*. 🙂
>it open it, and just not send any *traffic* down it
I have just looked at the code and I can confirm that this is what is happenning. The Stream object is created but audio/video data is only published on it when there is a viewer for that stream.
Hmmm.. do you have any insights as to how much of the load on the media server comes from the mere *existence* of that incoming streaming channel being set up, and how much of it comes from the actual video?
On a related question: since we’re envisioning having to do our own load balancing, how much trouble would it be (read: how much would it cost us 🙂 to modify that particular section of code so the channel isn’t actually opened until there are viewers… and so that we can specify *to which server it should point* at that time?
We’re licensed for chat, conference, and HDFVR, though I don’t think the question really applies to the latter…
I am not sure that the optimization you want has as much effect as you think. There are many other optimizations that can be made until we reach that level. It might also be that adding server would be cheaper than researching, modifying the code, testing it across al our scenarios and deply it.
If your website is absolutely dying and can not move forward because of that of that particular feature we can help you with it.
The load balancing discussion is a big discussion. It depends on the media server youre using, what you are trying to achieve, where are your users located, etc… , please email us more details.
Well, adding servers is precisely the scenario I’m trying to provide support for — there doesn’t seem to be a ‘formal’ clustering package for red5 (one that makes it look like One Big Server, no matter what’s inside) — so I forsee us having to do the load balancing ourselves… and that’s the pivot point: the opening of the stream.
We haven’t launched yet, but I can envision tens of thousands of talkers… if things go well, hundreds of thousands. Clearly, I will need to do some realtime load balancing. Possibly to media servers located in different places (and different places from the launching app server).
email sent to info@
Excuse me: “contact@”