Я пишу веб-приложение, в котором я хотел бы:
- Отображать ЛОКАЛЬНЫЙ поток с веб-камеры - это означает, что я хочу транслировать видео с сервера (я не хочу открывать веб-камеруклиент)
- Прочитайте QR-коды и перечислите их в текстовом поле
Эти два уже достигнуты, но!Я столкнулся с неожиданным поведением.Функциональность, которую я описал, работает отлично, но только на localhost.Я хочу развернуть его, чтобы он мог быть доступен через другой компьютер (он предназначен для использования на роботе).
Итак, для описания моей архитектуры: я использую Jetson TX2 в качестве сервера (веб-камера подключенаВот).Я использую веб-фреймворк Django, django-channel, daphne в качестве веб-сервера и ngingx в качестве прокси.Я запускаю Дафни и фоновый процесс в супервизоре.
Я использую работника (фоновый процесс) для захвата кадров с веб-камеры и отправки его через Redis в веб-бэкэнд.
Так что, когда я запускаю его на локальном хосте, все работает как положено.Когда я устанавливаю для Debug значение FALSE и добавляю IP-адрес Jetson в ALLOWED_HOSTS и пытаюсь получить доступ к Интернету с другого компьютера, это происходит: я вижу, что к веб-камере обращаются, потому что свет веб-камеры включается.Я поместил QR-код перед веб-камерой, и этот код появился в текстовом поле в Интернете!НО видео там нет (когда ALLOWED_HOSTS содержит видео локального хоста IS там).Вывод фонового процесса, который собирает кадры камеры, выдает следующую ошибку:
libv4l2: error setting pixformat: Device or resource busy
OpenCV Error: Unspecified error (GStreamer: unable to start pipeline)
in cvCaptureFromCAM_GStreamer, file /home/nvidia/prototype/opencv/opencv-3.4.0/modules/videoio/$
VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)):raised OpenCV exception:
/home/nvidia/toyota_prototype/opencv/opencv-3.4.0/modules/videoio /src/cap_gstreamer.cpp:890: error: (-2)$
in function cvCaptureFromCAM_GStreamer
Я не буду публиковать здесь весь код, так как не знаю, где именно проблема.У кого-нибудь есть идея, где может быть проблема?
Спасибо за помощь!