Лучшая практика для масштабируемого проекта с использованием куренто - PullRequest
0 голосов
/ 20 марта 2019

Я и небольшая команда работаем над потоковой платформой на базе комнаты, используя kurento.У нас есть 3 основные проблемы, которые необходимо учитывать при настройке и настройке kurento.1) Большое количество клиентов 2) Большое количество источников мультимедиа 3) Относительно простой способ подписать клиента на комнату (комната - это просто набор источников мультимедиа) Источник может находиться в нескольких комнатах, и мыхотел бы, чтобы каждый источник производил только 1 поток мультимедиа.Клиент может находиться только в одной комнате.

В настоящее время мы создаем новый конвейер для каждой комнаты, что приводит к дублированию потока для каждого источника в более чем одной комнате (если источник находится в N комнатах, он будет удаленN медиапотоков).

Мы ищем оптимальное решение для настройки kurento, чтобы оно наилучшим образом соответствовало нашей системе и проблемам, упомянутым выше.Мы были бы очень признательны за любую помощь, предоставленную по этому вопросу.

Решения, о которых мы думали: 1) Один трубопровод с 1 MediaInputEndpoint на источник и MediaOutputEndpoint на клиент, затем управление тем, какие входы должны получать каждый выход.Этот подход кажется странным, во-первых, это будет огромный трубопровод, в котором будут отсутствовать проблемы с масштабируемостью многих клиентов / многих источников (мы думаем), во-вторых, логика управления комнатами находится исключительно на нашей стороне, и чтобы клиент присоединился к комнате, нам необходимосоедините его конечную точку с правильными входами один за другим.

2) один конвейер на источник, и каждый клиент подключен к трубопроводам и входам источников, которые он должен получить.Опять же, это пропускает нашу третью проблему, а также очень много конвейеров может быть проблемой для многих источников использования.

2) какой-то «слой» конвейеров для входных источников, 1 конвейер для, скажем, 100 источников,которые отправляют мультимедиа на следующий слой трубопроводов, второй «слой» трубопроводов будет соответствовать комнатам, каждый трубопровод будет представлять комнату, подключенную в качестве OutputEndpoint к трубопроводам, содержащим источники, которые должны находиться в комнате, иклиенты, подключающиеся к этим трубопроводам, получат все входные данные из этого трубопровода.мы не думаем, что в каждой комнате будет много клиентов, поэтому этот подход, похоже, решает проблемы масштабируемости.Но кажется, что это не предполагаемый способ использования куренто из-за связи трубопровода с конвейером, это будет проблемой?И сколько накладных расходов это добавит к общей системе?

Это проблема, с которой мы сталкиваемся, и я думаю, что это общая проблема при использовании kurento. Было бы очень полезно услышать, что вы имели в виду, когдаразработка куренто о том, как это будет использоватьсяИли как настроить куренто для удовлетворения наших потребностей.

...