Django Web отображает поток с веб-камеры с использованием jetson tx2 в качестве сервера

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

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

Эти два уже были достигнуты, но! Я столкнулся с неожиданным поведением. Функциональность, которую я описал, работает отлично, но только на localhost. Я хочу развернуть его, чтобы он был доступен через другой компьютер (он предназначен для использования на роботе).

Итак, чтобы описать мою архитектуру: я использую Jetson TX2 в качестве сервера (здесь подключена веб-камера). Я использую веб-фреймворк Django, django-каналы, daphne в качестве веб-сервера и ngingx в качестве прокси. Я запускаю Дафну и фоновый процесс в супервизоре.

Я использую worker (фоновый процесс) для захвата кадров с веб-камеры и отправки их через redis на веб-сервер.

Поэтому, когда я запускаю его на локальном хосте, все работает, как ожидалось. Когда я устанавливаю для Debug значение FALSE, добавляю IP-адрес Jetson в ALLOWED_HOSTS и пытаюсь получить доступ к сети с другого компьютера, это происходит: я вижу, что доступ к этой веб-камере осуществляется, потому что загорается индикатор веб-камеры. Я помещаю QR-код перед веб-камерой, и код появляется в текстовом поле в Интернете! НО видео нет (когда ALLOWED_HOSTS содержит видео localhost, есть там). Вывод фонового процесса, который собирает кадры камеры, дает следующую ошибку:

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

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

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


person Eduard Mráz    schedule 13.12.2018    source источник
comment
Вы можете прочитать этот пост, он может помочь вам решить вашу проблему. unix.stackexchange.com/q/113893/318275   -  person Antwane    schedule 13.12.2018
comment
Спасибо, но я не получаю вывода от команд, перечисленных в отправленном вами потоке.   -  person Eduard Mráz    schedule 13.12.2018


Ответы (1)


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

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

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

person Eduard Mráz    schedule 14.12.2018