2010-10-25 6 views
0

Я уже задал эти вопросы без надлежащего ответа. Надеюсь, здесь я получу отклик.Проблемы с VLC и обмен мгновенными сообщениями

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

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

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

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

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

ответ

0

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

+0

Я отправил этот же комментарий в мой другой вопрос, но я не хочу оставлять это без ответа, поскольку это может помочь другим. Спасибо за ваш ответ, разработчик VLC ответил мне и сказал, что самый простой способ сделать это - это настроить VPN-сервер (другое решение было внедрено Teredo, которое туннелировало себя на моем клиенте, в зависимости от моих навыков и потребностей). Каждый клиент теперь подключен к VPN-серверу, и он очень похож на потоки по моей частной сети. Кстати, мой школьный проект был закончен, и я получил хороший класс. – user430825

+0

Да, если VPN - это вариант, который будет работать. – rogerdpack