ValdikSS
@ValdikSS

Как отдать двум клиентам один live http stream?

Я разрабатываю Ace Stream to HTTP Proxy (подробнее про Ace Stream, раньше назывался Torrent...). Беда в том, что если два клиента заходят посмотреть один и тот же поток (пока говорим только о live stream), Ace Stream Engine не даст этого сделать: ссылка, которая выдается плееру, поддерживает только одно соединение, а если параллельно запустить этот же поток, то первого пользователя разъединит.


Таким образом, мне нужно написать что-то вроде маленького вещательного сервера, и я не знаю, как это сделать правильно. Что делать, если у нас подключен клиент с хорошим соединением, и с плохим? Постоянно расширять буфер, или установить фиксированный и переодически дропать пакеты для медленного клиента? Что в этом случае делают vlc и ffserver? Есть ли какие-нибудь встраиваемые реализации на Python2?


Проблема еще в том, что Ace Stream Engine не очень любит, когда из него непрерывно читают поток. В движке подразумевается, что для его использования всегда будет использоваться кастомный плеер, движок периодически отсылает сообщения PAUSE/RESUME, чтобы видеоплеер поставился на паузу в определенный момент для того, чтобы избежать буфферизации в дальнейшем (лучше один раз постоять на паузе 5 секунд, чем 5 раз по 1 секунде). В данный момент, я решаю это остановкой чтения из видеопотока (и, соответственно, отправки данных пользователю) на определенное количество секунд при PAUSE. Можно ли это как-то реализовать при количестве клиентов >1?


Заранее спасибо!
  • Вопрос задан
  • 4050 просмотров
Решения вопроса 1
ValdikSS
@ValdikSS Автор вопроса
В общем, использовал VLC VLM.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
miolini
@miolini
Представьте, что у вас есть 1 ace => 1 http и нужен 1 http => n http
Ответ написан
Ваш ответ на вопрос

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

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