Планируете разработать видео программный продукт: видеоконференцию, вебинар, платформу телемедицины или онлайн обучения. Сколько придется платить в месяц, чтобы она работала?

Рассказываем, как примерно оценить стоимость инфраструктуры видеостриминговой платформы после запуска. Начнем с алгоритма, закончим примерами. Если вы — не технический человек, и в алгоритме не все будет понятно, сможете посчитать по аналогии с примерами.

Сколько стоит месяц работы видео программы: алгоритм расчета

Затраты состоят из 3 частей: на трафик, хранение данных и сам сервер.

  • трафик — информация, которая проходит через наши сервера. В основном, это аудио и видео стримы
  • хранение данных — в нашем случае это хранение записей видеоконференций
  • сервер — компьютер, где находится сам проект. Таких серверов может потребоваться более одного, если пользователей больше, чем один сервер может обработать.

Затраты на трафик

Начнем с затрат на трафик: при видеостриминге он дороже хранения данных и сервера.

Посчитаем, сколько трафика будет проходить через наш сервер за определенный промежуток времени.

Мы не считаем входящий трафик, только исходящий. Это потому, что большинство провайдеров либо предоставляют безлимитный бесплатный входящий трафик, либо цены на него так низки, что ими можно пренебречь.

Чтобы посчитать количество трафика, которое будет израсходовано при стриминге видео, нужно понять, какого размера видео файл будет стримиться. Будем считать, что файл размером 1 гигабайт потратит 1 гигабайт трафика.

Можно воспользоваться таблицей ниже.

Как оценить затраты на сервер для видеоплатформы, image #1

Выберите разрешение. В правой колонке указано, сколько гигабайт израсходует 1 час стриминга видео в выбранном разрешении. Левее — необходимая пропускная способность в кб. Числа получены с помощью калькулятора. Если в таблице нет нужных значений, возьмите данные оттуда.

Теперь, когда у нас есть понимание, сколько гигабайт занимает час видео, нужно посчитать, сколько раз видео скачается с сервера.

Предположим, это стриминговый сервис, и пользователи просматривают видео на сайте. Тогда, если это видео посмотрят 2 человека, трафик потратится 2 раза: каждый из пользователей просмотрит видео 1 раз.

Для сервисов с одним стримером и 20-ю зрителями за час будет израсходован трафик, равный размеру 20 файлов: видео будет передано с сервера каждому из 20-ти зрителей.

В случае с видеочатом на 4 человека размер видео нужно умножить на 12. 4 человека в чате и каждый получает по 3 видео других собеседников от сервера.

Размер видео умножили на количество скачиваний этого видео с сервера. Теперь у нас есть количество трафика, которое расходуется за 1 час времени. Умножим его на цену за гигабайт трафика, которую запрашивает наш провайдер: AWS, DigitalOcean. Если сервера физически находятся в нашем владении, то это может даже быть наш интернет-провайдер.

Вуаля, получили примерную цену на трафик. Однако это еще не все: остались стоимость за хранение видео и стоимость аренды самого сервера.

Затраты на хранение данных

Если вы не храните записи видеостримов, пропускайте эту секцию.

Затраты на хранение данных, не включающих записанные видео, обычно настолько малы, что в примерном расчете стоимости ими можно пренебречь. Мы арендуем сервер, чтобы разместить на нем сайт. Имеющегося на нем дискового пространства в пару десятков Гб должно хватить в большинстве случаев.

Но если данных больше, чем нескольких десятков Гб, их хранят в отдельном хранилище. За него платят дополнительно.

Примеры:

  • Приложение с огромной аудиторией, как Инстаграмм. Им нужно дополнительное хранилище, хотя они не хранят записи видео звонков, потому что пользователи загружают много фото и видео, и пользователей много.
  • Приложение для видеоконференций для местного банка на 3 филиала, хранят записи видеоконференций. Им не нужно дополнительное хранилище: одновременно хранятся записи такого размера, что объём памяти сервера их сайта не превышается.

Для начала посчитаем размер файлов, которые будут храниться на сервере. Алгоритм подсчета размера одного видео файла аналогичен расчетам выше, но не важно, сколько человек просматривают файл. Важно только, сколько таких видео нужно хранить.

Примеры:

  • Если храним запись видеоконференции на 4 человека, потребуется место равное 4 видео файлам — по одному для видео каждого из участников.
    Можно объединять все видео в одно и хранить его в оптимизированном виде. Размер файлов на сервере будет в 2 и более раз меньше. Но эту функцию надо разработать, поэтому обсудите это с вашим разработчиком.
  • Если храним видео как YouTube, на каждое видео будет храниться один файл. Если есть функционал изменения качества видео в зависимости от скорости интернета пользователя, то будет храниться по одному файлу каждого качества.

Теперь берем размер одного видео, умножаем на количество видео, которые будут храниться.

Полученную величину умножаем на цену хранения GB данных на вашем сервере.

Если это ваш личный компьютер — можно посчитать напрямую стоимость HDD/SSD, которые нужно туда установить.

Осталось посчитать стоимость аренды или содержания самого сервера.

Затраты на сервер

Сервер — это место, где располагается сама программа и хранятся данные пользователей. Для небольших проектов может использоваться 1 сервер, а где пользователей много — несколько серверов.

Стоимость серверов сильно зависит от типа проекта и количества пользователей, но для примера можно использовать советы ниже.

На ранних стадиях развития проекта можно обойтись одним сервером за $50 в месяц.

Если есть видеоконференция или видеостриминг, то желательно иметь отдельный сервер для медиасервера.

Если конференций много, можно автоматически создавать новые сервера на лету на время видеоконференции и удалять их, когда не нужны. У них есть цена за час использования. Если знаете эту цену для вашего сервера — используйте ее. Если нет, можно взять примерно $0,3 за час за каждую видеоконференцию. Это усредненная цена на несколько первых серверов Amazon EC2 категории c5 из калькулятора Amazon на сентябрь 2020 года.

Примеры расчета стоимости работы видеопрограммы в месяц

№1: Видеоконференция на 9 человек

Трафик

Возьмем разрешение 640х480 — оптимальный формат для видеочата (4:3) — картинка скомпонована, а лицо посередине экрана.

По таблице из раздела “Алгоритм — Затраты на трафик” выше — это 0.11 GB в час. Столько занимает 1 час видео в одну сторону. Всего от сервера будет будет отправляться 72 потока — по 8 видео каждому из 9 пользователей.

Умножаем 72 на 0.11 GB, получаем 7.92 GB

Трафик на AWS стоит по-разному в зависимости от количества трафика и от того, где физически располагаются клиенты. Для наших примерных расчетов подойдет средняя стоимость $0.09 за ГБ. Умножаем 7.92 Гб на $0.09, получаем $0.71 в час.

Хранение

Допустим, мы хотим хранить запись видеоконференций. На сервере будет храниться одно видео, на котором все остальные видео будут объединены.

Допустим, новое видео будет иметь разрешение 1280х720 (этого достаточно чтобы все было видно) и в соответствии с таблицей займет 0.88GB.

Берем General Purpose SSD от Amazon S2 от Amazon S2. Он стоит примерно $0.1 за гигабайт в месяц на февраль 2022. Умножаем размер видео в Гб на стоимость хранения одного Гб (0.88 * 0.1), получаем ~$0.088 за каждый час видео. Это нужно будет платить каждый месяц, который наше видео хранится на сервере.

Сервер

Тут можно взять $50 на сервер под саму платформу и $0.30 за каждый час аренды сервера для самой видеоконференции.

На сервере, который стоит $0.30, может одновременно проходить 5 и более конференций, но для пессимистичных расчетов можно считать, что у нас только одна видеоконференция.

Суммарные затраты

  • $0.71 в час за трафик
  • $0.088 в месяц за хранение одного часа записей
  • $50 в месяц за сервер под сайт и $0.30 в час за аренду сервера для самой видеоконференции

$0.71 и $0.30 можно сложить: обе цены — за каждый час активной видеоконференции. Получим $1.01 за час видеоконференции.

Как посчитать, в какую сумму в месяц обойдется содержание такого чата? Нужно хотя бы примерное количество видеоконференций в день/месяц.

Допустим, в день у нас таких видеоконференций будет 4 часа. 4 часа умножаем на $1.01, получаем стоимость обслуживания в день: $4.04. Умножаем стоимость дневного обслуживания на 30 дней, получаем затраты в месяц: $121.20.

Чтобы хранить все записи, потребуется хранить 4 ч * 30 дней = 120 часов видео. За это заплатим $0.088 * 120 = $10.56 в месяц.

Сложим все затраты в месяц: $121.20 + $10.56 + $50 = $181,76

№2: Вебинар 2 стримера, 50 зрителей

Трафик

Возьмем разрешение 720x480 — подходящий вариант для стриминга. Хороший баланс между качеством и экономичностью.

По таблице из раздела “Алгоритм — Затраты на трафик” выше это 0.44 GB в час. Столько занимает 1 час видео в одну сторону. Всего от сервера будет будет отправляться 102 видео потока — по 2 видео каждому из 50 пользователей и по 1 видео каждому стримеру.

Умножаем 102 на 0.44 GB, получаем 44.88 GB

Трафик на AWS стоит по-разному в зависимости от количества трафика и от того, где физически располагаются клиенты. Для наших примерных расчетов подойдет средняя стоимость $0.09 за ГБ. Умножаем 44.88 Гб на $0.09, получаем $4.04 в час.

Хранение

У нас два стримера. На сервере будет храниться одно видео, на котором объединены видеозаписи обоих стримеров.

Допустим, новое видео будет иметь разрешение 1280х720 (этого достаточно чтобы все было видно) и в соответствии с таблицей займет 0.88GB.

Берем General Purpose SSD от Amazon S2. Он стоит примерно $0.1 за гигабайт в месяц на февраль 2022. 0.88 * 0.1, будем платить ~$0.088 за каждый час видео каждый месяц, который оно хранится на нашем сервере.

Сервер

Тут можно взять $50 на сервер под саму платформу и $0.30 за каждый час видеостриминга.

На самом деле, на сервере, который стоит $0.30, может одновременно проходить более одного сеанса стриминга и зрителей может быть больше, чем 50, но для пессимистичных расчетов можно считать, что у нас только один сеанс стриминга. Для него все равно придется использовать такой сервер.

Суммарные затраты

  • $4.04 за трафик за каждый час стриминга
  • $0.088 в месяц за хранение одного часа записей
  • $50 в месяц за сервер под сайт и $0.30 за сервер за каждый час стриминга

$4.04 и $0.30 можно сложить, потому что обе цены — за час стриминга. Получим $4.34 за каждый час стриминга.

Как посчитать, в какую сумму в месяц это обойдется? Нужно хотя бы примерное количество сеансов стриминга в день/месяц.

Допустим, в день у нас таких стримов будет 4 часа. 4 умножаем на $4.34, получаем стоимость обслуживания в день: $17.36. Умножаем на 30, получаем затраты в месяц: $520.8.

Чтобы хранить все записи потребуется хранить 4 ч * 30 дней = 120 часов видео. За это заплатим $0.088 * 120 = $10.56 в месяц.

Сложим все затраты в месяц: $520.8 + $10.56 + $50 = $581.36.

№3: Видеочаты 1 на 1 через p2p

Трафик

В случае звонков p2p все видео идет напрямую между пользователями, минуя сервер. Поэтому за трафик платить не придется.

Это верно, когда соединение p2p технически возможно установить. Невозможно это лишь примерно в 10% случаев. В таких случаях соединение пойдет через сервер, а не напрямую. Значит, 90% звонков будут “бесплатными”, а за 10% придется платить. Давайте посчитаем, сколько.

Возьмем разрешение 640х480 — оптимальный формат для видеочата (4:3) — картинка скомпонована, а лицо посередине экрана. По таблице из раздела “Алгоритм — Затраты на трафик” выше это ​0.11 GB в час. Столько занимает 1 час видео в одну сторону.

Всего от сервера будет будет отправляться 2 потока — по 1 видео каждому из 2 пользователей.

Умножаем 2 на 0.11 GB, получаем 0.22 GB.

Трафик на AWS стоит по-разному в зависимости от количества трафика и от того, где физически располагаются клиенты. Для наших примерных расчетов подойдет средняя стоимость $0.09 за ГБ. Умножаем 0.22 Гб на $0.09, получаем $0.02 в час.

Платить нужно только за 10% звонков, поэтому 1 час видеочата обойдется в $0.002.

Хранение

У нас 2 человека в чате. На сервере будет храниться 1 видео, на котором видео этих двух человек объединены в одно.

Допустим, новое видео будет иметь разрешение 1280х720 (этого достаточно чтобы все было видно) и в соответствии с таблицей займет 0.88GB.

Берем General Purpose SSD от Amazon S2. Он стоит примерно $0.1 за гигабайт в месяц на февраль 2022. 0.88 * 0.1, будем платить ~$0.088 за каждый час видео каждый месяц, который оно хранится на нашем сервере.

Сервер

Можно взять $50 на сервер и дополнительный сервер для видео стриминга не брать, так как сервер за $50 сможет выдержать нагрузку в более чем 1000 одновременных чатов p2p.

Суммарные затраты

  • $0.0002 за каждый час видеочатов
  • $0.088 в месяц за хранение одного часа записей
  • $50 в месяц за сервер под сайт

Как посчитать, в какую сумму в месяц это обойдется? Нужно хотя бы примерное количество видеочатов в день/месяц.

Допустим, в день у нас таких чатов будет 100.

100 умножаем на $0.002, получаем стоимость обслуживания в день: $0.2. Умножаем на 30, получаем затраты в месяц: $6.

Чтобы хранить все записи, потребуется хранить 3000 часов видео. За это заплатим $0.088 * 3000 = $264 в месяц.

Сложим все затраты в месяц и получим $56 без хранения всех видеозаписей и $320 с хранением всех записей на сервере.

Расчеты очень примерные. Даем их, чтобы получить представление о затратах на работу видеопрограммы: стоит это около $10, $1000 или $10000. Если после расчетов ваш бизнес выходит в 0 — не стоит его начинать. Запас должен быть существенный.

  • Процессы