Question

I want to do a live video broadcast using flash.

Our target is to support up to 2000 users to watch the video at the same time.

If we don't consider bandwidth, which server (red5, wowza, FMS) can handle 2000 connections at the same time?

what would be the computer hardware requirement?

Or do we need to setup a small cluster to do it?

If we say, 1s div 2000 = 0.0005s = 0.5ms cpu time per connection. Is that reality?

Was it helpful?

Solution

I would not think in terms of ms but bandwith.

What will be the bandwith usage of one stream ? Let say 1000Kb/s, you'll need 2000x1000Kbs = 2.000.000 Kbps = 2000Mb/s = 2Gbs

If it is the same stream for everyone, one server can handle this physically (200MB/s). But it will be hard to find provider allowing you to use so much bandwidth.

Plus the setup and testing will use lot of resources. I advise you to rent a dedicated service for your event. Companies doing this have experience and infrastructure. You just need to send your stream to their relay.

Argh... I just saw the "If we don't consider bandwidth". Strange to not consider this as it is the main concern... Then I would advise to use several servers behind a load balancer. Spitting 2Gb/s and manage users connections may become hard, especially if you have an interruption and then all clients try to reconnect at the same moment. No one can tell you how many server you'll need without knowing more about your stream. - is there only one resolution ? - do you just relay encoded data as is or do you reenconde live ? - do you want to do dynamic quality ? - what is it's bitrate ? is it video or audio only ? 1 decent server will do the trick for audio only 4 servers should be enough to provide redundancy for video (1000kbs bitrate) Test CPU usage with few users, then some more, then more... trace the graph, requirement grows linearly.

My advice about external provider stay the same. Setting up an infrastructure like this is a full time job, it require experience and tests, it's not easy to test 2000 streaming connections. If you stay within the power of one server it's quite simple. But if you need a cluster, it's another story.

Provider could be : youtube live, akamaï, and lot others.

OTHER TIPS

As far as streaming servers go, I would use Wowza as it has the most robust feature-set.

Your load setup will depend entirely on the protocol you are serving up. If you are using HLS the HTTP chunks can be cached by any standard caching server or a CDN like akamai or cloudfront. If you are using a single connection based protocol like RTMP the number of supported streams will depend on your hardware limitations.

CDNs also offer streaming services that you can just point an encoder at if you don't want to bother with setting one up yourself. This can get quite costly though, depending on your provider.

A good option may be daily instances of Wowza on EC2 and then front it with amazon's cloudfront. This way you won't have to buy any hardware or secure any CDN contracts.

The Flash Media Server or (FMS) is one ideal solution to broadcast live videos over HTTP.

Red5 was developed and offered as an open-source version of Adobe FMS. However, Red5 got a very mild reception.

A Detailed Comparison between Wowza and Adobe Media Server http://www.webnethosting.net/wowza-media-servers-vs-adobe-flash-media-servers/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top