Запуск приложения с WebRTC в локальной сети без доступа в Интернет.

Я собираюсь использовать WebRTC в проекте, где мне нужно транслировать видео с одного компьютера, робота с точкой доступа Wi-Fi и USB-камерой по локальной сети на другой компьютер, контроллер для робота. Оба компьютера в данном случае являются одноплатными, и видеопоток является односторонним. Я также хотел бы, чтобы два компьютера передавали данные друг другу в обоих направлениях. Я нашел WebRTC в своем исследовании, и, похоже, он обладает обеими функциями, которые я ищу.

Исходя из первоначального тестирования с демонстрационными программами NodeJS, WebRTC кажется почти именно тем, что я ищу. Одна большая проблема, которую я пытался преодолеть, заключается в том, что, похоже, по умолчанию требуется, чтобы между двумя клиентами использовался онлайн-сервер сигнализации. Я исследовал и обнаружил, что можно создать сервер сигнализации в локальной сети с помощью третьего компьютера, но такая установка не подходит для моего проекта.

Я изучил другие решения и наткнулся на OpenVidu, который реализует WebRTC, но позволяет встраивать сигнальный сервер в один из клиентских компьютеров (по крайней мере, то, что я читал в другом сообщении о переполнении стека). Мне еще предстоит протестировать этот инструмент, чтобы увидеть, решит ли он мою проблему, но в настоящее время я заблокирован изображением докера, используемым проектом, не поддерживающим процессоры ARM, которые используются моими одноплатными компьютерами и, следовательно, требуют специальной установки.

Прежде чем пройти через этот процесс, который может работать, а может и не работать, я хотел спросить, есть ли другое более простое решение для запуска WebRTC без доступа к Интернету и без необходимости использования третьего компьютера в качестве сигнального сервера, или были ли какие-либо предложения по инструментам, отличным от WebRTC, которые было бы лучше для моего приложения. Я новичок в этой технологии, и мне определенно может не хватать простого или существующего решения. Любая помощь по этому поводу будет принята с благодарностью.

Для тех, кому интересно, в качестве одноплатных компьютеров используются NVidia Jetson Nanos.

1 ответ

Решение

Нашел решение. Используя пример Google Codelabs, исправление заключалось в простом удалении ледового сервера по умолчанию в config. По сути, это означало изменение

const config = {
  iceServers: [
    {urls: ["stun:stun.l.google.com:19302"]}
  ]
}

к

const config = {
  iceServers: []
}

Вы можете запустить локальный Turnserver на своей локальной сети. Это очень просто и понятно. проверьте это введите описание ссылки здесь

после установки просто запустите

turnserver -p 19302

Теперь ваш файл конфигурации:

const config = {
  iceServers: [
    {urls: ["stun:<<YOUR HOST IP>>:19302"]}
  ]
}
Другие вопросы по тегам