Как устранить проблемы с WebRTC-камерой в локальной сети

Как устранить проблемы с WebRTC-камерой в локальной сети

автор FixoLab


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

Creality K2 и поддерживаемые пути удалённой камеры в Printer Tools используют WebRTC. Не диагностируйте их как простые MJPEG-URL.

Printer Tools
Printer Tools

Все ваши 3D-принтеры на одной панели

Следите за принтерами Bambu Lab, Klipper, OctoPrint, Creality, Snapmaker, Anycubic, Flashforge, Elegoo и Prusa в одном приложении

Доступно на Android, iPhone, iPad и Mac, с приложениями-компаньонами для Apple Watch и Wear OS и дополнительным удалённым доступом через VPN, OctoEverywhere или Obico

Printer Tools

Проверьте источник сигнализации

Printer Tools должен получать предложение WebRTC, сведения о сеансе или точку доступа от поддерживаемого принтера или сервиса. Обычную веб-страницу, на которой случайно отображается WebRTC, нельзя вставить как URL потока.

Уточните точную модель принтера и используйте актуальную версию приложения. Маршрутизация по модели определяет, должен ли Printer Tools вообще пытаться использовать WebRTC.

Разделяйте телеметрию и согласование камеры

Если панель обновляется через API принтера, а Live View не работает, зафиксируйте это. Это доказывает, что часть локального пути исправна, и сужает проблему до сигнализации, кандидатов, медиапотока или декодирования.

Если не работает ни то, ни другое, сначала исправьте адрес принтера и сетевой маршрут, а потом уже разбирайте сообщения WebRTC.

Проверьте ICE и сетевые кандидаты

В простой локальной сети стороны могут соединиться напрямую через локальные кандидаты. Правила VLAN, VPN, несколько активных интерфейсов и изоляция клиентов могут давать недоступные кандидаты или блокировать медиапоток после успешной сигнализации.

Проверьте работу, когда телефон и принтер находятся в основной локальной сети. На время проверки отключите только конфликтующий VPN, а затем настройте явный маршрут, а не оставляйте защиту отключённой.

Обновляйте нативную среду выполнения

Воспроизведение WebRTC использует нативные библиотеки. Сборка может успешно компилироваться и всё равно падать во время работы, если при оптимизации релиза были удалены нужные нативные классы или бинарные файлы. Прежде чем собирать отчёт о регрессии, используйте последнюю официальную версию Printer Tools.

Если приложение закрывается при открытии камеры, запишите точную версию и платформу, а после перезапуска экспортируйте журнал. Не вызывайте сбой повторно, пока выполняется критически важное для печати действие.

Как понимать типичные симптомы

  • немедленный отказ говорит о том, что точка доступа или локальная служба недоступна;
  • бесконечное подключение говорит о том, что сигнализация или согласование ICE не завершились;
  • звук или статус без видео указывают на проблему с медиадорожкой или декодером;
  • видео, которое запускается и зависает, указывает на потери в сети, нагрузку на битрейт или зависание декодера;
  • закрытие приложения указывает на сбой нативной среды выполнения, для которого нужны точные данные о сборке.

Избегайте небезопасных сетевых обходных путей

Не открывайте порты сигнализации и медиапотоков в интернет широко. Для удалённого доступа используйте поддерживаемый сервисный сценарий или доверенный VPN. Слишком разрешающее правило роутера может скрыть причину и одновременно серьёзно открыть камеру для посторонних.

Настройка для Creality описана в руководстве по WebRTC-камере K2.

Часто задаваемые вопросы

WebRTC — это просто ещё один URL видео?

Нет. Он включает сигнализацию, согласование кандидатов и медиадорожки, а не только статический путь к потоку.

Почему данные принтера работают, а WebRTC — нет?

API принтера и одноранговое соединение камеры используют разные службы и сетевые потоки.

Нужно ли пробрасывать все порты кандидатов?

Нет. Не открывайте широкие публичные диапазоны. Исправьте локальный маршрут или используйте поддерживаемый способ удалённого доступа.

Что включить в отчёт о сбое?

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

Официальные источники: MDN — WebRTC API · RFC 8445 — ICE

Printer Tools
Printer Tools

Все ваши 3D-принтеры на одной панели

Следите за принтерами Bambu Lab, Klipper, OctoPrint, Creality, Snapmaker, Anycubic, Flashforge, Elegoo и Prusa в одном приложении

Доступно на Android, iPhone, iPad и Mac, с приложениями-компаньонами для Apple Watch и Wear OS и дополнительным удалённым доступом через VPN, OctoEverywhere или Obico

Printer Tools