树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法

发布于:2025-05-01 ⋅ 阅读:(49) ⋅ 点赞:(0)

首先是我在树莓派中 使用OpenCV 读取网络视频流, 如海康威视 通过rtsp协议地址读取 会发生延迟和丢包的情况 后来使用ffmpeg和OpenCV 读取视频流 丢报的问题减少了 但是长时间运行 还是会造成延迟和卡顿 最后直接卡死画面 后来试了一下GStreamer 管道流 是树莓派支持的 但是原生的OpenCV库 不支持GStreamer  需要通过cmake 改写 以下是办法 

1`下载原文件并解压

# 创建编译目录
mkdir ~/opencv_build && cd ~/opencv_build

# 下载 OpenCV 和 OpenCV contrib(可选)
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip

# 解压
unzip opencv.zip
unzip opencv_contrib.zip

2`进入 OpenCV 源码并创建 build 目录: 按照你的opencv 目录进入

cd ~/你的路径/opencv
mkdir build && cd build

3`激活你的虚拟环境

source ~/你的虚拟环境路径/虚拟环境名字/bin/activate

4`执行 CMake 配置命令:

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=你的虚拟环境路径/虚拟环境名字/lib/python3.11/site-packages \
      -D OPENCV_EXTRA_MODULES_PATH=opencv_contrib安装目录/opencv_contrib/modules \
      -D PYTHON_EXECUTABLE=你的虚拟环境路径/虚拟环境名字/bin/python3 \
      -D BUILD_opencv_python3=ON \
      -D BUILD_opencv_python2=OFF \
      -D WITH_FFMPEG=ON \
      -D WITH_GSTREAMER=ON \
      -D WITH_V4L=ON \
      -D BUILD_TESTS=OFF \
      -D BUILD_PERF_TESTS=OFF \
      ..

如果这一步成功,会看到一大堆检测通过的结果,且最后几行显示:

-- Configuring done
-- Generating done
-- Build files have been written to: ...

5`如果没报错,请继续执行:

make -j2  # 推荐 j2,树莓派性能有限 

6`安装到虚拟环境

make install

7`安装完之后验证

进入虚拟环境
source ~/你的虚拟环境路径/你的虚拟环境名字/bin/activate

python3 -c "import cv2; print(cv2.__file__)"
python3 -c "import cv2; print(cv2.getBuildInformation())"
你应该能看到:

cv2 路径在你的虚拟环境中

GStreamer: YES

Python 3.11: YES

8`常见导致构建失败的原因:

问题 描述
内存不足 树莓派即使是 5B 也可能编译中内存不足,建议添加 swap 或减少并发:make -j2
依赖库不全 如未正确安装 ffmpeg, gstreamer, libjpeg-dev 等依赖
contrib 模块下载失败 某些模块会尝试下载模型,若超时可能卡住或失败
Python 路径不对 cmake 的 Python 路径必须与你虚拟环境匹配,否则生成不出 cv2make

网站公告

今日签到

点亮在社区的每一天
去签到