Где хранить видео для сайта: свой сервер, облако или видеохостинг
Вопрос «где хранить видео для сайта» обычно возникает в неудобный момент: ролик смонтирован, страница готова, а файл на 40 МБ некуда положить. Вариантов ровно четыре, и у каждого своя цена - иногда в рублях, иногда в секундах загрузки, иногда в чужом логотипе поверх вашего кадра.
Разберём все четыре с арифметикой. Считать будем на одном примере: ролик весит 10 МБ, у сайта 20 000 визитов в месяц. Этого хватит, чтобы понять, где вы упрётесь в потолок, а где переплатите за то, что вам не нужно.
Универсального ответа нет. Пятнадцатисекундное промо в шапке и курс из сорока уроков - разные задачи, разные деньги и разные решения.
Сначала посчитайте трафик, потом выбирайте
Любой выбор хранения упирается в одно число: сколько гигабайт в месяц уйдёт с сервера к зрителям. Формула детская - вес файла умножить на количество полных загрузок.
- 10 МБ × 20 000 визитов = 200 000 МБ, это примерно 195 ГБ в месяц.
- Если ролик открывает не каждый, а каждый третий, получается около 65 ГБ.
- Если видео стоит автоплеем в первом экране, оно грузится почти у всех, плюс боты и повторные заходы. Берите верхнюю границу и добавляйте запас.
Второе число - битрейт. 1080p в H.264 при спокойной картинке живёт на 3-4 Мбит/с, то есть около 25-30 МБ на минуту. «Ролик на 10 МБ» - это примерно 20 секунд в 1080p или минута в 720p, если сжать аккуратно.
Один приём экономит трафик почти даром: поставьте на теге видео preload="metadata" и картинку-заглушку в poster. Тогда браузер тянет несколько килобайт вместо всего файла, а полный ролик уходит только тем, кто нажал play.
Вариант 1. Файл лежит на вашем хостинге
Самый прямой путь: кладёте mp4 в папку сайта и вставляете тег video. Дополнительных счетов нет, пока хостинг не начнёт возмущаться. Пошагово это разобрано в статье про добавление видео на сайт.
- Ноль рублей сверху к текущему тарифу.
- Никакого чужого брендинга и блока «смотрите также» с роликами конкурентов.
- Файл на вашем домене: он не отвалится, если у сторонней площадки что-то случится.
- Одно качество для всех. У зрителя в метро тот же файл, что у зрителя на оптике.
- Перемотка тяжёлая: браузер шлёт range-запросы, и сервер отдаёт куски файла вместо того, чтобы обслуживать страницы.
- Видео делит канал с самим сайтом. Когда упирается видео, тормозит вообще всё.
- Многие тарифы виртуального хостинга прямо запрещают раздачу тяжёлой медиа. Прочитайте договор до того, как выложите десять роликов.
Вариант 2. Объектное хранилище с CDN
S3-совместимое хранилище: файл лежит в бакете, отдаётся по прямой ссылке, обычно через CDN. Это дефолтный ответ для сайтов, у которых видео стало заметной статьёй трафика.
В счёте две строки: хранение за гигабайт в месяц и исходящий трафик за гигабайт. Хранение для десятка роликов стоит копейки, весь счёт делает трафик.
- Возьмите калькулятор выбранного провайдера и подставьте своё число - те самые 195 ГБ.
- Уточните, тарифицируется ли отдача через CDN отдельно от трафика из бакета: это разные цены.
- Заложите сверху 20-30% на ботов, парсеры и повторные загрузки.
Минусы честные: перекодирования в несколько качеств здесь нет, HLS собирать самому, а прямую ссылку на файл легко утащить. Для маркетингового ролика это неважно, для платного курса критично.
Вариант 3. Видеоплатформа по подписке
Платная платформа берёт на себя то, чего нет у бакета: перекодирует исходник в несколько качеств, собирает HLS, даёт плеер, статистику досмотров и защиту от простого скачивания.
Платите обычно ступенчатым тарифом: столько-то гигабайт хранения и столько-то трафика в месяц, дальше следующая ступень. Такая модель выгодна, когда роликов много и они длинные, и невыгодна, когда ролик один.
- Проверьте, где физически лежат файлы: зарубежная площадка добавит задержку российскому зрителю.
- Проверьте, как оплачивать. С картами российских банков за рубеж по-прежнему сложно.
- Проверьте, что происходит при неоплате: у части сервисов ролики просто перестают отдаваться, и на сайте появляется чёрный прямоугольник.
Вариант 4. Бесплатная площадка и встроенный плеер
YouTube, VK Видео, Rutube. Хранение и трафик стоят ноль, раздача быстрая, перекодирование в комплекте. Платите вы не деньгами.
- Чужой интерфейс и логотип на вашей странице.
- Рекомендации и переходы: зритель уходит смотреть чужое.
- Доступность вне вашего контроля. У части аудитории ролик может не открыться или грузиться минутами.
- Тяжёлый iframe плеера бьёт по скорости страницы, даже если видео никто не запустил.
Если ролики уже стоят с YouTube и посетители жалуются на пустой квадрат, посмотрите разбор почему видео с YouTube не работает и чем его заменить.
Когда своего сервера хватает, а когда он захлебнётся
Свой сервер справляется чаще, чем принято думать. Проблема не в самом факте раздачи, а в одновременности.
- Ролики короткие: 10-30 секунд, 5-15 МБ.
- Их немного, до десятка на весь сайт.
- Трафик ровный, без всплесков от рассылок и рекламы.
- Видео запускается по клику, а не автоплеем.
- Уроки и вебинары на 20-40 минут. Один такой файл весит как весь остальной сайт за месяц.
- Всплески: рассылка на 20 000 адресов в десять утра приводит всех разом.
- Автоплей в шапке на мобильном трафике.
- Хостинг с квотой на трафик: сначала письмо, потом отключение.
Проверить легко. Ролик в 4 Мбит/с и канал 100 Мбит/с - это 25 одновременных зрителей, и канал занят целиком, на HTML уже ничего не остаётся. Двадцать пять человек одновременно набираются на удивление быстро, особенно после рассылки.
Сравнивайте не только по рублям
У каждого варианта четыре цены, и рубли только первая.
- Деньги: счёт за трафик или подписка.
- Ваше время: перекодирование, сборка HLS, настройка CDN - это часы, которые кто-то должен потратить.
- Риск: что случится с роликами, если площадка закроется, поднимет цены или заблокирует аккаунт.
- Скорость у зрителя: первый кадр за секунду или крутящийся кружок на три.
Дешёвый по деньгам вариант часто оказывается самым дорогим по времени и риску. Свой сервер бесплатен ровно до того дня, когда вам звонят и говорят, что сайт лёг.
Схема, которая закрывает большинство сайтов
Если не хочется сравнивать таблицы, вот рабочий порядок действий.
- Сожмите исходник: H.264, 1080p, битрейт 2-4 Мбит/с, звук 96-128 кбит/с. Часто это минус 60-70% веса без видимой разницы.
- Сделайте poster-картинку и поставьте preload="metadata", чтобы файл не грузился у всех подряд.
- Короткие маркетинговые ролики положите в объектное хранилище с CDN.
- Длинные уроки и всё платное отдайте видеоплатформе с подпиской.
- Через месяц посмотрите фактический исходящий трафик и сравните с прогнозом. Дальше решайте по своим числам, а не по статьям в блоге.
Отдельный случай - короткие ролики и сторис прямо на странице: их обычно проще не хостить самому. Видеовиджет хранит и раздаёт файлы на своей стороне, и вопрос трафика закрывается подпиской, а не отдельным бакетом. Универсальным ответом это не назовёшь: для сорока уроков курса виджет не нужен, там нужна полноценная платформа.
Частые вопросы
Сколько трафика съест ролик на 10 МБ при 20 000 визитов?
Около 195 ГБ в месяц, если файл грузится у каждого посетителя. Реально выходит меньше: с preload="metadata" и запуском по клику ролик уходит только тем, кто нажал play, и цифра падает в два-три раза. Точную долю покажет статистика провайдера через месяц работы.
Можно ли хранить видео прямо на виртуальном хостинге?
Технически да, но многие тарифы это запрещают договором. Прочитайте раздел про раздачу медиафайлов до того, как выложите десяток роликов, иначе аккаунт могут ограничить без предупреждения. Для одного короткого ролика проблем обычно не бывает.
Что дешевле: объектное хранилище или подписка на видеоплатформу?
На одном-двух коротких роликах хранилище выходит дешевле, счёт получается символическим. На часах видео подписка чаще выигрывает, потому что в неё уже входят перекодирование и плеер, которые в бакете придётся собирать руками. Переломная точка у всех своя, считайте на своих гигабайтах.
Обязательно ли уходить с YouTube?
Нет. Если ваша аудитория его открывает и вас устраивает чужой плеер на странице, это по-прежнему самый дешёвый способ. Проблемы начинаются, когда часть посетителей видит пустой квадрат, а вы об этом не знаете - тогда стоит проверить доступность на разных провайдерах.