How to estimate the server cost for a video platform?👇
Tags: tutorial, architecture, devops, video
Published: 2022-02-07 07:21:43

Are you planning on a creating video software, such as video conference, webinar, telemedicine or elearning platform? Let's see how much you'll have to pay monthly to maintain it.

In this article, we'll explain how to estimate a video streaming platform's  infrastructure cost. We'll start with an algorithm and finish with examples. If you don't have technical background, you can calculate using the examples.

## How much does a month of a video program cost: calculation algorithm

The combined cost is based on the cost of traffic, data storing, and the server itself.

- **Traffic** - the information that goes through our servers. In general, it’s audio and video streams. 
- **Data storing** -  storing video conference recordings. 
- **The server itself** is the computer with the project. When one server isn’t enough because of too many users, people would use many servers instead. 

## Traffic costs

Let's start with the cost of traffic: with video streaming it's more expensive than data storage and the server.

Let's calculate how much traffic will go through our server in a certain period of time.

We don't count incoming traffic, only outgoing. This is because most providers either provide unlimited free incoming traffic, or their prices are so low that they can be neglected.

To calculate the amount of traffic that will be consumed when streaming a video, you need to understand the size of the video file to be streamed. Let's assume that a file of 1 gigabyte will consume 1 gigabyte of traffic.

You can use the table below.

![how much traffic video resolution require](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6e1cy0r42idu9dyxa4e6.png)

Select a resolution. The right column shows how many gigabytes will be consumed per hour when streaming video in the selected resolution. The numbers are obtained with the help of a [calculator](https://toolstud.io/video/filesize.php). If the table does not have the necessary values, take the data from there.

Now that we have an idea of how many gigabytes an hour of video is, we need to calculate how many times the video will be downloaded from the server.

Suppose this is a streaming service and users watch the video on the site. Then, if two people watch the video, the traffic will be spent twice: the video will be watched 1 time by each user.

For services with one streamer and 20 viewers traffic equal to the size of 20 files will be spent per hour: the video will be transferred from the server to each of the 20 viewers.

In the case of a video chat for 4 people, the video size must be multiplied by 12. 4 people in the chat and each receives 3 videos of the other interlocutors from the server.

The size of the video multiplied by the number of downloads of that video from the server. Now we have the amount of traffic that is consumed per 1 hour of time. Multiply it by price per gigabyte of traffic provided by our provider: AWS, DigitalOcean. If the servers are physically in our possession, it can even be our ISP.

Voila, we got an approximate price for traffic. But that's not all: there are still costs for video storage and the cost of renting the server itself.

## Price for storing data

If you don’t keep your stream recordings, feel free to skip this section.

Storage costs for data that doesn't include recorded video are usually so low that they can be neglected in the approximate cost calculation. We rent a server to host the site. A disk space of a couple dozens of GB, that's available on the server, should be enough in most cases.

But if the data exceeds a few tens of gigabytes, it's stored in a separate storage unit. It is paid for in addition.

**Examples:**

- An app with a huge audience, like Instagram. They need extra storage, although they don't store video call recordings because users upload a lot of photos and videos, and there are a lot of users.
- Video conferencing application for a local bank for 3 branches, they store video conferencing recordings. They do not need additional storage: the recordings are stored at the same time in such a size that the server memory capacity of their site is not exceeded.

First, let's calculate the size of files to be stored on the server. The algorithm for calculating the size of one video file is similar to the calculations above, but it doesn't matter how many people view the file. All that matters is how many such videos to store.

**Examples:**

- If you store a video conference recording for 4 people, you will need space equal to 4 video files - one for each participant's video.
- You can combine all the videos into one and store it in an optimized form. The size of the files on the server would be 2 or more times smaller. But this feature needs to be developed, so discuss it with your developer.
- If we store videos like YouTube, one file will be stored for each video. If there is functionality to change video quality depending on the user's internet speed, one file of each quality will be stored.

Now take the size of one video, multiply it by the number of videos to be stored.

This value is multiplied by the price of storing GB of data on your server.

If it is your own computer, you can directly calculate the cost of HDD/SSD you will need to install there.

All that remains is to calculate the cost of renting or maintaining the server itself.

## The cost of server

The server is the place where the program itself is located and where user data is stored. For small projects, 1 server can be used, and where there are many users, several servers can be used.

The cost of servers strongly depends on the type of project and the number of users, but you can use the tips below as an example.

In the early stages of project development, you can get by with one server for $50 per month.

If there is video conferencing or video streaming, it is advisable to have a separate server for the media server.

If there are many conferences, you can automatically create new servers on the fly for the duration of the video conference and delete them when not needed. They have a price per hour of use. If you know that price for your server, use it. If not, you can charge about $0.3 per hour for each video conference. This is the average price for the first few Amazon EC2 c5 servers from [Amazon's September 2020 calculator](https://calculator.aws/).

## Examples of video software monthly cost calculation

### #1: Video conference for 9 people

**Traffic**

Let's take the resolution 640x480 - the optimal format for video chat (4:3) - the picture is composed and the face is in the middle of the screen.

According to the table in the "Traffic Costs" section above, this is 0.11 GB per hour. This is what 1 hour of video takes one way. A total of 72 streams will be sent from the server - 8 videos for each of 9 users.

Multiply 72 by 0.11 GB, you get 7.92 GB.

[Traffic on AWS costs differently](https://cloud.netapp.com/blog/aws-cvo-blg-aws-data-transfer-costs-solving-hidden-network-transfer-costs) depending on the amount of traffic and where clients are physically located. For our approximate calculations, an average cost of $0.09 per GB will do. Multiply 7.92 GB by $0.09 and you get $0.71 per hour.

**Storing**

Let's say we want to store video conference recordings. One video will be stored on the server where all other videos will be merged.

Let's assume the new video will have a resolution of 1280x720 (this is enough to see everything) and will take 0.88GB according to the table.

We take the General Purpose SSD from Amazon S2 from Amazon S2. It costs about [$0.1 per gigabyte per month](https://aws.amazon.com/ru/ebs/features/) as of February 2022. Multiply the video size in GB by the cost to store one GB (0.88 * 0.1), we get ~$0.088 for each hour of video. This will have to be paid every month that our video is stored on the server.

**Server**

Here you can take $50 for the server for the platform itself and USD 0.30 for each hour of server rental for the video conference itself.

A server that costs $0.30 can host 5 or more conferences at the same time, but for pessimistic estimates we can assume we have only one video conference.

**The total cost is**

- $0.71 per hour for traffic.
- $0.088 per month for storage of one hour of recordings
- $50 a month for the server for the site and $0.30 an hour for renting a server for the videoconference itself

$0.71 and $0.30 can be added: both prices are for each hour of an active video conference. You get $1.01 per hour of videoconferencing.

How to calculate how much a month it will cost to maintain such a chat? You need at least an approximate number of videoconferences per day/month.

Let's say we have 4 hours of video conferences a day. Multiply 4 hours by $1.01, you get the cost per day: $4.04. Multiply the cost of daily service for 30 days, you get the cost per month: $121.20.

To store all the recordings, we would need to store 4 hours * 30 days = 120 hours of video. We will pay $0.088 * 120 = $10.56 a month.

Let's add up all monthly costs: $121.20 + $10.56 + $50 = **$181.76**

### Webinar with 2 streamers and 50 viewers

Let's take 720x480 resolution - a suitable option for streaming. A good balance between quality and economy.

According to the table from the section "Traffic costs" above, it's 0.44 GB per hour. That's what 1 hour of video takes one way. There will be 102 video streams sent from the server - 2 videos for each of 50 users and 1 video for each streamer.

Multiply 102 by 0.44 GB, you get 44.88 GB.

[Traffic on AWS costs differently depending on the amount of traffic and where clients are physically located](https://cloud.netapp.com/blog/aws-cvo-blg-aws-data-transfer-costs-solving-hidden-network-transfer-costs). For our approximate calculations, an average cost of $0.09 per GB will do. Multiply 44.88 GB by $0.09 and you get $4.04 per hour.

**Storing**

We have two streamers. The server will store one video with videos of both streamers merged.

Suppose the new video will have a resolution of 1280x720 (this is enough to see everything) and according to the table will take 0.88GB.

We take the General Purpose SSD from Amazon S2. It costs about $0.1 per gigabyte per month as of February 2022. 0.88 * 0.1, we'll pay ~$0.088 for every hour of video each month it's stored on our server.

**Server**

Here we can take $50 for the server under the platform itself and $0.30 for each hour of video streaming.

In fact, a server that costs $0.3 can host more than one streaming session at a time and there may be more than 50 viewers, but for pessimistic calculations, we assume that we only have one streaming session. We will still have to use such a server for that.

**Total costs**

- $4.04 for each hour of streaming traffic.
- $0.088 per month for storage of one hour of records
- $50 a month for the server under the site and $0.30 per server for each hour of streaming

$4.04 and $0.30 can be added because both prices are per streaming hour. You get $4.34 for every hour of streaming.

How do we calculate how much it will cost per month? We need at least the approximate number of streaming sessions per day or month.

Suppose we have 4 hours of streaming a day. Multiply 4 by $4.34 and you get the cost per day: $17.36. Multiply by 30 and you get the cost per month: $520.8.

To store all the recordings we will need to store 4 hours * 30 days = 120 hours of video. We will pay $0.088 * 120 = $10.56 per month.

Let's add up all monthly costs: $520.8 + $10.56 + $50 = **$581.36**.

### 1-on-1 video chats via p2p

**Traffic**

In the case of p2p calls, all video goes directly between users, bypassing the server. Therefore, you don't have to pay for traffic.

This is true when a p2p connection is technically possible to establish. It is not possible only in about 10% of cases. In those cases the connection will go through the server and not directly. So 90% of the calls will be free and 10% will have to be paid for. Let's calculate how much exactly.

Let's take the resolution 640x480 - the optimal format for video chat (4:3) - the picture is composite, and the face in the middle of the screen. According to the table in "Traffic costs" above, this is 0.11 GB per hour. This is what 1 hour of video takes one way.

In total 2 streams will be sent from the server - 1 video for each of 2 users.

Multiply 2 by 0.11 GB, you get 0.22 GB.

[Traffic on AWS costs differently depending on the amount of traffic and where clients are physically located](https://cloud.netapp.com/blog/aws-cvo-blg-aws-data-transfer-costs-solving-hidden-network-transfer-costs). For our approximate calculations, an average cost of $0.09 per GB will do. Multiply 0.22 GB by $0.09 and you get $0.02 per hour.

You should pay only for 10% of calls so 1 hour of video chat will cost $0.002.

**Storing**

We have 2 people in the chat. There will be 1 video stored on the server where the videos of these two people are combined into one.

Let's assume the new video will have a resolution of 1280x720 (this is enough to see everything) and will take 0.88GB according to the table.

We take the General Purpose SSD from Amazon S2. It costs about [$0.1 per gigabyte per month](https://aws.amazon.com/ru/ebs/features/) as of February 2022. 0.88 * 0.1, we'll pay ~$0.088 for every hour of video each month it's stored on our server.

**Server**

You can take $50 for the server and not take an additional server for video streaming, as the server for $50 will be able to handle more than 1000 simultaneous p2p chats.

**Total costs**

- $0.0002 per each hour of video chats
- $0.088 per month for storage of one hour of recordings
- $50 per month for a server under the site

How do I calculate how much it will cost per month? You need at least an approximate number of video chats per day/month.

Let's suppose we have 100 chats per day.

Multiply 100 by $0.002 to get the cost per day: $0.2. Multiply by 30 to get the cost per month: $6.

To store all the recordings you would need to store 3000 hours of video. We will pay $0.088 * 3000 = $264 per month.

Add all costs per month and you get **$56 without all records and $320 with all records on server**.

Calculations are very rough. We give them to get at least a rough idea of the cost of running a video program: it costs about $10 or $1000 or $10,000. If, after the calculations, your business comes out to 0 - do not start it. The margin should be substantial.

Have any more questions? Leave a comment and let's discuss it.