2013-09-16 7 views
8

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

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

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

Я проверил мой поток, как работает PeerConnection и вот как это работает для меня:

Пользователь, который запускает PeerConnection:

  • кеннет: PeerConnection создано main.js: 275
  • кеннет: слушатель для удаленного потока добавлен main.js: 280
  • Kenneth: слушатель удаленного поток удален добавленный main.js: 285
  • Kenneth: добавлен локальный поток в peerc onnection main.js: 264
  • Kenneth: Предложение создано main.js: 293
  • Kenneth: Предложение Направлено main.js: 315
  • кеннет: ответ получили main.js: 205
  • кеннет: Слушатель добавил к отправить местные кандидат ICE main.js: 210
  • Кеннета: пульт дистанционного управления Описанием набор из ответов main.js: 215
  • Кеннета: удаленный поток добавил main.js: 366
  • Кеннета: дистанционный ICE полученного main.js: 218
  • Kenneth: дистанционная ДВС добавлена ​​в PeerConnection main.js: 225
  • Kenneth: удаленный ICE получил main.js: 218
  • Kenneth: дистанционные ICE добавлены к PeerConnection main.js: 225
  • Kenneth: ДВС кандидат отправлено главного. ЯШ: 340
  • кеннет: ICE кандидат, присланный main.js: 340
  • кеннет: ICE кандидат, присланный main.js: 340
  • кеннет: ICE кандидат, присланный main.js: 340
  • Kenneth: дистанционное ICE получили main.js: 218
  • кеннет: дистанционный ICE добавлен в PeerConnection main.js: 225
  • Кеннета: удаленный ICE получил main.js: 218
  • Kenneth: дистанционные ICE добавлены к PeerConnection main.js: 225
  • кеннет: кандидат ICE посланного главным .js: 340
  • kenneth: кандидат ICE отправлен main.js: 340
  • kenneth: Конец Кандидатов основной.ЯШ: 342

Пользователь, который получает предложение, а затем создает ответ:

  • kennethtest1: предложение получил main.js: 183
  • kennethtest1: PeerConnection создано main.js: 275
  • kennethtest1: прослушиватель для удаленного потока добавлен main.js: 280
  • kennethtest1: прослушиватель удаленный поток удален добавлен main.js: 285
  • kennethtest1: Listener adde d отправить местные кандидат ICE main.js: 189
  • kennethtest1: Пульт дистанционного управления Описание набора из предложения main.js: 194
  • kennethtest1: Локальный поток добавлен в PeerConnection main.js: 198
  • kennethtest1: Ответ создано основным. ЯШИ: 301
  • kennethtest1: Удаленный поток добавил main.js: 366
  • kennethtest1: Ответ Отправленного main.js: 324
  • kennethtest1: ICE кандидата, присланного main.js: 340
  • kennethtest1: ICE кандидата посланные главным .js: 340
  • kennethtest1: ДВС кандидат отправлено main.js: 340
  • kennethtest1: ДВС-кандидатов, посланный main.js: 340
  • kennethtest1: удаленный ICE получил main.js: 218
  • kennethtest1: удаленный ICE добавлен в PeerConnection главного. JS: 225
  • kennethtest1: дистанционный ICE полученного main.js: 218
  • kennethtest1: дистанционный ICE добавлен в PeerConnection main.js: 225
  • kennethtest1: дистанционный ICE полученного main.js: 218
  • kennethte st1: дистанционная ДВС добавлена ​​в PeerConnection main.js: 225
  • kennethtest1: удаленный ICE получил main.js: 218
  • kennethtest1: дистанционные ICE добавлены к PeerConnection main.js: 225
  • kennethtest1: Конец кандидатов основных. JS: 342
  • kennethtest1: дистанционный ICE полученного main.js: 218
  • kennethtest1: дистанционные ICE добавлены к PeerConnection main.js: 225
  • kennethtest1: дистанционный ICE получил main.js: 218
  • kennethtest1: дистанционный ICE добавлен в Peerconnection main.js : 225

Я также проверил хром: // WebRTC-Внутренности/ , где я могу видеть, что для этого конкретного черного экрана PeerConnection потока есть , но не посылает никаких данных корыто его.

У кого-нибудь есть идея, почему иногда поток здесь не открывается?

ответ

1

Исправлено это путем добавления нескольких STUN-серверов вместо того, чтобы полагаться только на один. Я видел, что с использованием одного сервера Google STUN иногда запросы не возвращаются во времени, что заставляет webrtc прекратить поиск пути для передачи по медиапотокам.

Я добавил STUN сервера от других поставщиков с открытым исходным кодом

+0

Для справки других людей: Черные удаленные экраны в основном лед сервер (или обмен кандидата) проблемы, добавив несколько серверов решить эту проблему для вас, но это не является универсальным способом чтобы избавиться от черных удаленных просмотров! Некоторое расследование показывает мне, что это может также иметь значение, если ледяные кандидаты передаются до того, как ответ будет передан ... – WiRa

Смежные вопросы