dalv_happy
@dalv_happy

Как реализовать видео трансляции?

Добрый день. Как реализовать сайт видео трансляций, где один человек вещает для многих? Используемые технологии: сервак пишем на яве, используем spring.
Не понятно, как хранить информацию на сервере. И чтобы это всё реализовать нужно использовать гибридную peer-to-peer сеть? В какую сторону нужно копать, чтобы разобраться?
  • Вопрос задан
  • 1110 просмотров
Пригласить эксперта
Ответы на вопрос 3
@LiguidCool
А имеет ли смысл рисовать с нуля, когда есть Большая Синяя Кнопка (BigBlueButton)?
Оно насколько помню опенсурсное - посмотрите реализацию.
P2P в вещании пока очень сыро. Даже гиганты аля youtube , youporn и twitch вещают "по старинке". А уж кому надо трафик экономить так им.
Вообще есть AceStream с торрент тв и он даже работает ... Но сыро. В принципе на платформе торрент ТВ даже самому вещать можно.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Как реализовать сайт видео трансляций, где один человек вещает для многих?

Гуглите на тему: wowza, red5, ffserver.

Не понятно, как хранить информацию на сервере.

Этот вопрос решается сервером видео стримминга.

И чтобы это всё реализовать нужно использовать гибридную peer-to-peer сеть?

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

В какую сторону нужно копать, чтобы разобраться?

Для начала посмотрите 3 сервера, что я написал выше. Они реализуют разные подходы по "взаимоотношению" стримера и вьювера. Выбирайте тот, что более всего близок к вашей бизнес модели.
Ответ написан
Комментировать
jaxtr
@jaxtr
JavaEE/Spring-разработчик
В своё время писал что-то подобное на основе Netty, использовал протокол RTSP и сопряжённые с ним (RTP, RTCP). В целом задача несложная, если жать медиапоток на стороне автора: получил фрейм, отдал всем подписчикам; но если требуется жать медиапоток на стороне сервера или хранить видео в каком-нибудь "неживом" формате, то на сервере нужно ещё писать обработку потока, что уже сложнее.
Принцип достаточно прост, нужно реализовать две связи:
1. Автор -> сервер, где автор передаёт данные серверу через протокол. Полученные данные можно хранить в сыром формате, что бы потом склеивать данные потока в файл обычного формата.
2. Сервер -> подписчики. Тут задачка усложняется выбором протокола. Если используются клиенты вроде VLC, то можно использовать тот же RTSP, если видео встраивается в флеш-плеер, то удобнее RTMP, а если есть желание использовать встроенный в браузер плеер, то это уже HLS или MPEG-DASH. Самая проблема - писать переход между протоколами.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы