![视频流应用程序无法在 GCP 上运行,但可以在本地 PC 上运行](https://linux22.com/image/749844/%E8%A7%86%E9%A2%91%E6%B5%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E5%9C%A8%20GCP%20%E4%B8%8A%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%9C%AC%E5%9C%B0%20PC%20%E4%B8%8A%E8%BF%90%E8%A1%8C%20.png)
我正在虚拟机上工作,并在 ROS 和 Flask 之间安装我需要的一切,我使用了来自https://github.com/emmanuel-senft/flask-ros.git,我在装有 Linux 的个人电脑上测试了它,它有效,您可以在本地主机地址上看到流媒体视频。我在虚拟机上运行它,我转到外部 IP 地址,但它不起作用。我已启用 http、https。我希望你能帮助我,我已经这样做了 1 周,但我无法很好地使用我的 google VM。
答案1
您可以在本地 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:
如果您希望规则应用于通过网络(目标)标签选择的实例,请选择指定的目标标签,然后在目标标签字段中键入应应用该规则的标签。
- 作为命令使用的机器 IP内部的知识产权
- 前往
EXTERANAL_IP_OF_YOUR_VM:8080
检查流媒体服务