Проблемы с VLC и обменом мгновенными сообщениями

Я задавал эти вопросы раньше, но не получил должного ответа. Надеюсь, здесь я получу какой-то ответ.

Я разрабатываю мессенджер на Python, и я хотел бы обрабатывать потоковое видео / аудио с помощью VLC. Основная идея прямо сейчас заключается в том, что в каждом клиенте обмена мгновенными сообщениями я запускаю один экземпляр VLC, который действует как сервер, который передает потоки всем пользователям, которых я хочу, и другой экземпляр VLC, который является клиентом и принимает и отображает все потоки, которые являются другими пользователями. отправка мне. Как видите, это своего рода P2P-соединение, и у меня много проблем.

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

Моя вторая проблема заключалась в том, что у такого типа P2P есть несколько недостатков: если кто-то находится за NAT или маршрутизатором, вам нужно выполнить ручную настройку для пересылки пакетов с маршрутизатора на ваш компьютер, и у него также есть еще один недостаток, вы можете только пересылать на 1 ПК, поэтому вы сможете использовать программу только на одной рабочей станции.

Кроме того, потоки передавались по протоколу HTTP, который использует TCP, и это довольно медленно. Когда я попытался сделать то же самое с RTSP, мне не удалось получить поток за пределами моей частной локальной сети.

Таким образом, этот подход P2P вряд ли будет успешно реализован таким любителем, как я, поскольку он имеет все типичные проблемы с обходом NAT, вещи, с которыми я не хочу связываться, поскольку это не коммерческое приложение, а просто школьный проект. Я должен закончить, чтобы получить диплом техника. Наконец, мне порекомендовали использовать сервер с хорошо известным IP-адресом, и это решило бы проблему, только с одной конфигурацией маршрутизатора и позволяя обоим концам разговоров быть клиентами. Понятия не имею, как реализовать эту идею, пожалуйста, любая помощь будет полезна. Заранее спасибо. Извините за любую ошибку, я не специалист по программированию / сетям и не англоговорящий человек.


person user430825    schedule 25.10.2010    source источник


Ответы (1)


Я думаю, они предлагали вам запустить вашу программу в локальной сети, в которой нет заблокированных портов.

person rogerdpack    schedule 17.11.2010
comment
Я разместил этот же комментарий в своем другом вопросе, но я не хочу оставлять его без ответа, так как это может помочь другим. спасибо за ваш ответ, разработчик VLC ответил мне и сказал, что самый простой способ сделать это - настроить VPN-сервер (другое решение реализовывало тередо-туннелирование меня самого в моем клиенте, что намного превышало мои навыки и потребности). Теперь каждый клиент подключен к VPN-серверу, и это очень похоже на потоковую передачу по моей частной сети. Кстати, мой школьный проект был закончен, и я получила хорошую оценку. - person user430825; 18.11.2010