Онлайн аудио / видео конференц-система с webrtc
Я внедряю новую версию существующего видеочата и сейчас проверяю, готов ли webrtc к использованию этой системы видео / аудиоконференций с низкой задержкой 1:1 и партийных чатов с большей распределенной базой пользователей. Думаю разобрался
- webrtc поддерживается в Chrome, Firefox и Opera (IE и Safari не поддерживают и молчат)
- Webrtc поддерживает родные приложения для iOS (но не Safari) и нативные приложения для Android и Chrome на Android
- Flash / Flex не поддерживает webrtc
- разработчик должен позаботиться о передаче сигналов (создании сеанса) через сервер с помощью механизма выбора (например, https, websockets)
- разработчик должен позаботиться о проблемах брандмауэра /NAT с сервером TURN/STUN (например, rfc5766-turn-server)
- если пользовательская база становится больше, разработчик должен позаботиться о проблемах масштабирования для сервера TURN/STUN, а также для механизма сигнализации
- Webrtc, кажется, поставляет P2P соединение из коробки. Для больших групповых чатов, например, с 10 участниками, это не сервер с открытым исходным кодом, который мог бы поддерживать масштабируемую серверную звездную инфраструктуру
- Существуют коммерческие сервисы, такие как http://tokbox.com/platform или http://www.weemo.com/, предлагающие преодоление перечисленных ограничений.
- webrtc, похоже, все еще находится в стадии разработки и недостаточно распределяется / используется. Поэтому я пришел к выводу, что в этом году webrtc не готов к более широкому применению.
Из этого у меня есть несколько вопросов:
- Мои выводы более или менее верны?
- Кто-нибудь получил знания с помощью приложения для конференций webRTC, которое является открытым / бесплатным (не корпоративным) и более крупным (несколько десятков тысяч), и имеет глобально распределенную пользовательскую базу и может поделиться некоторыми основными моментами своего опыта?
3 ответа
- Firefox на Android также поддерживается.
- если разработчик может предоставить сервер TURN, браузеры будут использовать его для обработки симметричного NAT. Есть публичные серверы STUN
- сервер TURN стоит дорого, а не сервер STUN.
- соединение между пользователями выбирает случайные порты (UDP или TCP), это может быть проблематично с некоторыми брандмауэрами Entreprise
- Если вы хотите создать более крупную систему (как в случае множества пользователей и небольших конференций), вы можете посмотреть на опыт, накопленный крупномасштабной системой обмена сообщениями, например, основанной на XMPP.
Просто что-то добавить, есть сервер с открытым исходным кодом, который называется licode. Это обеспечивает возможность звезды.
Есть довольно много компаний, которые сейчас используют эту технологию. Вы можете посмотреть некоторые из последних видео для WEBRTC Conference 2013.
Я согласен с вашим списком. Некоторые дополнительные детали
Microsoft, вероятно, будет поддерживать WebRTC 1.1, но, похоже, они не будут поддерживать WebRTC 1.0 (версия, используемая в настоящее время в Chrome и Firefox)
Apple работает над реализацией WebRTC на каком-то уровне. Точные детали не были обнародованы.
Похоже, что не существует полностью сформулированного продукта (с открытым исходным кодом или без него) с реальной видеоконференцсвязью WebRTC без какого-либо дополнительного программного обеспечения, кроме браузера с поддержкой WebRTC 1.0.
Согласно документации, Medooze может быть наиболее близким:
Если вам нужен ваш собственный сервер TURN, есть https://github.com/jitsi/turnserver. Если ваши участники конференции имеют достаточную пропускную способность сети, вы можете использовать https://github.com/jitsi/jitsi-videobridge (дополнительную информацию можно найти на https://jitsi.org/Projects/JitsiVideobridge). Jitsi не поддерживает уменьшение видеопотоков, поэтому каждый участник должен иметь возможность получать все видеопотоки в параллельном режиме, используя исходный видеопоток каждого другого участника.