All streams
Search
Write a publication
Pull to refresh
0
0
Игорь Буторин @CityWay

User

Send message
Можете использовать один, это ради примера написал список.
С MDN есть проблемы с тем, что она не умеет IceCandidate по протоколу TCP. Решилось с помощью TURN сервера.
Для начала поднимите TURN сервер.
STUN серверов полно открытых, я использую:
  • stun:stun.l.google.com:19302
  • stun:stun1.l.google.com:19302
  • stun:stun2.l.google.com:19302
  • stun:stun3.l.google.com:19302
  • stun:stun4.l.google.com:19302
  • stun:stun.services.mozilla.com

Далее необходим механизм обмена IceCandidate и SDP. Можете поднять на nodeJS быстро вебсокет сервер, который будет соединять и обменивать данными между общающимися.

Процесс создание связи:
(1) Звонящий
(2) Принимающий
1 — добавляет стрим с камеры.
1 — создает SDP (offer)
1 — устанавливает локальный SDP
1 — шлёт (2) принимающему свой локальный SDP (по вебсокетам?).
2 — устанавливает SDP звонящего
2 — создает свой SDP(answer) и устанавливает его как локальный
2 — слушает событие, при успешном соединение в нём придёт сам медиастрим.

А так, документации полно по этому поводу.
Посмотрите прекрасный пример от Googl-a
https://apprtc.appspot.com/
Самая непонятная и запутывающая статья для тех кто хочет познакомится с WebRTC. Как выше написали, для того чтобы пробиться через NAT необходимы STUN/TURN сервера. Для peer-to-peer можно обойтись только ими. Но если вы захотите сделать live трансляцию или конференцию то понадобится медиа сервер. Сейчас есть хороший открытый проект Kurento. Уже больше пол года занимаемся переездом от Flash-а в видеочате, скажу там больше подводных камней чем кажется. Браузеры до сих пор не договорились нормально о видео/аудио кодеках и самой реализацией (приемлемо FF и Chrome только работает). Стабильно работает только сочетания VP8/Opus кодеков в FF и Chrome.

P.S: как закончим проект, хочу написать статью со всеми проблемами которые столкнулись и как происходил переезд. Автору советую почитать что такое WebRTC, SDP, IceCandidate, STUN/TURN.
Сайт лёг или меня залочили после выполнения кода:

auto n = 1024 * 1024 * 1024 * 5;
char* buf = new char[n];
std::cout << «Ooops, » << buf << "!\n";
Почему вращение на 57 секунде так резко останавливается?

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity