Выделенный сервер для стриминга, транскодирования и VOD
Принимайте RTMP или SRT, транскодируйте в FFmpeg на ядрах процессора или через NVENC и раздавайте зрителям HLS с выделенного сервера для стриминга с NVMe и портом с безлимитным трафиком.
Трафик идет на полной скорости порта без счетчика гигабайтов: порт 1 Гбит/с при полной загрузке передает около 324 ТБ за 30-дневный месяц.
Транскодирование на CPU или GPU
Ядра Ryzen справляются с лесенками x264 и x265, а RTX 4000 SFF Ada добавляет NVENC для H.264, HEVC и AV1 и разгружает процессор.
NVMe для сегментов прямого эфира
HLS и DASH каждые несколько секунд записывают небольшой файл на каждый профиль качества; NVMe легко справляется с таким потоком операций, а записи эфиров при этом сохраняются на полной скорости.
10 Гбит/с, когда аудитория растет
Переведите любой тариф с портом 1 Гбит/с на порт 10 Гбит/с или выберите EPYC 7443P или 9354P с портом 10 Гбит/с в стандартной комплектации.
Рекомендуемые серверы
Три сервера, которые мы выбрали бы для этой задачи
От первого развертывания до нагруженного продакшена. Наличие и цены в реальном времени; выбранные серверы в наличии готовы к работе менее чем за 2 минуты.
Восемь ядер Zen 5 принимают RTMP или SRT от ваших энкодеров, отправляют копии на несколько платформ и оставляют запас для легкого транскодирования. Доступен во всех 8 локациях.
16 ядер с частотой до 5,7 ГГц для полных лесенок x264 на живых потоках или медленных пресетов x265 для VOD, плюс 2 × 2 ТБ NVMe для сегментов и записей.
NVENC поколения Ada аппаратно кодирует H.264, HEVC и AV1, поэтому множество профилей качества работают параллельно, пока 8-ядерный EPYC занимается упаковкой.
Какой канал и какие вычислительные ресурсы вам нужны?
Когда видео раздается прямо с сервера, число зрителей считается простой арифметикой; CDN перед сервером меняет расчет, а нагрузка от транскодирования сильно зависит от пресетов и разрешения.
Задача
Типичные требования
Рекомендуемый тариф
Рестрим одного канала на 3–5 платформ
Без транскодирования; исходящий трафик = битрейт × число направлений
Краткие практические советы наших инженеров для этой задачи.
Расчет канала: битрейт × число одновременных зрителей
Скорость порта ограничивает, скольких людей вы можете обслуживать одновременно, а не сколько данных отправляете за месяц. Порт 1 Гбит/с передает 125 МБ/с — около 324 ТБ за 30-дневный месяц при полной загрузке, а безлимитный трафик позволяет использовать все это.
Одновременные зрители ≈ скорость порта × 0.8 ÷ средний битрейт. При 5 Мбит/с на зрителя в 1080p порт 1 Гбит/с с запасом обслуживает около 160 зрителей, а 10 Гбит/с — около 1 600.
Адаптивные лесенки снижают средний битрейт: зрители в 720p при 3 Мбит/с позволяют обслужить с того же порта больше людей.
Прием — это входящий трафик. Порты работают в режиме полного дуплекса, поэтому входящие потоки не отнимают полосу у исходящих.
Если одного порта мало, добавьте edge-серверы в других локациях или поставьте CDN перед origin-сервером.
Транскодирование: x264 на CPU или NVENC на GPU
Программные энкодеры выжимают максимум качества из каждого бита, но ценой высокой нагрузки на процессор: один профиль 1080p в x264 на разумном пресете может загрузить несколько ядер, а x265 требует еще больше. Это подходит для VOD, где время кодирования обходится дешево, и для нескольких каналов в прямом эфире на 16-ядерном Ryzen.
Если профилей качества в прямом эфире много, перенесите кодирование на GPU. RTX 4000 SFF Ada оснащена NVENC поколения Ada с поддержкой H.264, HEVC и AV1, а как профессиональная карта она не подпадает под ограничение на число сессий, которое NVIDIA устанавливает для карт GeForce. В FFmpeg держите кадры на GPU на всем пути от декодирования до кодирования:
-hwaccel cuda -hwaccel_output_format cuda для декодирования
scale_cuda=1280:720 для масштабирования
h264_nvenc, hevc_nvenc или av1_nvenc для кодирования
Простая схема для эфира и VOD
Даже если поначалу все работает на одной машине, мыслите четырьмя ролями, чтобы позже каждую можно было вынести на отдельный сервер:
Прием (ingest) — получение RTMP или SRT от энкодеров. SRT повторно передает потерянные пакеты, что выручает, когда стримеры находятся далеко от сервера.
Транскодирование и упаковка — в HLS с сегментами длиной 2–6 с или в Low-Latency HLS и WebRTC, когда важна задержка.
Origin — обычный nginx, который отдает сегменты с NVMe, с коротким временем кэширования для плейлистов и длинным — для сегментов.
Архив — записи хранятся на сервере хранения 64 ТБ, доступном по бесплатной приватной VLAN, если оба сервера находятся в одной локации.
Инструменты, которые здесь хорошо работают
С root-доступом вы устанавливаете именно то, что нужно. Это проверенные решения для такой задачи.
FFmpegРабочая лошадка для приема потоков, транскодирования через x264/x265 или NVENC и упаковки в HLS или DASH из командной строки.
SRSSimple Realtime Server: RTMP, SRT, WebRTC и HLS в одном медиасервере с открытым исходным кодом, с поддержкой edge-кластеров.
OvenMediaEngineДоставка с задержкой менее секунды через WebRTC и Low-Latency HLS, со встроенным транскодером для прямых трансляций.
MediaMTXЛегкий сервер и прокси, который принимает и ретранслирует потоки RTSP, RTMP, SRT, WebRTC и HLS.
nginx-rtmp-moduleКлассический модуль nginx для приема RTMP, отправки потока на несколько платформ и простой отдачи HLS.
Shaka PackagerУпаковщик для HLS и DASH с сегментами CMAF и шифрованием по стандарту Common Encryption — как для VOD, так и для прямого эфира.
Разделите скорость порта на средний битрейт и оставьте запас около 20%. При 5 Мбит/с на зрителя в 1080p порт 1 Гбит/с обслужит около 160 одновременных зрителей, при 2,5 Мбит/с для 720p — около 320. Для большей аудитории подключите апгрейд до 10 Гбит/с ($129/мес.), выберите EPYC 7443P или 9354P с портом 10 Гбит/с в комплекте или поставьте CDN перед своим origin-сервером.
Трафик для стриминга действительно безлимитный?
Да. Трафик не учитывается и не тарифицируется по гигабайтам, поэтому порт можно загружать на полную скорость круглосуточно в рамках Правил допустимого использования. Стоит помнить о двух ограничениях: канал нельзя перепродавать как IP-транзит, и у вас должны быть права на распространяемый контент. Прямые трансляции, библиотеки VOD и ваши собственные каналы, вещающие 24/7, — именно то, для чего предназначен этот порт.
Где транскодировать: на CPU или на GPU?
Используйте CPU, когда важнее всего качество в пересчете на бит, а каналов немного, — как правило, это кодирование VOD в x264, x265 или SVT-AV1 на медленных пресетах. Используйте NVENC на RTX 4000 SFF Ada, когда в прямом эфире одновременно кодируется много профилей качества или нужен AV1 в реальном времени без выделения под него мощного процессора. Во многих конвейерах сочетают оба варианта: GPU для эфира, CPU для архива.
Можно ли рестримить сразу на несколько платформ?
Да. Рестрим-сервер принимает один входящий поток и отправляет копию в каждую точку назначения без перекодирования, поэтому процессор почти простаивает, а исходящий трафик равен вашему битрейту, умноженному на число платформ. nginx-rtmp-module и SRS умеют это из коробки, а мультиплексор tee в FFmpeg делает то же самое из командной строки. Храните ключи трансляций в конфигурационных файлах, а не в истории командной оболочки.
Сколько места нужно для библиотеки VOD?
Умножьте битрейт на длительность: час при 5 Мбит/с — это около 2,25 ГБ на один профиль качества. Лесенке из 5, 3 и 1,5 Мбит/с нужно около 4,3 ГБ на час, так что в 30 ТБ поместится примерно 7 000 часов. Сервер хранения 64 ТБ дает около 32 ТБ полезного объема на дисках 4 × 16 ТБ в RAID 6 или RAIDZ2, плюс NVMe для самых просматриваемых видео.
Готовы развернуть?
Выберите один из рекомендуемых серверов в наличии — он может быть готов к работе менее чем за 2 минуты, с оплатой с баланса и без платы за установку.
Это единственный способ вернуть доступ к аккаунту, если вы забудете пароль или потеряете устройство для двухфакторной аутентификации. Показать его повторно мы не сможем.