log_here
Дата: 08.08.2017 02:10:58
Например, бой Макгрегор-Мейвезер или онлайн-выход новой серии игры престолов. К нему подключаются десятки миллионов пользователей и смотрят.
YouTube выделяет специально под это дело сервера или всё происходит в автоматическом режиме?
С обновлённой подпиской на инстаграм Дженнифер Лопес ещё более-менее понятно, там режим дискретный, пользователь щёлкает раз в 5 секунд, с непрерывным вещанием всё не так очевидно.
Верно ли, что на таких серверах стоят тысячи мощнейших сетевых карт или достаточно серверной сетевой карте передать информацию 10 другим, те передадут ещё 10 и т.д.?
Опыта написания клиент-серверных приложений нет, поэтому мои вопросы могут показаться не совсем корректными.
AndreTM
Дата: 08.08.2017 08:28:21
А зачем что-то "мощнейше" выделять или пере-передавать?
Достаточно писать стрим в буфер(ы), и организовать доступ так, чтобы плеер умел, а сервер давал доступ к соответствующему буферу.
Например, нам надо сделать стрим длиной 1 час (3600 секунд), и чтобы пользователи могли смотреть его с любой секунды. Пишем стрим в 3600 параллельных буферов (первый - начинается с первой секунды, следующий - со 2-й, далее - с 3-й, 4-й...). На пользовательский запрос - отдаем клиентскому плееру ссылку на соответствующий "таймкоду" буфер. Как вы понимаете, любое переключение в плеере - переключит плеер на другой буфер, который просто пойдет "с начала соответствующего буфера".