Server configuration and backend technology of sites like ustream.tv
-
14-07-2021 - |
Question
I am going to build a site like ustream.tv. The main use case is A user will create a live channel and any other user can view that channel. After doing some google search I found this is done using flash media server.
I thought If I could do some load testing I could find how much hardware resource I need. Also a stress testing session will show me the breaking point of my server. But the trial version supports few parallel rtmp connections. So the testing will not work here. So I was looking for configuration of servers that runs ustream.tv
. So I have these questions
- What type of server is used in live streaming sites? CPU, RAM?
- To balance the bandwidth does it use multiple NICs or any other technique?
- Do I really need Flash Media Server? or there are other alternatives?
La solution
You can find list of commercial and non-commercial media servers here
I was working with few media servers and i suggest you to take a look some of open source solutions like:
- Red5 - open source Java media server
- IceCast - open source solution as well
- FFServer - part of the Ffmpeg package ( open source solution as well )
- Wowza - non free Java media server
- CDN solution - CDN company (level3 for example) handle everything connected to media servers , you only need to do encoding. Price is aprox. 0.03€ per Mb
Except media servers you also need encoders that will encode and serve content to the media servers. Some of them are:
- Flash Media Live Encoder - it is free solution from Adobe
- ffmpeg - open source solution ( i have had lots of problems with it when i was trying to encode with it for live streaming )
- Media excel - commercial solution
Server
I can't tell you exactly what server you should use.
It depends on lots of things such as:
1) Do you plan to serve live content
2) Do you plan to serve non-live content
3) Will you have multi bitrate support (users with higher bandwith will have better picture quality)
For my persional experiece i can tell that HP Proliant DL 380 G7 (Intel® Xeon® X5650, 6 core, 2.66 GHz, 12MB L3, 95W, with 8GB of RAM) can serve between 3000-4000 users, with multi bitrate support.
Network adapters
Again it depends what hosting company can give you and for what price (dedicated link , shared link , etc..) Antoher problem that rises here, multiple adapters in one machine is single point of failure by definition :)
As you probably figured out till now that you will need more than one server for video streaming. My choice would be ( as cheepest and most cleanest solution ) :
1) encoder - Flash Media Live Encoder
2) Media server - CDN solution ( they have more lots of Media server availabe )
Hope this helps!