Django веб-отображение потока с веб-камеры с использованием Jetson TX2 в качестве сервера - PullRequest
0 голосов
/ 13 декабря 2018

Я пишу веб-приложение, в котором я хотел бы:

  1. Отображать ЛОКАЛЬНЫЙ поток с веб-камеры - это означает, что я хочу транслировать видео с сервера (я не хочу открывать веб-камеруклиент)
  2. Прочитайте 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

Я не буду публиковать здесь весь код, так как не знаю, где именно проблема.У кого-нибудь есть идея, где может быть проблема?

Спасибо за помощь!

1 Ответ

0 голосов
/ 14 декабря 2018

Итак, я понял это.В моем HTML-шаблоне у меня была одна строка, где я ссылался на адрес потока:

 <img src="http://127.0.0.1:8000/webcam-stream">

Я думаю, теперь вы все знаете, где была проблема.Мне нужно было сменить IP на адрес HOST.

...