Capacity Estimation per live stream
Let’s find out how much data we need to process according to each live stream – taking a football match as an example,
Let’s make some assumptions at first,
- Suppose, footage which is captured in a particular kind of match on ESPN (football) is of 4K.
- Now, for better understanding, we take now four kind of resolutions to serve: 1080p, 720p, 480p, and 360p.
- So, codecs: 4
- Duration of football match: 1hour and 30 minutes
- So, let’s assume the size of footage: 4 GB
Now, size of 720p footage: 4/2 = 2GB
size of 480p footage: 4/4 = 1GB
size of 360p footage: 4/8 = 0.5GBSo, the total storage for all resolutions = 7.5 GB.
and, the total storage for all resolutions and codecs = 7.5*4 = 30 GB of data to be processed per live stream.
Let’s find out how much data will be transferred to CDN in a single live stream,
Let’s make some assumptions at first,
- Number of users: 10 Million
- % of users having HD resolution: 50%
- % of live stream users watch on an average: 40%
Size of footage in standard resolution(480p): 4/4 = 1GB
Therefore, Total Data Transfer to CDN = (Video Size * Number of users for each resolution) * Average Watch % of the live stream
= (4 GB * 50/100 * 10^6 + 1 GB * 50/100 * 10^6) * 40/100 = 1.25 * 10^6 GB = 1.25 PB of data transfer will take place to CDN in a single stream.
Let’s find out how much time would it take to send data from the live stream to the user’s device,
Let’s make some assumptions at first,
- Amount of data consumed by user in a second = 4GB/1.5 hour ~ 700kB/sec
- Time taken to transfer 700kB of data to nearest CDN = 1sec
- Time taken to transfer 700kB of data to user from CDN = 250ms
Total travel time for the stream to reach the user’s device = 1 + 0.25 + 0.25 = 1.5sec
Processing time assuming ffmpeg/Handbrake/VideoLan running at 2x of video speed = 1 / 2 = 0.5s
Total latency = 1.5 + 0.5 =2s.