树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法
首先是我在树莓派中 使用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/activatepython3 -c "import cv2; print(cv2.__file__)"
python3 -c "import cv2; print(cv2.getBuildInformation())"
你应该能看到:cv2 路径在你的虚拟环境中GStreamer: YESPython 3.11: YES
8`常见导致构建失败的原因:
问题 | 描述 |
---|---|
内存不足 | 树莓派即使是 5B 也可能编译中内存不足,建议添加 swap 或减少并发:make -j2 。 |
依赖库不全 | 如未正确安装 ffmpeg , gstreamer , libjpeg-dev 等依赖 |
contrib 模块下载失败 | 某些模块会尝试下载模型,若超时可能卡住或失败 |
Python 路径不对 | cmake 的 Python 路径必须与你虚拟环境匹配,否则生成不出 cv2 make |