A java signaling server for connecting up the various clients.
Authentication will be done via major providers, users can pick their favorite- facebook, google, twitter, microsoft, linkedin. This will allow us to use their profile picture, email address, and if they are greater that 18 from the provider.
Websockets is used for the signaling to/from the server.
Webrtc will be used for the audio/video and data streams. Data streams will be used to test the users bandwidth (even though getStats is broken for data streams so we’ll write our own).
From the start we will accommodate just two channels- 24×7 reruns and live. Each channel will serve two streams: standard and low quality (for users with limited bandwidth or data caps imposed by their ISP). Standard quality will be around 1.5 to 3 Mbps and low quality will be 500 Kbps.
Tier zero is the original stream. Tier 1 is hosted at My Delaware TV and will serve several tier 2 users. Tier 2 users will serve tier 3 users, and so on down the pyramid. Testing will provide the practical number of users each tier can serve, all the way down to tier n.
Say tier 1 will serve 4 tier 2 users. Tier 2 will each serve two tier 3 users, allowing us to accommodate 4+4*2= 12 total users. Tier 10 will be able to accommodate 2044 users.
tier users in tier
2 4
3 12
4 28
5 60
6 124
7 252
8 508
9 1020
10 2044
To directly serve that many users a 2 Mbps feed My Delaware TV would need 4088 Mpbs. At Verizon business FIOS pricing using my current bill/speed, I would need 28 150 Mbps lines at a cost of $4,140/month.