Search code examples
flashred5flash-media-serverlive-streamingwowza

red5 vs wowza vs FMS


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?


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.