python - 如何从docker容器连接到rtsp相机?

标签 python docker opencv rtsp

我正在尝试借助openCV从IP摄像机获取数据流。非docker应用程序在我的PC上运行良好,但是我需要在docker容器中运行它。这是我的Dockerfile:

FROM jjanzic/docker-python3-opencv
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["./CameraMan.py"]
src = 'rtsp://admin:....'
cap = cv2.VideoCapture(self.src)
cap.isOpened()

当我运行容器时,最后一行始终返回false。我想念什么?

最佳答案

看着https://hub.docker.com/r/jjanzic/docker-python3-opencv/dockerfile;没有(29.6.2020)

  -D WITH_FFMPEG=ON \
使用FFMPEG ONopencv可以读取您的相机。还有另一种选择:
对于RTSP ip摄像机opencv创建gstreamer管道。您需要在dockerfile中包括它的相关库。包括这些库以访问gstreamer头文件:
   libgstreamer1.0-dev \
   libgstreamer-plugins-base1.0-dev \
然后添加所有这些:
https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c#install-gstreamer-on-ubuntu-or-debian
那么您必须打开gstreamer中的cmake:
      -D WITH_GSTREAMER=ON \
build
两者都是ON时,您还可以选择:
cap = cv2.VideoCapture(src,cv2.CAP_FFMPEG )
要么
cap = cv2.VideoCapture(src, cv2.CAP_GSTREAMER)

关于python - 如何从docker容器连接到rtsp相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60612601/

相关文章:

python - 通过Mqtt将数据发布到RabbitMQ服务器

docker - 在Docker容器中 curl Flask Web服务

git - 远程控制Nginx配置

python - 如何在 OpenCV 中设置轨迹栏的默认位置?

c - 使用 OpenCV 双倍缩放图像大小

python - 如何将列表转换为 str 以便我的 SQL 查询可以使用这些值?

python - 使用 enqueue 将数字生成器添加到堆栈数据结构

python - 向 Dask 分布式集群提交任务时本地 python 文件导入问题

node.js - 如何在 travis 中构建我的 docker (nodejs) 容器并在生产环境中运行

python - OpenCV:计算图像匹配的置信度