Назад | Перейти на главную страницу

Приложение для потоковой передачи видео не работает в GCP, но работает на локальном ПК

Я работаю над виртуальной машиной и устанавливаю все, что мне нужно между ними ROS и Flask, я использовал код из https://github.com/emmanuel-senft/flask-ros.git, Я тестировал его на своем персональном компьютере с Linux, и он работает, вы можете посмотреть потоковое видео по адресу localhost. Я запускаю его на виртуальной машине, перехожу на внешний IP-адрес, а он не работает. У меня включен http, https. Надеюсь, вы можете мне помочь, я занимаюсь этим уже 1 неделю и не могу хорошо использовать свою виртуальную машину Google.

Вы можете сделать это на своем локальном Linux-компьютере по адресу localhost адрес, потому что на него не влияет ваш брандмауэр. Как вы можете видеть на документация:

использование:

roslaunch video_stream_opencv camera.launch video_stream_provider:=*x*' gunicorn --threads 5 --workers 1 --bind your_ip:8080 app:app'
  • Заменить x по номеру видеопотока, который нужно открыть /dev/videox.
  • Заменить your_ip по ip машины.

Это приложение работает в порту 8080 который по умолчанию заблокирован брандмауэром GCP.

Чтобы решить эту проблему вы должны открыть порт 8080 на брандмауэре:

  1. установить сетевой тег на вашей виртуальной машине, следуя
  2. создать новое правило брандмауэра которые открывают разрешающий порт для вашего сетевого тега

Если вы хотите, чтобы правило применялось для выбора экземпляров по сетевым (целевым) тегам, выберите Указанные целевые теги, а затем введите теги, к которым должно применяться правило, в поле Целевые теги.

  1. как IP-адрес машины для использования команд внутренний IP
  2. перейти к EXTERANAL_IP_OF_YOUR_VM:8080 проверить стриминговый сервис