Название: QXMPP проблемы с передачей звука и соединением между сетями Отправлено: IronRider от Июнь 13, 2015, 21:54 Доброго времени суток.
Скачал тестовую программу VoIPTest https://github.com/hipersayanX/VoipTest (https://github.com/hipersayanX/VoipTest). Данная программа использует библиотеку QXMPP https://github.com/qxmpp-project/qxmpp (https://github.com/qxmpp-project/qxmpp), которая в свою очередь использует OPUS и VPX. Все это дело собрал на Win7 x64 с помощью Qt5. Вроде бы все работает, за исключением двух моментов: 1. Звук приходит с жуткой задержкой и воспроизводится немного дергано (видео передается нормально). Сначала грешил на кодек. Попробовал пересобирать с кодеком SPEEX и без кодека вообще - безрезультатно. Пробовал сделать свою программу для передачи звука. Использовал один QIODevice для передачи звука в канал и один QIODevice для приема звука из канала. Тут же нам предлагают использовать QXmppRtpAudioChannel и для приема и для передачи. Это немного смущает. 2. Если оба компьютера находятся в одной локальной сети, то вызов можно совершить. Если компьютеры находятся в разных сетях, вызов совершить нельзя. Для соединения между сетями используется STUN. С помощью Wireshark смотрел пакеты. Если оба компьютера находятся в одной ЛВС, в Wireshark появляются исходящие пакеты STUN на локальный адрес абонента(например 192.168.1.2 - 192.168.1.3), после чего от абонента приходит STUN пакет с ответом в котором содержится ip и порт. Если же компьютеры находятся в разных сетях, STUN пакеты все равно уходят на локальный адрес абонента(например 192.168.1.2 - 192.168.3.15), но ответа, разумеется не приходит, так как абонент находится в другой сети. Если я не ошибаюсь, STUN пакеты должны уходить на STUN сервер, а не на локальный адрес абонентов. На гитхабе вопрос задал, но ответа не дождался. Подскажите, пожалуйста, как эти проблемы можно решить. |