video server for 10k user per day

September 4, 2014 2.2k views

hi, i know this may not be the correct place to ask this question but i beg your pardon. i need to set up a server for an application which delivers 40 sec. videos in hd resolution to an estimated 10k users per day. Since i have very little sysadmin skills i really do not know what kind of a solution i need. I thought digital ocean might be the best solution with their ssd drives but what do you recommend?

does anyone has experience on a web application at such scale? thanks in advance.

1 comment
  • Vimeo Plus has some nice features for a reasonable price. Basically you could use Vimeo to upload all of your videos. Use DigitalOcean for the website where you embed your videos.

2 Answers

If you have 10,000 visitors per day and each one of them played the entire length of the 40 second video that would be 400,000 seconds of playback, assuming that it was evenly distributed throughout the day.

A day has 86,400 seconds, so dividing that the two means that you would be serving an average of 4.629 requests per second of playbook. 4-5 requests per seconds is very low overhead so you shouldn't worry too much, it really depends on the type of videos you are serving.

If its just mp4 or anything static you can setup nginx as a web server and it will easily handle that load without issue. Especially if the videos you are serving can all be cached because either it's a small number of videos or they are low in the file size.

Given how modern browsers and mobile devices work just serving it up as mp4 usually gives you good playback without issue and then for embedding it into a webpage you can use any number of players or other methods to get it integrated.

Or as one of the comments suggested you can offload it entirely to Vimeo, YouTube, or any other hosted video service.

I'd say spin up a 1GB droplet just to give yourself a bit of buffer, install nginx, and go from there.

Thanks sierracircle for your reply but i need to keep all the data on my server. it will be the users who upload videos so i cannot store them somewhere else. There also be a record feature that the users can record their videos. That's why i need to calculate the cost and the bandwidth.

Thanks for your detailed explanation moisey, but the scenario will be more like this; user signs up records/upload a 40 sec video. Every user an upload one video in hd quality so for 10.000 user there will be 10.000 videos and every registered user can watch any number of videos. There will be another user group who will sign up and watch videos.

My target is to reach 1 million user (maybe in 2 to 5 years time) in 1 to 4 ratio of each user group so there will be 800.000 videos/users (80 tb at least) that i need to keep for 10 years.

Lets assume every user watch 20 videos and 50.000 people per day. Per your calculation it will be 400 to 600 request per second. That part is the one freaks me out. I guess i need unlimited bandwidth and multiple servers to divide the overhaul.

What do you think is it doable?

Have another answer? Share your knowledge.