Как организовать сервер для отдачи видеофайлов и аудиофайлов?

Стоит задача сделать сервер для отдачи видеофайлов (от 500мб до 7гб) и аудиофайлов на аудиторию до 5 - 10 тыс человек. То есть пользователи будут активно смотреть видео. Какие есть решения, подскажите пожалуйста. Я думаю это сделать через nginx, но не очень понимаю какие характеристики нужны для серверов, как правильно настроить nginx, какие форматы и кодеки использовать для видео.

UPD Как лучше организовать передачу по протоколу HLS или псевдо-стримминг? Должна быть поддержка перемотки.
  • Вопрос задан
  • 502 просмотра
Пригласить эксперта
Ответы на вопрос 2
pro100chel
@pro100chel
не знаю ничего
Вариантов по сути много. Все зависит от твоего бюджета (или бюджета конторы, где ты работаешь)
Бери Nginx для отдачи файлов.

Для 10к человек и видео такого размера нужна нехилая такая инфраструктура. По сути все сводится к тому, что тебе нужен либо CDN, либо несколько серверов с большим каналом, либо стая виртуалок.

Разберем каждый вариант.

1) CDN - это довольно дорого будет для тебя учитывая потребности. Трафик на CDN сейчас не из дешевых. Терабайт можно взять за 1000 руб - это минимум. А так у того же Selectel цена будет от 2000 руб за терабайт.

2) Серваки. Бывают разные. Можно взять 1 сервер с 20 гбит каналом. Но это не будет очень разумным. Вдруг сервер выйдет из строя. И чтоб раздать на 10к пользователей видео по 7 гб нужно будет нехилое железо.
Есть другой вариант. Взять несколько серверов с 1 гбит каналом. Тут тебе поможет немецкое качество от Hetzner. https://ru.hetzner.com/hosting/produkte_rootserver... вот такой вот сервер тебе выйдет в 3000-3500 рублей в месяц. По нагрузке сам прикинь и подумай сколько таких серверов нужно будет взять. Ну грубо говоря пускай 20 серверов по 1 гбит это будет стоить около 60000 руб в месяц. Только учитывай, что сервер тебе ставится не сразу. Сейчас это занимает несколько дней. Иногда неделю. Прошляпишь момент и часть твоей аудитории не сможет насладиться просмотром.

3) Виртуалки. Пиши свой софт или бери готовый. Идея в том, что по API у Hetzner и многих других хостеров можно заказывать виртуалки. В пиковые нагрузки просто скрипт будет закупать виртуалок, настраивать их и загружать бек на них. Оплата почасовая. То есть ночью можешь почти ничего не платить. За то днем скрипт будет сам виртуалки поднимать сколько нужно будет сервису. https://www.hetzner.com/cloud-ru Тебе дается 20 ТБ трафика на виртуалку. Скрипт должен смотреть на трафик и когда стрелочка доходит до 20 ТБ скрипт должен вырубать новые коннекты к виртуалке и когда последний зритель отрубится, удалять виртуалку.
Есть еще всяки-разны scaleway https://www.scaleway.com/en/virtual-instances/deve... Там уже виртуалки с безлимитным трафиком и канал пошире будет. Ну и оплата тоже почасовая.

Вот как то так. Можно комбинировать второй и третий вариант. Можно на чем то одном сидеть. Опять же все зависит от бюджета. Можно сделать так, чтобы пользователи друг другу отдавали видео. Для снятиz части нагрузки с сервера. Типо P2P сеть.
Ответ написан
gbg
@gbg
Баянист. Тамада. Услуги.
Первым вопросом будет определение одновременного онлайна и, следовательно, канала. А то вы тут понаписали на 10-20 гигабит как бы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы