Skip to main content
Participant
October 8, 2011
Question

FMS 2 way Live Streaming Feasibility, Load-balancing and Scalability

  • October 8, 2011
  • 1 reply
  • 1889 views

Hello,

I have following questions and your help to answer them would be very much appreciated.

Note: By 2 way I mean a video conferencing kind of application.

1. About Edge/Origin - Can edge-origin be used for 2 way live streaming, where in all users publish to the specific set

of origin srvers, and all users subscribe to live streams from the edges? What kind of delays would be introduced?

2. About Multipoint publishing - Is Multipoint better that Edge/Origin for two way live streaming? If yes, then in what

way (latency ???). If no, why?

3. About Edge/origin Vs Livestreamcast -  In our experiments, we noticed that unless the first client connects to a

particular edge,  the caching of a particular stream does not start. However in case of Livestreamcast the bootstrap for

the first stream to the intermediate and edge is initiated at the time of app start itself. Can you validate the truth of this

finding or is something wrong with our setup?

4. The Best way - Which of the above 4 configurations is best suited for 2 way live app? We are looking for a solution

that would have minimum delays and is also scalable.

5. Load Balancing - Currently we have a multi-origin setup without any edges. Both publishers and subscribers connect

to same origin server. Our video chat rooms are anywhere between 2 users to 100 users. This poses a problem of allocating

a particular origin server to a chat room, since we have no idea how many will turn up. So right now we take the worst

possible case (100 users for each chat room) and do static load balancing across the set of origin servers. We thus schedule

a chat room on a particular server considerign all 100 will have turn up and will use the maximum allowed bitrate while publishing.

Guess what - some times we are left with big holes on each server, when the users don't turn up. We are not able to use our

server resources effeciently. Do you have some suggestion/advise on how we should architect our app so that it can dynamically

and efficiently load balance itself

Best regards

This topic has been closed for replies.

1 reply

Nikhil_Kalyan
Participating Frequently
October 9, 2011

Hi,

Thanks for your interest in FMS.

Edge-Origin setup can be used effectively for video conferencing applications. The best example is the Adobe Connect itself, a complete video conferencing solution built on FMS. It is real-live, and hence the delay is minimal (if i have to take a value, it must be around few hundred milliseconds, but I can confirm if you want it to be exact).

Multipoint publishing is typically used for a different purpose, to publish from a single source to a broad second level sources from FMS. Though it can still be used technically, the above method of using edge-origin is widely preferred. This selection is not based on delay parameters but on other configs, as an edge-origin setup gives two virtual config environments

Edge origin is a configuration setup and livestreamcast is a fully ready application and it is setup to be launched on appStart. And hence it serves the purpose of pre-caching. It can be setup in any edge-origin case too, by autoloading the application (your application) without the client first connecting. Essentially, we just need to replicate what's done in the livestreamcast app.

Livestreamcast app is one of the many ways to do the video conferencing solution. For a customized app, you can use the edge-origin config and start  building upon it. Livestreamcast can just work for you too.

Participant
October 10, 2011

Hello Nikhil,

Thanks a lot for your quick reply. Really appreciate it.

I am pleased to see your affirmative reply regarding edge-origin for 2 way live scenarios. Unfortunately this is not the view of

many of the "so called" experts that we have talked to so far. Don't know why! Most of the people I have talked to seem to feel

that Edge-origin is not for 2-way live streaming.

Anyway, I have some more questions for you based on what you have said.

You mentioned about Adobe connect being based on edge-origin, and it having millisecond range delay - great to know that.

We have purchased few licenses of FMIS and FMES. We did some tests of Edge-origin on LAN and we found the additional

delay of approx 0.5 seconds after changing from "origin only" to "edge origin" configuration. In the former case, both publishing

and recieving were happening from same origin server whereas in the latter the publishing was happening on origin and

recieving on edge. Any idea why our delays are far higher than what you have mentioned from Adobe Connect? I am guessing

that since we are using the default settings (of various xml files), there is something that needs to be fine tuned. But I don't

know what needs to be finetuned. Can you please provide some insight into this?

At one point in the reply you have mentioned "This selection is not based on delay parameters but on other configs,

as an edge-origin setup gives two virtual config environments" - I am sorry but it really went over my head. I didn't quite

understand this. Can you explain?

How do we autoload the application without client first connecting (in the edge origin)?

Is Connect based on Livestreamcast? In addition to Livestreamcast, what are the other ways that you talk about towards the

end of your reply?

Finally, how can I setup for a two way live conferencing using edge-origin so that scalability and load balancing are accounted for?

I need some details.

Thanks for your time and help.

Nikhil_Kalyan
Participating Frequently
October 11, 2011

Hi,

I can suggest few random items here:

For reducing the latency, you can edit/disable the queue that FMS uses for live streams. Go to the application.xml in conf directory and disable queue for live. This should considerably reduce the delay.

If there is any other setting that enables aggregate messages , disable that as well. You can try and disabling the queue on both edge and origin (just play around with them to get the optimal settings).

Increase the cache size. Though this is not required for live on the origin, you can play with these cache sizes on the edge server.

Edge has its own config, and Origin has its own config. So, both can be setup/configured in their own separate ways. Multipoint publish works on the same server (there is no edge in this case) and hence there are no two environments to have different configs.

For autoloading an application, in one of the xmls, there must be a tag LoadOnStartUp. I guess its in application.xml. Enable it.

Connect is not based on LiveStreamCast. Its a complete solution in itself based on FMS. You should definitely take a look at that. What I meant when I said other ways is that, livestreamcast is one of the applications that's been in use for a while. Any application(s) can be developed to work in that fashion and we need not take that as a starting point.

Thank you !