Очень простым сервисом на основе WebRTC, который можно развернуть у себя буквально в несколько действий, является MiroTalk P2P. Его можно вообще не настраивать. По умолчанию всё заработает. Как он работает, можно посмотреть на публичном сервисе:
⇨ https://p2p.mirotalk.com
Локально он будет выглядеть один в один.
🟢 Основные возможности:
▪ Полный open source, никаких ограничений.
▪ Аутентификация пользователей, защита конференций паролем.
▪ Оптимизация под смартфоны.
▪ Шаринг экрана, приложения, вкладки браузера, в том числе прямой видео поток.
▪ Качество до 4K и 60 FPS.
▪ Запись конференций.
▪ Поддержка REST API.
На самом деле очень удобно и просто сделано. Я погонял и разговоры, и шаринг экрана, и работу на смартфонах. Тема с QR кодами для смартфонов удобна. Всё везде сразу заработало. Ничего качать, устанавливать, настраивать не надо. Кинул ссылку клиенту, он подключился бразуером.
Чтобы Mirotalk запустить у себя, достаточно воспользоваться инструкцией. Не буду её тут приводить. Я немного с ним поразбирался, поэтому запускал и в Docker, и напрямую через npm (Nodejs). MiroTalk написан на JavaScript.
В инструкции в том числе показано, как запустить сервис за прокси с помощью Nginx или Apache. Если будете так делать, то перепроверьте конфиги из руководства. Они неаккуратно сделаны с некоторыми очень неоптимальными настройками. Например, для редиректа с HTTP на HTTPS в Nginx используется if. Так делать не надо. А вот так надо.
Для тех, кто будет реально устанавливать и пробовать, дам подсказку. Современные браузеры запрещают доступ к микрофону и камере сайтам без HTTPS. MiroTalk можно запустить без шифрования, выбрав в
.env настройку HTTPS=false. Всё запустится без каких-либо ошибок. Но в браузере не будет выскакивать запрос на доступ к микрофону. Сервис, соответственно, работать не будет. Я долго возился с сервером, пока не понял, в чём дело и почему не работает. Достаточно включить HTTPS=true и всё заведётся на самоподписанном сертификате. С ним браузеры будут работать. Я тестировал в локалке, соответственно STUN и TURN просто отключил. По умолчанию используются бесплатный сервер STUN от google и какой-то канадский TURN metered_ca, завязанный на учётку автора программы. Если хотите полностью независимый сервер с p2p между интернет клиентами, то можете поднять свои STUN и TURN серверы с помощью Coturn. Там настройка очень простая.
На картинке снизу я смартфон направил в окно, а у себя расшарил вкладку браузера.
⇨ Сайт / Исходники
#видеоконференции