Recommended Wowza Architecture for Six 352x240 Video Streams and Up to 1,500 Users
I was hoping that someone could recommend the most appropriate Wowza architecture that would allow up to 1,500 users to concurrently stream one of six available live video streams at a resolution of 352x240 (CIF) resolution. I would like to offer users the ability to stream video as RTMP Flash (desktop/laptop), Apple HLS (iOS), RTSP (BlackBerry/Android) or possibly Microsoft Smooth Streaming (Windows Phone 7). On average, I've noticed that the approximate bandwidth for Adobe RTMP Flash, Apple HLS and RTSP is about 0.15 Mbps or 155 kbps per CIF resolution stream.
We are currently serving up video to a fixed group of users with Wowza Media Server 2, however, we are now looking at opening the service up to the public (therefore, we must be prepared for spikes in streaming activity, thus the 1,500 number). We are currently using RTMP authentication using Flowplayer in conjunction with a custom RTMP Authentication Wowza Module. We would like to keep the RTMP authentication for the RTMP Flash video, and then extend authentication to Apple HLS and RTSP (right now, we are only streaming RTMP Flash video) so that we can somewhat control access to the streaming video.
It looks like one of the easiest ways to scale-up to accommodate the new users would be to use Wowza on an Amazon EC2 instance. In my head, it seems that there are a couple options (I'm sure there may be more):
Keep existing Wowza Media Server 2 as Origin Server, and setup new Wowza EC2 instance as Edge Server
Move existing Wowza Media Server 2 to an EC2 instance
I acknowledge that our existing media server would likely have to be upgraded to Wowza Media Server 3 (especially if we're trying to setup an origin-edge configuration). From reading through the forums, it seems like an X-Large EC2 instance would give us plenty of performance at around 350 Mbps (even though we shouldn't even get that high in theory, maybe 225 Mbps).
If you have any recommendations for which of the above two options would be easiest to configure/maintain (i.e. recall that I would like to have stream authentication in place), your comments would be greatly appreciated.
Also, with an origin-edge configuration, would all streams that are published on the origin server automatically be published on the edge server? I'm a little unsure as to how exactly this configuration would be setup.
Firstly, your bitrate mentioned for 352/240 of 0.15Mbps seems far too low. Perhaps you meant 1.5Mbps? I suggest a minimum bitrate of about 500kbps for that resolution.
You should upgrade to Wowza Server 3 in any case, as the WMS3 license if free for existing WMS2 customers.
Wowza can serve 1500 clients with a current dual or quad core server. An origin-edge configuration is not mandatory.
When choosing a server, the limiting factor is usually bandwidth. If you have a dedicated server with a 1Gbit connection you should be able to serve 1500 streams at 5-600kbps. Here is my calculation: 1500*600kbps*1.2 (add 20% for network overhead) = 1Gbps.
You can experiment with this by using your existing Wowza server as the Origin and setup Wowza on your laptop as an edge using a Wowza Dev or Trial license. Note, you can also setup your server as both Origin and Edge. But, I think using two computers makes it easier to understand at first.