Имеет ли смысл использовать протокол RTP для нескольких стримеров и одного получателя? - PullRequest
0 голосов
/ 20 мая 2018

Я нахожусь в процессе обучения и пытаюсь использовать протокол RTP / RTCP.Моя ситуация такова, что есть от 1 до n стримеров и 1 (или, возможно, от 1 до m, если необходимо) получателя (ей), но таким образом, что сами стримеры не знают друг о друге (они не могут напрямую по техническим причинам, например,как другая сеть, ограниченная пропускная способность и т.д ...).Так что это больше похоже на несколько сеансов одноадресной рассылки, но получатель фактически знает о них все, собирает данные со всех из них, просто отправители не знают друг о друге.

Теперь, читая о протоколе, этоМне кажется, что большая часть этого связана с отправкой обратной связи, обнаружением столкновений и так далее. Так что я сомневаюсь, действительно ли RTP применим в этом случае?Уже используется где-то таким образом?

Мне кажется, все еще полезно собирать статистику о передаче данных, которую обеспечивает RTP (данные отправлены, потеря, время и т. Д.), Это просточувствует, что большая часть протокола не учитывается ...

Также у меня есть еще один вопрос, проходящий через различные библиотеки RTP, все они предполагают, что отправитель также откроет порты для приема данных RTP / RTCP, запрещает ли RTP использование односторонней связи? Я имею в виду приложение, которое будет только передавать данные, не ожидая получения чего-либо обратно.Библиотеки (например, ccRTP), похоже, предполагают только двустороннюю связь ...

1 Ответ

0 голосов
/ 21 мая 2018

RTCP - это протокол, который предоставляет статистику.Получатель потока (клиент) отправляет статистику отправителю (серверу) через RTCP.Я не верю, что клиент получит статистические отчеты с сервера.

Нет ничего плохого в том, что один клиент получает несколько одноадресных сеансов с разных серверов.

RTP требует двусторонней связи во время процесса установки.Как только установка завершена и команда воспроизведения отправлена, это в основном один из способов.Исключением являются пакеты «keep alive», которые необходимо периодически отправлять на сервер (обычно каждые 60 секунд или около того), чтобы поток продолжал работать.Точное значение тайм-аута отправляется клиенту во время процесса установки.

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

Вы можете прочитать обо всех деталях в спецификации: RTP: Транспортный протокол для приложений реального времени

...